mb-jgtools
This commit is contained in:
parent
67f41937b2
commit
700ab53b0b
@ -244,6 +244,7 @@ conky
|
|||||||
exo-gtk3
|
exo-gtk3
|
||||||
fakeroot
|
fakeroot
|
||||||
feh
|
feh
|
||||||
|
fsearch
|
||||||
i3lock-color
|
i3lock-color
|
||||||
betterlockscreen
|
betterlockscreen
|
||||||
imagemagick
|
imagemagick
|
||||||
@ -281,6 +282,7 @@ mabox-keyring
|
|||||||
mabox-pipemenus
|
mabox-pipemenus
|
||||||
mabox-utilities
|
mabox-utilities
|
||||||
mabox-artwork
|
mabox-artwork
|
||||||
|
mb-jgtools
|
||||||
cornora
|
cornora
|
||||||
gkrellm
|
gkrellm
|
||||||
gkrellm-themes
|
gkrellm-themes
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
# kolor procent nieprzeźroczystości
|
# kolor procent nieprzeźroczystości
|
||||||
COLOR_MENU_BG="#222222 95"
|
COLOR_MENU_BG="#222222 90"
|
||||||
COLOR_MENU_BORDER="#2f9b85 100"
|
COLOR_MENU_BORDER="#2f9b85 100"
|
||||||
COLOR_NORM_BG="#262626 80"
|
COLOR_NORM_BG="#262626 100"
|
||||||
COLOR_NORM_FG="#CCCCCC 100"
|
COLOR_NORM_FG="#CCCCCC 100"
|
||||||
COLOR_SEL_BG="#169f6f 80"
|
COLOR_SEL_BG="#169f6f 80"
|
||||||
COLOR_SEL_FG="#f8f8f8 100"
|
COLOR_SEL_FG="#f8f8f8 100"
|
||||||
COLOR_SEL_BORDER="#504e65 100"
|
COLOR_SEL_BORDER="#504e65 100"
|
||||||
COLOR_SEP_FG="#2f9b85 100"
|
COLOR_SEP_FG="#2f9b85 100"
|
||||||
COLOR_SEP_BG="#111111 100"
|
COLOR_SEP_BG="#262626 100"
|
||||||
COLOR_SCROLL_IND="#504e65 100"
|
COLOR_SCROLL_IND="#504e65 100"
|
@ -59,4 +59,4 @@ xcape -e 'Super_L=Super_L|space'
|
|||||||
betterlockscreen_setup &
|
betterlockscreen_setup &
|
||||||
|
|
||||||
## Hot Corners
|
## Hot Corners
|
||||||
cornora -tl "mb-jgplaces main" -tr "mb-jgpanel main" -br "mb-jglogout main"
|
cornora -tl "mb-jgtools places" -tr "mb-jgtools right" -br "mb-jgtools mblogout" -iof
|
@ -329,7 +329,7 @@
|
|||||||
</keybind>
|
</keybind>
|
||||||
<keybind key="W-m">
|
<keybind key="W-m">
|
||||||
<action name="Execute">
|
<action name="Execute">
|
||||||
<command>mb-jgpanel main</command>
|
<command>mb-jgtools right</command>
|
||||||
</action>
|
</action>
|
||||||
</keybind>
|
</keybind>
|
||||||
<keybind key="W-l">
|
<keybind key="W-l">
|
||||||
@ -379,7 +379,7 @@
|
|||||||
</keybind>
|
</keybind>
|
||||||
<keybind key="W-x">
|
<keybind key="W-x">
|
||||||
<action name="Execute">
|
<action name="Execute">
|
||||||
<command>rofr.sh -l</command>
|
<command>mb-jgtools mblogout</command>
|
||||||
</action>
|
</action>
|
||||||
</keybind>
|
</keybind>
|
||||||
<keybind key="W-r">
|
<keybind key="W-r">
|
||||||
@ -389,7 +389,7 @@
|
|||||||
</keybind>
|
</keybind>
|
||||||
<keybind key="W-Tab">
|
<keybind key="W-Tab">
|
||||||
<action name="Execute">
|
<action name="Execute">
|
||||||
<command>skippy-xd</command>
|
<command>mb-jgtools places</command>
|
||||||
</action>
|
</action>
|
||||||
</keybind>
|
</keybind>
|
||||||
<keybind key="XF86MonBrightnessUp">
|
<keybind key="XF86MonBrightnessUp">
|
||||||
|
@ -1,83 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Get colors from config file
|
|
||||||
. $HOME/.config/mb-jgmenus/mbjgrc
|
|
||||||
|
|
||||||
JGWIDTH="300"
|
|
||||||
|
|
||||||
OSNAME=$(lsb_release -d | awk '{print $2}')
|
|
||||||
OSVERSION=$(lsb_release -r | awk '{print $2}')
|
|
||||||
OSCODE=$(lsb_release -c | awk '{print $2}')
|
|
||||||
KERNEL=$(uname -r)
|
|
||||||
|
|
||||||
mkconfigfile() {
|
|
||||||
cat <<EOF > ${CONFIG_FILE}
|
|
||||||
stay_alive = 0
|
|
||||||
hide_back_items = 0
|
|
||||||
terminal_exec = terminator
|
|
||||||
terminal_args = -e
|
|
||||||
tabs = 200
|
|
||||||
menu_margin_x = 0
|
|
||||||
menu_margin_y = 0
|
|
||||||
menu_width = $JGWIDTH
|
|
||||||
menu_height_min = 0
|
|
||||||
menu_padding_top = 90
|
|
||||||
menu_padding_right = 10
|
|
||||||
menu_padding_bottom = 10
|
|
||||||
menu_padding_left = 10
|
|
||||||
menu_radius = 0
|
|
||||||
menu_halign = center
|
|
||||||
menu_valign = center
|
|
||||||
|
|
||||||
item_height = 20
|
|
||||||
item_halign = left
|
|
||||||
|
|
||||||
sep_markup = font="Noto Sans Bold 10" foreground="#FFFFFF"
|
|
||||||
font = Noto Sans Medium 9
|
|
||||||
icon_size = 0
|
|
||||||
|
|
||||||
color_menu_bg = $COLOR_MENU_BG
|
|
||||||
color_menu_border = $COLOR_MENU_BORDER
|
|
||||||
color_norm_bg = $COLOR_NORM_BG
|
|
||||||
color_norm_fg = $COLOR_NORM_FG
|
|
||||||
color_sel_bg = $COLOR_SEL_BG
|
|
||||||
color_sel_fg = $COLOR_SEL_FG
|
|
||||||
color_sel_border = $COLOR_SEL_BORDER
|
|
||||||
color_sep_fg = $COLOR_SEP_FG
|
|
||||||
color_sep_bg = $COLOR_SEP_BG
|
|
||||||
color_scroll_ind = $COLOR_SCROLL_IND
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
main() {
|
|
||||||
CONFIG_FILE=$(mktemp)
|
|
||||||
MENU_ITEMS=$(mktemp)
|
|
||||||
trap "rm -f ${CONFIG_FILE} ${MENU_ITEMS}" EXIT
|
|
||||||
mkconfigfile
|
|
||||||
|
|
||||||
cat <<EOF > ${MENU_ITEMS}
|
|
||||||
@icon,,10,20,48,48,4,left,top,,,/usr/share/icons/hicolor/48x48/apps/mbcc.png
|
|
||||||
@text,,70,10,200,20,4,left,top,#EEEEEE,#111111,<big>$OSNAME $OSVERSION $OSCODE</big>
|
|
||||||
@text,,70,30,200,20,4,left,top,#666666,#444444,<small>Jądro:</small> $KERNEL $HOSTTYPE
|
|
||||||
@text,,70,50,200,20,4,left,top,#666666,#444444,<small>$USER@$HOSTNAME</small>
|
|
||||||
Wyloguj,openbox --exit
|
|
||||||
Uśpij,systemctl suspend
|
|
||||||
Hibernuj,systemctl hibernate
|
|
||||||
Rebootuj,systemctl reboot
|
|
||||||
Wyłącz,systemctl poweroff
|
|
||||||
Zablokuj ekran, betterlockscreen -l
|
|
||||||
EOF
|
|
||||||
jgmenu --config-file=${CONFIG_FILE} --csv-file=${MENU_ITEMS} 2>/dev/null
|
|
||||||
}
|
|
||||||
case "$1" in
|
|
||||||
main) main;;
|
|
||||||
*)
|
|
||||||
echo -e "
|
|
||||||
kuku
|
|
||||||
|
|
||||||
" >&2
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
exit 0
|
|
@ -1,175 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Get colors from config file
|
|
||||||
. $HOME/.config/mb-jgmenus/mbjgrc
|
|
||||||
|
|
||||||
JGWIDTH="322"
|
|
||||||
|
|
||||||
SCREENWIDTH=$(xdpyinfo | awk '/^ +dimensions/ {print $2}' | cut -d 'x' -f1)
|
|
||||||
SCREENHEIGHT=$(xdpyinfo | awk '/^ +dimensions/ {print $2}' | cut -d 'x' -f2)
|
|
||||||
OSNAME=$(lsb_release -d | awk '{print $2}')
|
|
||||||
OSVERSION=$(lsb_release -r | awk '{print $2}')
|
|
||||||
OSCODE=$(lsb_release -c | awk '{print $2}')
|
|
||||||
KERNEL=$(uname -r)
|
|
||||||
|
|
||||||
((POSX = SCREENWIDTH - JGWIDTH))
|
|
||||||
echo $POSX
|
|
||||||
|
|
||||||
mkconfigfile() {
|
|
||||||
cat <<EOF > ${CONFIG_FILE}
|
|
||||||
stay_alive = 0
|
|
||||||
hide_back_items = 0
|
|
||||||
terminal_exec = terminator
|
|
||||||
terminal_args = -e
|
|
||||||
tabs = 200
|
|
||||||
menu_margin_x = $POSX
|
|
||||||
menu_margin_y = 0
|
|
||||||
menu_width = $JGWIDTH
|
|
||||||
menu_height_min = $SCREENHEIGHT
|
|
||||||
menu_padding_top = 90
|
|
||||||
menu_padding_right = 10
|
|
||||||
menu_padding_bottom = 10
|
|
||||||
menu_padding_left = 10
|
|
||||||
menu_radius = 0
|
|
||||||
menu_valign = top
|
|
||||||
|
|
||||||
item_height = 20
|
|
||||||
item_halign = left
|
|
||||||
|
|
||||||
sep_markup = font="Noto Sans Bold 10" foreground="#FFFFFF"
|
|
||||||
font = Noto Sans Medium 9
|
|
||||||
icon_size = 0
|
|
||||||
|
|
||||||
color_menu_bg = $COLOR_MENU_BG
|
|
||||||
color_menu_border = $COLOR_MENU_BORDER
|
|
||||||
color_norm_bg = $COLOR_NORM_BG
|
|
||||||
color_norm_fg = $COLOR_NORM_FG
|
|
||||||
color_sel_bg = $COLOR_SEL_BG
|
|
||||||
color_sel_fg = $COLOR_SEL_FG
|
|
||||||
color_sel_border = $COLOR_SEL_BORDER
|
|
||||||
color_sep_fg = $COLOR_SEP_FG
|
|
||||||
color_sep_bg = $COLOR_SEP_BG
|
|
||||||
color_scroll_ind = $COLOR_SCROLL_IND
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
main() {
|
|
||||||
CONFIG_FILE=$(mktemp)
|
|
||||||
MENU_ITEMS=$(mktemp)
|
|
||||||
trap "rm -f ${CONFIG_FILE} ${MENU_ITEMS}" EXIT
|
|
||||||
mkconfigfile
|
|
||||||
|
|
||||||
cat <<EOF > ${MENU_ITEMS}
|
|
||||||
@icon,,10,20,48,48,4,left,top,,,/usr/share/icons/hicolor/48x48/apps/mbcc.png
|
|
||||||
@text,,70,10,200,20,4,left,top,#EEEEEE,#111111,<big>$OSNAME $OSVERSION $OSCODE</big>
|
|
||||||
@text,,70,30,200,20,4,left,top,#666666,#444444,<small>Jądro:</small> $KERNEL $HOSTTYPE
|
|
||||||
@text,,70,50,200,20,4,left,top,#666666,#444444,<small>$USER@$HOSTNAME</small>
|
|
||||||
@rect,,12,70,292,20,1,left,top,#666666,#262626,
|
|
||||||
@search,,12,70,292,20,4,left,top,#169f6f,#222222,""" pisz aby wyszukać"""
|
|
||||||
|
|
||||||
^sep()
|
|
||||||
^sep(Zarządzanie oprogramowaniem)
|
|
||||||
^sep()
|
|
||||||
Aktualizacja systemu (Pamac),pamac-manager --updates
|
|
||||||
Aktualizacja systemu (cli),^term(sudo pacman -Syyu)
|
|
||||||
Menadżer pakietów - Pamac,pamac-manager
|
|
||||||
Odnawianie kluczy,^term(sudo pacman -Sy archlinux-keyring manjaro-keyring mabox-keyring)
|
|
||||||
Ranking mirrorów,^checkout(mirrory)
|
|
||||||
^sep()
|
|
||||||
^sep(Ustawienia)
|
|
||||||
^sep()
|
|
||||||
System i sprzęt,^root(system)
|
|
||||||
Wygląd i zachowanie,^root(wyglad)
|
|
||||||
|
|
||||||
^sep()
|
|
||||||
^sep(Pomoc)
|
|
||||||
^sep()
|
|
||||||
Skróty klawiszowe,^root(shortcuts)
|
|
||||||
|
|
||||||
Miejsca,^pipe(jgmenu_run ob --cmd='obbrowser $HOME' --tag='Places'),drive-harddisk
|
|
||||||
Kompozytor,^pipe(jgmenu_run ob --cmd='mabox-compositor' --tag='Kompo'),compton
|
|
||||||
^sep()
|
|
||||||
^sep(Wyjście)
|
|
||||||
^sep()
|
|
||||||
Wyloguj,openbox --exit
|
|
||||||
Uśpij,systemctl suspend
|
|
||||||
Hibernuj,systemctl hibernate,
|
|
||||||
Rebootuj,systemctl reboot
|
|
||||||
Wyłącz,systemctl poweroff
|
|
||||||
Zablokuj ekran, betterlockscreen -l
|
|
||||||
|
|
||||||
^tag(system)
|
|
||||||
^sep()
|
|
||||||
^sep(System i sprzęt)
|
|
||||||
^sep()
|
|
||||||
^sep(Ustawienia)
|
|
||||||
Język i formaty,manjaro-settings-manager -m msm_locale,
|
|
||||||
Pakiety językowe,manjaro-settings-manager -m msm_language_packages,
|
|
||||||
Jądro systemowe,manjaro-settings-manager -m msm_kernel,
|
|
||||||
Konta użytkowników,manjaro-settings-manager -m msm_users,
|
|
||||||
Data i Czas,manjaro-settings-manager -m msm_timedate,
|
|
||||||
Ustawienia klawiatury,manjaro-settings-manager -m msm_keyboard,
|
|
||||||
Konfiguracja sprzętowa,manjaro-settings-manager -m msm_mhwd,
|
|
||||||
wróć,^back()
|
|
||||||
|
|
||||||
^tag(mirrory)
|
|
||||||
Wszystkie,^term(sudo pacman-mirrors -i -c all)
|
|
||||||
Najbliższe (wg GEOIP),term(sudo pacman-mirrors -i --geoip)
|
|
||||||
wróć,^back()
|
|
||||||
|
|
||||||
^tag(wyglad)
|
|
||||||
^sep()
|
|
||||||
^sep(Wygląd i zachowanie)
|
|
||||||
^sep()
|
|
||||||
Wystrój i ikony,lxappearance,
|
|
||||||
Wybór tapety,nitrogen,
|
|
||||||
Menadżer konfiguracji OpenBox,obconf,
|
|
||||||
wróć,^back()
|
|
||||||
|
|
||||||
|
|
||||||
^tag(shortcuts)
|
|
||||||
^sep(Uruchamianie aplikacji)
|
|
||||||
Terminal W+t,terminator,
|
|
||||||
Przeglądarka WWW W+w,exo-open --launch WebBrowser,
|
|
||||||
Menadżer plików W+f,exo-open --launch FileManager,
|
|
||||||
Edytor tekstu W+e,exo-open --launch TextEditor,
|
|
||||||
Kontrola głośności <span fgcolor="#222222" bgcolor="#BBBBBB" size="smaller"> W+v </span>,pavucontrol,
|
|
||||||
włącz/wyłącz Kompozytora <span fgcolor="#222222" bgcolor="#BBBBBB" size="smaller"> W+c </span>,compton_toggle,
|
|
||||||
Blokuj ekran W+l, betterlockscreen -l,
|
|
||||||
|
|
||||||
^sep(Okna)
|
|
||||||
^sep(Pulpity)
|
|
||||||
wróć,^back()
|
|
||||||
EOF
|
|
||||||
jgmenu --config-file=${CONFIG_FILE} --csv-file=${MENU_ITEMS} 2>/dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
second() {
|
|
||||||
CONFIG_FILE=$(mktemp)
|
|
||||||
MENU_ITEMS=$(mktemp)
|
|
||||||
trap "rm -f ${CONFIG_FILE} ${MENU_ITEMS}" EXIT
|
|
||||||
mkconfigfile
|
|
||||||
cat <<EOF > ${MENU_ITEMS}
|
|
||||||
@icon,,10,50,48,48,4,left,top,,,/usr/share/icons/hicolor/48x48/apps/mbcc.png
|
|
||||||
@text,,70,40,200,20,4,left,top,#EEEEEE,#111111,$OSNAME $OSVERSION $OSCODE
|
|
||||||
@text,,70,60,200,20,4,left,top,#666666,#444444,Jądr: $OSTYPE $HOSTTYPE
|
|
||||||
@text,,70,80,200,20,4,left,top,#666666,#444444,$USER@$HOSTNAME
|
|
||||||
@search,,10,100,200,20,4,left,top,#006600,#444444,"""...pisz, aby wyszukać"""
|
|
||||||
^sep()
|
|
||||||
^sep(System i sprzęt)
|
|
||||||
^sep()
|
|
||||||
EOF
|
|
||||||
jgmenu --config-file=${CONFIG_FILE} --csv-file=${MENU_ITEMS} 2>/dev/null
|
|
||||||
}
|
|
||||||
case "$1" in
|
|
||||||
main) main;;
|
|
||||||
*)
|
|
||||||
echo -e "
|
|
||||||
kuku
|
|
||||||
|
|
||||||
" >&2
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
exit 0
|
|
@ -1,94 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Get colors from config file
|
|
||||||
. $HOME/.config/mb-jgmenus/mbjgrc
|
|
||||||
|
|
||||||
JGWIDTH="280"
|
|
||||||
|
|
||||||
SCREENHEIGHT=$(xdpyinfo | awk '/^ +dimensions/ {print $2}' | cut -d 'x' -f2)
|
|
||||||
OSNAME=$(lsb_release -d | awk '{print $2}')
|
|
||||||
OSVERSION=$(lsb_release -r | awk '{print $2}')
|
|
||||||
OSCODE=$(lsb_release -c | awk '{print $2}')
|
|
||||||
KERNEL=$(uname -r)
|
|
||||||
|
|
||||||
|
|
||||||
mkconfigfile() {
|
|
||||||
cat <<EOF > ${CONFIG_FILE}
|
|
||||||
stay_alive = 0
|
|
||||||
hide_back_items = 0
|
|
||||||
terminal_exec = terminator
|
|
||||||
terminal_args = -e
|
|
||||||
tabs = 200
|
|
||||||
menu_margin_x = 0
|
|
||||||
menu_margin_y = 0
|
|
||||||
menu_width = $JGWIDTH
|
|
||||||
menu_height_min = $SCREENHEIGHT
|
|
||||||
menu_padding_top = 90
|
|
||||||
menu_padding_right = 10
|
|
||||||
menu_padding_bottom = 10
|
|
||||||
menu_padding_left = 10
|
|
||||||
menu_radius = 0
|
|
||||||
nmenu_halign = left
|
|
||||||
menu_valign = top
|
|
||||||
|
|
||||||
item_height = 20
|
|
||||||
item_halign = left
|
|
||||||
|
|
||||||
sep_markup = font="Noto Sans Bold 10" foreground="#FFFFFF"
|
|
||||||
font = Noto Sans Medium 9
|
|
||||||
icon_size = 0
|
|
||||||
|
|
||||||
color_menu_bg = $COLOR_MENU_BG
|
|
||||||
color_menu_border = $COLOR_MENU_BORDER
|
|
||||||
color_norm_bg = $COLOR_NORM_BG
|
|
||||||
color_norm_fg = $COLOR_NORM_FG
|
|
||||||
color_sel_bg = $COLOR_SEL_BG
|
|
||||||
color_sel_fg = $COLOR_SEL_FG
|
|
||||||
color_sel_border = $COLOR_SEL_BORDER
|
|
||||||
color_sep_fg = $COLOR_SEP_FG
|
|
||||||
color_sep_bg = $COLOR_SEP_BG
|
|
||||||
color_scroll_ind = $COLOR_SCROLL_IND
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
main() {
|
|
||||||
CONFIG_FILE=$(mktemp)
|
|
||||||
MENU_ITEMS=$(mktemp)
|
|
||||||
trap "rm -f ${CONFIG_FILE} ${MENU_ITEMS}" EXIT
|
|
||||||
mkconfigfile
|
|
||||||
|
|
||||||
cat <<EOF > ${MENU_ITEMS}
|
|
||||||
@icon,,10,20,48,48,4,left,top,,,/usr/share/icons/hicolor/48x48/apps/mbcc.png
|
|
||||||
@text,,70,10,200,20,4,left,top,#EEEEEE,#111111,<big>$OSNAME $OSVERSION $OSCODE</big>
|
|
||||||
@text,,70,30,200,20,4,left,top,#666666,#444444,<small>Jądro:</small> $KERNEL $HOSTTYPE
|
|
||||||
@text,,70,50,200,20,4,left,top,#666666,#444444,<small>$USER@$HOSTNAME</small>
|
|
||||||
^sep()
|
|
||||||
^sep(Szybka nawigacja)
|
|
||||||
^sep()
|
|
||||||
Katalog główny,^pipe(jgmenu_run ob --cmd='obbrowser /'
|
|
||||||
Katalog domowy,^pipe(jgmenu_run ob --cmd='obbrowser $HOME'
|
|
||||||
^sep()
|
|
||||||
$(basename $(xdg-user-dir DESKTOP)),^pipe(jgmenu_run ob --cmd="obbrowser $(xdg-user-dir DESKTOP)"
|
|
||||||
$(basename $(xdg-user-dir DOWNLOAD)),^pipe(jgmenu_run ob --cmd="obbrowser $(xdg-user-dir DOWNLOAD)"
|
|
||||||
$(basename $(xdg-user-dir TEMPLATES)),^pipe(jgmenu_run ob --cmd="obbrowser $(xdg-user-dir TEMPLATES)"
|
|
||||||
$(basename $(xdg-user-dir PUBLICSHARE)),^pipe(jgmenu_run ob --cmd="obbrowser $(xdg-user-dir PUBLICSHARE)"
|
|
||||||
$(basename $(xdg-user-dir DOCUMENTS)),^pipe(jgmenu_run ob --cmd="obbrowser $(xdg-user-dir DOCUMENTS)"
|
|
||||||
$(basename $(xdg-user-dir MUSIC)),^pipe(jgmenu_run ob --cmd="obbrowser $(xdg-user-dir MUSIC)"
|
|
||||||
$(basename $(xdg-user-dir PICTURES)),^pipe(jgmenu_run ob --cmd="obbrowser $(xdg-user-dir PICTURES)"
|
|
||||||
$(basename $(xdg-user-dir VIDEOS)),^pipe(jgmenu_run ob --cmd="obbrowser $(xdg-user-dir VIDEOS)"
|
|
||||||
EOF
|
|
||||||
jgmenu --config-file=${CONFIG_FILE} --csv-file=${MENU_ITEMS} 2>/dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
main) main;;
|
|
||||||
*)
|
|
||||||
echo -e "
|
|
||||||
kuku
|
|
||||||
|
|
||||||
" >&2
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
exit 0
|
|
588
mabox-pl/desktop-overlay/etc/skel/bin/yt-get
Executable file
588
mabox-pl/desktop-overlay/etc/skel/bin/yt-get
Executable file
@ -0,0 +1,588 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# NAME: YAD Youtube Downloader
|
||||||
|
#
|
||||||
|
# DESCRIPTION: youtube-dl frontend for YT videos
|
||||||
|
#
|
||||||
|
# This script is a fork of the script by "damo" from BunsenLabs
|
||||||
|
# MAINTAINER: Misko_2083 <Miloš Pavlović> June 2016
|
||||||
|
#
|
||||||
|
# June 2016
|
||||||
|
# New: Format selection dialog
|
||||||
|
# Multiprogress bars
|
||||||
|
# * Progress bar method is improved version of Glutanimate's yad_wget script
|
||||||
|
# * yad-wget https://github.com/Glutanimate/misc-scripts/blob/master/Internet/yad_wget
|
||||||
|
# New GUI with multi-download options
|
||||||
|
# Simultaneous downloads of videos
|
||||||
|
# Option to chose the number of simultaneous downloads
|
||||||
|
#
|
||||||
|
# August 2016
|
||||||
|
# New: Support for lists
|
||||||
|
# Auto-detection if a URL is a list or a video
|
||||||
|
# Option to download videos from a list
|
||||||
|
# An option to select all/none
|
||||||
|
# Improved: Format selection dialog data
|
||||||
|
#
|
||||||
|
# March 2017
|
||||||
|
# New: Progress bar while loading the format info
|
||||||
|
# Window icon is stored in the script
|
||||||
|
# Check for youtube-dl version
|
||||||
|
# Improved: Dialog Wording and appearance
|
||||||
|
|
||||||
|
# ***********************
|
||||||
|
# INITIALIZATION
|
||||||
|
# ***********************
|
||||||
|
|
||||||
|
declare -i SIMULTANEOUS
|
||||||
|
declare -i FIELDS
|
||||||
|
SVG='<''svg width="48" height="48" viewBox="0 0 245 245">
|
||||||
|
<radialGradient fx="5%" fy="5%" id="rg" r="65%">
|
||||||
|
<stop offset="0%" stop-color="white"/>
|
||||||
|
<stop offset="100%" stop-color="lightgray"/>
|
||||||
|
</radialGradient>
|
||||||
|
<radialGradient fx="5%" fy="5%" id="gr" r="65%">
|
||||||
|
<stop offset="0%" stop-color="#932420"/>
|
||||||
|
<stop offset="100%" stop-color="#CB322C"/>
|
||||||
|
</radialGradient>
|
||||||
|
<linearGradient id="lg" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop offset="0" stop-color="#932420"/>
|
||||||
|
<stop offset="1" stop-color="#CB322C"/>
|
||||||
|
</linearGradient>
|
||||||
|
<rect width="235" x="5" y="5" fill="url(#rg)" rx="30"
|
||||||
|
height="235" ry="30" stroke="white" stroke-width="4"
|
||||||
|
stroke-opacity="0.4"/>
|
||||||
|
<rect width="215" x="16" y="115" fill="url(#gr)" rx="50"
|
||||||
|
height="115" ry="50" stroke="white" stroke-width="2"
|
||||||
|
stroke-opacity="0.4"/>
|
||||||
|
<g>
|
||||||
|
<text x="50%" y="42%" text-anchor="middle" stroke="none" fill="black"
|
||||||
|
font-family="Sans" font-size="90" font-weight="800">You</text>
|
||||||
|
<text x="50%" y="82%" text-anchor="middle" stroke="none" fill="white"
|
||||||
|
font-family="Sans" font-size="70" font-weight="800">Tube</text>
|
||||||
|
</g>
|
||||||
|
</svg>'
|
||||||
|
|
||||||
|
# Set GUI variables up
|
||||||
|
TITLE="YAD Pobieracz YouTube" # dialog title
|
||||||
|
# Progress dialog text
|
||||||
|
TEXT="<b>Pobieranie</b> ...
|
||||||
|
Anuluj i wyczyść - usuwa pliki *.part
|
||||||
|
Anuluj - Anuluje pobieranie"
|
||||||
|
ICON="/tmp/yt.svg"
|
||||||
|
if [ ! -f "$ICON" ]; then
|
||||||
|
echo "SVG file not found. Creating it."
|
||||||
|
echo "$SVG" > "$ICON"
|
||||||
|
fi
|
||||||
|
|
||||||
|
IMAGE="$ICON"
|
||||||
|
declare -i MODE
|
||||||
|
MODE=1 # Defaiult dialog mode: 0 - Multi, 1 - Manual
|
||||||
|
#Multy download dialog options
|
||||||
|
SIMULTANEOUS=2 # set default number of simultaneous downloads (1-5)
|
||||||
|
FIELDS=8 # number of URL fields
|
||||||
|
# List checkboxes (default mode) TRUE/FALSE
|
||||||
|
SELECT_ALL="TRUE"
|
||||||
|
# Set global variables (Do not change)
|
||||||
|
FORMAT="" # Set global variable for the format selection
|
||||||
|
ENTRY="" # Set global variable for the entry
|
||||||
|
# Check if yad is installed
|
||||||
|
if ! hash yad &>/dev/null;then
|
||||||
|
echo "Nie znaleziono yad"
|
||||||
|
echo "Zainstaluj yad i uruchom skrypt ponownie"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
# Check if youtube-dl is installed
|
||||||
|
if ! hash youtube-dl &>/dev/null;then
|
||||||
|
DLG=$(yad --form \
|
||||||
|
--borders=10 --image-on-top \
|
||||||
|
--text=" Nie znaleziono youtube-dl \n\n Zainstaluj youtube-dl i uruchom skrypt ponownie" --button="gtk-ok:0" \
|
||||||
|
--center --title "$TITLE" --window-icon "$ICON" --image "$IMAGE" \
|
||||||
|
)
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
# Check if ffmpeg is installed
|
||||||
|
if ! hash ffmpeg &>/dev/null;then
|
||||||
|
DLG=$(yad --form \
|
||||||
|
--borders=10 --image-on-top \
|
||||||
|
--text=" Nie znaleziono ffmpeg \n\n Zainstaluj ffmpeg i uruchom skrypt ponownie" --button="gtk-ok:0" \
|
||||||
|
--center --title "$TITLE" --window-icon "$ICON" --image "$IMAGE" \
|
||||||
|
)
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
# Check if jq is installed
|
||||||
|
if ! hash jq &>/dev/null;then
|
||||||
|
DLG=$(yad --form \
|
||||||
|
--borders=10 --image-on-top \
|
||||||
|
--text=" Nie znaleziono jq\n\n Zainstaluj jq i uruchom skrypt ponownie" --button="gtk-ok:0" \
|
||||||
|
--center --title "$TITLE" --window-icon "$ICON" --image "$IMAGE" \
|
||||||
|
)
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ***********************
|
||||||
|
# END INITIALIZATION
|
||||||
|
# ***********************
|
||||||
|
|
||||||
|
|
||||||
|
# ***********************
|
||||||
|
# FUNCTIONS
|
||||||
|
# ***********************
|
||||||
|
|
||||||
|
# ------------------
|
||||||
|
function download()
|
||||||
|
# ------------------
|
||||||
|
{
|
||||||
|
# Download function
|
||||||
|
# Passed: $1 - TYPE
|
||||||
|
# $2 - URL
|
||||||
|
# $3 - COUNTER (to identify the bar)
|
||||||
|
|
||||||
|
# Checks if the TYPE is a playlist
|
||||||
|
# and adds apropriate option to UTYPE variable
|
||||||
|
if [[ "$1" == "playlist?list" ]]; then
|
||||||
|
UTYPE="--yes-playlist" # if a playlist
|
||||||
|
else
|
||||||
|
UTYPE="" # if a video
|
||||||
|
fi
|
||||||
|
cd "$SAVEDIR" # Changes current path
|
||||||
|
# Starts the download and pipes the output to a loop
|
||||||
|
# Loop is used to display the text in multi-progressbar
|
||||||
|
youtube-dl ${UTUBE} ${UTYPE} --newline -i -o "%(title)s-%(id)s.%(ext)s" "https://www.youtube.com/$1=$2" 2>&1 \
|
||||||
|
| while read -r line; do
|
||||||
|
if [[ "$(echo $line | grep '[0-9]*%')" ]];then
|
||||||
|
percent=$(echo $line | awk '{print $2}')
|
||||||
|
if [[ ! "$(echo "${percent}" | grep "100")" ]]; then # do not print 100% yet in case of conversion (mp3) or playlist
|
||||||
|
echo "$3:${percent%.*}" # sends percentage to the progress bar
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [[ "$(echo $line | grep -E '\[download\]|\[ffmpeg\]')" ]];then
|
||||||
|
progress=$(echo $line | awk '{$1=""; print substr ($0, 0, 75)}')
|
||||||
|
echo "$3:#$progress" # sends text to the progressbar
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
RET_YT="${PIPESTATUS[0]}"
|
||||||
|
if [[ "$RET_YT" = 0 ]]
|
||||||
|
then
|
||||||
|
echo "$3:100%"
|
||||||
|
echo "$3:#Pobieranie zakończone."
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "$3:#Błąd pobierania."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# ------------------
|
||||||
|
function format_selection()
|
||||||
|
# ------------------
|
||||||
|
{
|
||||||
|
# Format selection
|
||||||
|
|
||||||
|
# Temp file to store the items for the list
|
||||||
|
res=$(mktemp --tmpdir ytlist.XXXXXXXX)
|
||||||
|
CNT=0
|
||||||
|
while [ $CNT -lt 1 ]; do
|
||||||
|
echo "5"
|
||||||
|
# Fetching available format data and redirecting to res temp file
|
||||||
|
youtube-dl -j --skip-download --all-formats "$YTEMP" --newline \
|
||||||
|
| jq -r '.format_id, .format, .ext,
|
||||||
|
if .vcodec == "none" then "audio only" else .vcodec end,
|
||||||
|
if .acodec == "none" then "video only" else .acodec end,
|
||||||
|
if .filesize == null then "" else .filesize/1024/1024 end' > $res
|
||||||
|
# Checks youtube-dl return status
|
||||||
|
if [[ ${PIPESTATUS[0]} -ne 0 ]]; then
|
||||||
|
yad --form \
|
||||||
|
--borders=10 --image-on-top \
|
||||||
|
--text="Nie można pobrać listy dostępnych formatów\nSprawdź połączenie internetowe lub zaktualizuj youtube-dl" --button="gtk-ok:0" \
|
||||||
|
--center --title "$TITLE" --window-icon "$ICON" --image "$IMAGE"
|
||||||
|
rm -f $res # rm temp file
|
||||||
|
main # go back
|
||||||
|
fi
|
||||||
|
# temp file for awk to write to
|
||||||
|
res2=$(mktemp --tmpdir ytlist.XXXXXXXX)
|
||||||
|
# awk converts every sixth line (if not empty) to two decimal places and adds MiB
|
||||||
|
awk '{if (NR % 6 == 0 && $1 !=""){printf("%.2f MiB\n", $1)} else {print $0}}' $res > $res2
|
||||||
|
cp -f $res2 $res
|
||||||
|
rm -f $res2
|
||||||
|
CNT=$(($CNT+1))
|
||||||
|
done | yad --progress --pulsate --center --title "$TITLE" --window-icon "$ICON" --image "$IMAGE" --auto-close \
|
||||||
|
--borders=10 --button="Anuluj!gtk-no:1" --text="Pobieranie informacji o formatach..."
|
||||||
|
RET=$?
|
||||||
|
case "$RET" in
|
||||||
|
0) # Continue
|
||||||
|
;;
|
||||||
|
1) # Canceled
|
||||||
|
rm -f $res2 # rm temp file
|
||||||
|
rm -f $res # rm temp file
|
||||||
|
main
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
rm -f $res2 # rm temp file
|
||||||
|
rm -f $res # rm temp file
|
||||||
|
main
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
# Calls format (list) selection dialog
|
||||||
|
FORMAT="$(yad --list --width=600 --height=500 --hide-column=1 --column="format" \
|
||||||
|
--column="format" --column="extension" --column=video --column="audio" --column="filesize" \
|
||||||
|
--button="wróć!back:2" --button="Odśwież!reload:3" --button="Wyjdź!gtk-cancel:1" --button="Pobierz!gtk-ok:0" \
|
||||||
|
--window-icon="$ICON" --image="$IMAGE" --image-on-top \
|
||||||
|
--text "$FILENAME\nWybierz format do pobrania" --borders=10 \
|
||||||
|
--center --title "$TITLE" --window-icon "$ICON" --image "$IMAGE" \
|
||||||
|
< "$res" )"
|
||||||
|
RET=$?
|
||||||
|
case "$RET" in
|
||||||
|
0) # Continue
|
||||||
|
;;
|
||||||
|
1) # Canceled
|
||||||
|
rm -f $res # rm temp file
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
2) # Back
|
||||||
|
rm -f $res # rm temp file
|
||||||
|
main
|
||||||
|
;;
|
||||||
|
3) # Refresh
|
||||||
|
rm -f $res # rm temp file
|
||||||
|
format_selection
|
||||||
|
;;
|
||||||
|
*) # Default
|
||||||
|
rm -f $res # rm temp file
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
rm -f $res # rm temp file
|
||||||
|
FORMAT=$(echo "$FORMAT" | cut -d '|' -f 1)
|
||||||
|
if [[ -z $FORMAT ]];then
|
||||||
|
yad --text="Nie wybrałeś formatu do pobrania\nCzy chcesz powrócić do głównego okna?" \
|
||||||
|
--borders=10 --form --button="Nie!gtk-cancel:1" --button="Tak!gtk-ok:0" \
|
||||||
|
--center --title "$TITLE" --window-icon "$ICON" --image "$IMAGE"
|
||||||
|
RET=$?
|
||||||
|
case "$RET" in
|
||||||
|
0) # Back
|
||||||
|
main
|
||||||
|
;;
|
||||||
|
*) # Cancelled
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# ------------------
|
||||||
|
function list_selection()
|
||||||
|
# ------------------
|
||||||
|
{
|
||||||
|
# Temp file to store the items from a list
|
||||||
|
res=$(mktemp --tmpdir ytlist.XXXXXXXX)
|
||||||
|
youtube-dl -j --flat-playlist "https://www.youtube.com/playlist?list=${YTEMP}" \
|
||||||
|
| jq -r '.title, .id' | sed '1~2s/^/'"$SELECT_ALL"'\n/' \
|
||||||
|
| yad --text='Select items to download' --list --checklist --column "Select" --column "Title" --column "Url" --no-markup \
|
||||||
|
--button="$(if [[ "$SELECT_ALL" = "TRUE" ]]; then echo Select None; else echo Select All; fi)!gtk-yes:4" \
|
||||||
|
--button="back!back:2" --button="Refresh!reload:3" --button="Exit!gtk-cancel:1" --button="Download!gtk-ok:0" \
|
||||||
|
--window-icon="$ICON" --image="$IMAGE" --image-on-top \
|
||||||
|
--borders=10 --width=600 --height=500 --print-column=3 --separator=" " \
|
||||||
|
--center --title "$TITLE" --window-icon "$ICON" --image "$IMAGE" > $res
|
||||||
|
RET=$?
|
||||||
|
case "$RET" in
|
||||||
|
0) # Continue
|
||||||
|
;;
|
||||||
|
1) # Canceled
|
||||||
|
rm -f $res # rm temp file
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
2) # Back
|
||||||
|
rm -f $res # rm temp file
|
||||||
|
main
|
||||||
|
;;
|
||||||
|
3) # Refresh
|
||||||
|
list_selection
|
||||||
|
;;
|
||||||
|
4) # Select All/None
|
||||||
|
if [[ "$SELECT_ALL" = "TRUE" ]]; then
|
||||||
|
SELECT_ALL="FALSE"
|
||||||
|
else
|
||||||
|
SELECT_ALL="TRUE"
|
||||||
|
fi
|
||||||
|
list_selection
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
rm -f $res # rm temp file
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
# Checks if temp file is empty
|
||||||
|
if [[ ! -s "$res" ]];then
|
||||||
|
yad --text="At least one item needs to be selected\nDo you want to return to the main window?" \
|
||||||
|
--borders=10 --form --button="No!gtk-cancel:1" --button="Yes!gtk-ok:0" \
|
||||||
|
--center --title "$TITLE" --window-icon "$ICON" --image "$IMAGE"
|
||||||
|
RET=$?
|
||||||
|
case "$RET" in
|
||||||
|
0) # Back
|
||||||
|
rm -f $res # rm temp file
|
||||||
|
main
|
||||||
|
;;
|
||||||
|
*) # Canceled
|
||||||
|
rm -f $res # rm temp file
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
# Starts the download function
|
||||||
|
list_download
|
||||||
|
}
|
||||||
|
|
||||||
|
# ------------------
|
||||||
|
list_download()
|
||||||
|
# ------------------
|
||||||
|
{
|
||||||
|
i=0
|
||||||
|
TOTAL=$(wc -l "$res" | cut -d ' ' -f 1)
|
||||||
|
cd "$SAVEDIR"
|
||||||
|
while read -r line || [[ -n "$line" ]]; do
|
||||||
|
i=$(($i+1))
|
||||||
|
PERCENT=$(($i*100/${TOTAL})) # Calculates percentage
|
||||||
|
echo "#Pobieranie $i/$TOTAL: $line" # Writes to the progress-bar
|
||||||
|
youtube-dl ${UTUBE} --newline -i -o "%(title)s-%(id)s.%(ext)s" "https://www.youtube.com/watch?v=${line}" 2>&1 &
|
||||||
|
PID="$!"
|
||||||
|
wait "$PID"
|
||||||
|
echo "$PERCENT"
|
||||||
|
done < "$res" | yad --progress --center --text="Downloading list items" --title "$TITLE" --window-icon "$ICON" --image "$IMAGE" --auto-close \
|
||||||
|
--borders=10 --button="Anuluj!gtk-no:1"
|
||||||
|
if (( $? == 1 ));then # Download canceled, so clean up
|
||||||
|
kill "$PID" &>/dev/null # Kills any running download process
|
||||||
|
|
||||||
|
notify-send -t 3000 --icon "dialog-info" "Pobieranie anulowane"
|
||||||
|
while read -r line || [[ -n "$line" ]]; do
|
||||||
|
rm "$(find "$SAVEDIR" -type f -name "*-$line.*" | grep part)" &>/dev/null # Finds & removes the part file
|
||||||
|
echo "#$line"
|
||||||
|
sleep "0.1"
|
||||||
|
done < "$res" | yad --progress --pulsate --center --title "$TITLE" --window-icon "$ICON" --image "$IMAGE" --auto-close \
|
||||||
|
--borders=10 --button="Anuluj!gtk-no:1" --text="Usuwanie plików .part"
|
||||||
|
fi
|
||||||
|
rm -f $res # rm temp file
|
||||||
|
exit # exit here
|
||||||
|
}
|
||||||
|
|
||||||
|
# ------------------
|
||||||
|
function download_format()
|
||||||
|
# ------------------
|
||||||
|
{
|
||||||
|
FILENAME="$(youtube-dl --get-filename "$1")" # Get filename
|
||||||
|
YTEMP="$1" # Temp variable
|
||||||
|
format_selection # Start format selection dialog
|
||||||
|
}
|
||||||
|
|
||||||
|
# ------------------
|
||||||
|
check_version()
|
||||||
|
# ------------------
|
||||||
|
{
|
||||||
|
wget --spider --user-agent="Mozilla/5.0 Gecko/20100101" --timeout=30 -q "https://rg3.github.io/youtube-dl/" -O /dev/null
|
||||||
|
if [[ "$?" -ne "0" ]]; then
|
||||||
|
yad --text="Can't connect to youtube-dl server site\nMake sure the internet connection is up and active" \
|
||||||
|
--borders=10 --form --button="Ok!gtk-ok:0" \
|
||||||
|
--center --title "$TITLE" --window-icon "$ICON" --image "$IMAGE"
|
||||||
|
main
|
||||||
|
fi
|
||||||
|
ytdlcv=$(youtube-dl --version)
|
||||||
|
ytdllv=$(wget -O- -q "https://rg3.github.io/youtube-dl/update/LATEST_VERSION")
|
||||||
|
if [[ "$ytdlcv" == "$ytdllv" ]]; then
|
||||||
|
yad --text="Zainstalowana wersja youtube-dl - <b>$ytdlcv</b>\nDostępna wersja youtube-dl - <b>$ytdllv</b>\n\nyoutube-dl jest aktualne" \
|
||||||
|
--borders=10 --form --button="Ok!gtk-ok:0" \
|
||||||
|
--center --title "$TITLE" --window-icon "$ICON" --image "$IMAGE"
|
||||||
|
else
|
||||||
|
yad --text="Zainstalowana wersja youtube-dl - <b>$ytdlcv</b>\nDostępna wersja youtube-dl - <b>$ytdllv</b>\n\nDostępna jest aktualizacja youtube-dl" \
|
||||||
|
--borders=10 --form --button="Ok!gtk-ok:0" \
|
||||||
|
--center --title "$TITLE" --window-icon "$ICON" --image "$IMAGE"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# ------------------
|
||||||
|
dialog()
|
||||||
|
# ------------------
|
||||||
|
{
|
||||||
|
# Dialogs
|
||||||
|
if [[ "$MODE" = "0" ]]; then
|
||||||
|
OIFS=$IFS # save Internal Field Separator
|
||||||
|
IFS=$'\n' # separator is "\n" in returned choices
|
||||||
|
c=0
|
||||||
|
YADFIELD=()
|
||||||
|
while [[ ${c} -lt $FIELDS ]];do
|
||||||
|
c=$(($c+1))
|
||||||
|
YADFIELD+=($(echo "--field=<b>Adres YouTube\:</b> ${c}:NORM"; echo "")) # Store yad form fields in an array
|
||||||
|
done
|
||||||
|
ENTRY="$(yad --form --columns=1 --window-icon "$ICON" --center \
|
||||||
|
--borders=10 --title "$TITLE" --image "$IMAGE" --image-on-top \
|
||||||
|
--text "<b>Wybierz katalog docelowy\n i wklej adres(y) w odpowiednie pola</b>" \
|
||||||
|
--button="Przełącz GUI!reload:2" $(if hash wget &>/dev/null;then echo "--button=youtube-dl:3";fi) \
|
||||||
|
--button="Wyjdź!gtk-cancel:1" --button="Pobierz!gtk-ok:0" \
|
||||||
|
--field="Katalog pobranych plików:DIR" "$HOME/Pobrane" \
|
||||||
|
--field="Opcje pobierania:CB" "Tylko Audio (mp3)!Video (22/18/17)" \
|
||||||
|
--field="Jednoczesne pobieranie:NUM" "$SIMULTANEOUS!1..5!1" \
|
||||||
|
${YADFIELD[@]} \
|
||||||
|
)"
|
||||||
|
RET=$?
|
||||||
|
IFS=$OIFS # reset IFS back to default
|
||||||
|
case "$RET" in
|
||||||
|
0) # Continue
|
||||||
|
;;
|
||||||
|
1) # Canceled
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
2)
|
||||||
|
MODE=1
|
||||||
|
dialog
|
||||||
|
;;
|
||||||
|
3)
|
||||||
|
check_version
|
||||||
|
main
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
elif [[ "$MODE" = "1" ]]; then
|
||||||
|
ENTRY="$(yad --form --columns=1 --window-icon "$ICON" --center \
|
||||||
|
--borders=10 --title "$TITLE" --image "$IMAGE" --image-on-top \
|
||||||
|
--text "<b>Wybierz katalog docelowy\n i wklej adres w odpowiednie pole</b>" \
|
||||||
|
--button="Przełącz GUI!reload:2" $(if hash wget &>/dev/null;then echo "--button=youtube-dl:3";fi) \
|
||||||
|
--button="Wyjdź!gtk-cancel:1" --button="Pobierz!gtk-ok:0" \
|
||||||
|
--field="Katalog pobranych plików:DIR" "$HOME/Pobrane" \
|
||||||
|
--field="Opcje pobierania:CB" "Własne!Tylko Audio (mp3)!Video (22/18/17)" \
|
||||||
|
--field="Jednoczesne pobieranie:NUM" "1!1..1!1" \
|
||||||
|
--field="<b>Adres YouTube</b>:" "" \ # Only one url field for the Manual format selection
|
||||||
|
)"
|
||||||
|
RET=$?
|
||||||
|
case "$RET" in
|
||||||
|
0) # Continue
|
||||||
|
;;
|
||||||
|
1) # Canceled
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
2)
|
||||||
|
MODE=0
|
||||||
|
dialog
|
||||||
|
;;
|
||||||
|
3)
|
||||||
|
check_version
|
||||||
|
main
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# ------------------
|
||||||
|
main()
|
||||||
|
# ------------------
|
||||||
|
{
|
||||||
|
while :; do
|
||||||
|
dialog # calls the main dialog
|
||||||
|
OIFS=$IFS # save Internal Field Separator
|
||||||
|
IFS="|" # separator is "|" in returned choices
|
||||||
|
i=0
|
||||||
|
retChoice=()
|
||||||
|
e=0
|
||||||
|
URLIST=()
|
||||||
|
for ret in $ENTRY;do
|
||||||
|
retChoice[$i]="$ret"
|
||||||
|
i=$(($i+1)) # iterate i
|
||||||
|
if [[ "$i" -gt 3 ]] && [[ "$ret" != "" ]];then # get form fields if they are not empty
|
||||||
|
retType="${ret%%'='*}" # trim to the '=', TYPE position
|
||||||
|
TYPE[$e]="${retType##*'/'}" # extract type, playlist or video
|
||||||
|
retUrl="${ret%%'&'*}" # trim to the '&' character, URL position
|
||||||
|
URLIST[$e]="${retUrl##*'='}" # extract filename
|
||||||
|
YADBARS="$YADBARS --bar=${URLIST[$e]}:NORM" # add bars to a yad multiprogress dialog
|
||||||
|
e=$(($e+1)) # iterate e
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
IFS=$OIFS # reset IFS back to default
|
||||||
|
SAVEDIR=${retChoice[0]} # directory path
|
||||||
|
OPTION=${retChoice[1]}
|
||||||
|
case $OPTION in
|
||||||
|
"Video (22/18/17)")
|
||||||
|
UTUBE="-f 22/18/17"
|
||||||
|
;;
|
||||||
|
"Tylko Audio (mp3)")
|
||||||
|
UTUBE="--extract-audio --audio-format mp3 --audio-quality 0"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
MAXDLS=${retChoice[2]} # maximum number of simultaneous downloads
|
||||||
|
|
||||||
|
if [[ -z $SAVEDIR ]] || [[ ${#URLIST[@]} -eq 0 ]];then
|
||||||
|
yad --form --text="<b>Wypełnij choć jedno pole adresu\ni wybierz katalog</b>" --borders=10 \
|
||||||
|
--center --title "$TITLE" --window-icon "$ICON" --image "$IMAGE" --button="gtk-ok:0"
|
||||||
|
else
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [[ "$MODE" = "1" ]] && [[ "$OPTION" == "Własne" ]]; then
|
||||||
|
if [[ "${TYPE[@]}" == "watch?v" ]];then
|
||||||
|
for URL in ${URLIST[@]}; do
|
||||||
|
download_format "https://www.youtube.com/watch?v=$URL" # call format selection dialog
|
||||||
|
UTUBE="-f $FORMAT"
|
||||||
|
done
|
||||||
|
else
|
||||||
|
YTEMP="${URLIST[0]}"
|
||||||
|
list_selection
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# ------------------
|
||||||
|
function progress()
|
||||||
|
# ------------------
|
||||||
|
{
|
||||||
|
OIFS=$IFS # save Internal Field Separator
|
||||||
|
IFS=" " # separator is " " in returned choices
|
||||||
|
COUNTER="1"
|
||||||
|
DYNAMIC_COUNTER="1"
|
||||||
|
PID=()
|
||||||
|
c=0
|
||||||
|
for URL in ${URLIST[@]}; do
|
||||||
|
if [[ "$DYNAMIC_COUNTER" = "$MAXDLS" ]] # only download n files at a time
|
||||||
|
then
|
||||||
|
download "${TYPE[$c]}" "$URL" "$COUNTER" & # pass TYPE, URL and COUNTER to download function
|
||||||
|
PID+=("$!") # gets process pid
|
||||||
|
max="$(($COUNTER-1))" # -1, since start counter is 1, and arrays begin at 0
|
||||||
|
MAX_PID=${PID[$max]} # sets the variable pid from array PID
|
||||||
|
wait $MAX_PID # wait until process with MAX_PID finishes
|
||||||
|
DYNAMIC_COUNTER="1" # reset dynamic counter
|
||||||
|
else
|
||||||
|
download "${TYPE[$c]}" "$URL" "$COUNTER" & # pass TYPE, URL and counter number to download function
|
||||||
|
PID+=("$!")
|
||||||
|
DYNAMIC_COUNTER="$(($DYNAMIC_COUNTER+1))" # iterate dinamic counter
|
||||||
|
fi
|
||||||
|
c=$(($c+1)) # iterate TYPE counter
|
||||||
|
COUNTER="$[$COUNTER+1]" # iterate counter
|
||||||
|
done | yad --multi-progress $YADBARS --title "$TITLE" --button="Anuluj i wyczyść!gtk-close:1" --button="Anuluj!gtk-close:0" \
|
||||||
|
--text "$TEXT" --center --window-icon "$ICON" --image "$IMAGE" --image-on-top --auto-close
|
||||||
|
if (( $? == 1 ));then # Download canceled, so clean up
|
||||||
|
for pid in ${PID[@]};do
|
||||||
|
kill $pid &>/dev/null # Kills any running download process
|
||||||
|
done
|
||||||
|
for url in ${URLIST[@]}; do
|
||||||
|
rm "$(find "$SAVEDIR" -type f -name "*-$url.*" | grep part)" &>/dev/null # Finds & removes the part file
|
||||||
|
done
|
||||||
|
notify-send -t 3000 --icon "dialog-info" "Anulowano pobieranie"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
IFS=$OIFS # reset IFS back to default
|
||||||
|
}
|
||||||
|
|
||||||
|
# ***********************
|
||||||
|
# END FUNCTIONS
|
||||||
|
# ***********************
|
||||||
|
|
||||||
|
|
||||||
|
# ***********************
|
||||||
|
# MAIN
|
||||||
|
# ***********************
|
||||||
|
|
||||||
|
main # Calls the main loop
|
||||||
|
progress # Starts the download
|
||||||
|
|
||||||
|
# ***********************
|
||||||
|
# END MAIN
|
||||||
|
# ***********************
|
@ -37,8 +37,8 @@ addgroups="lp,network,power,wheel,audio,video,disk,storage,optical,scanner"
|
|||||||
|
|
||||||
# unset defaults to given values
|
# unset defaults to given values
|
||||||
# names must match systemd service names
|
# names must match systemd service names
|
||||||
enable_systemd=('avahi-daemon' 'bluetooth' 'ModemManager' 'NetworkManager' 'org.cups.cupsd' 'tlp' 'tlp-sleep' 'ufw')
|
enable_systemd=('avahi-daemon' 'bluetooth' 'ModemManager' 'NetworkManager' 'org.cups.cupsd' 'tlp' 'tlp-sleep' 'haveged' 'systemd-timesyncd')
|
||||||
disable_systemd=('pacman-init')
|
disable_systemd=('pacman-init' 'systemd-rfkill.service' 'systemd-rfkill.socket')
|
||||||
|
|
||||||
# the same workgroup name if samba is used
|
# the same workgroup name if samba is used
|
||||||
# smb_workgroup=""
|
# smb_workgroup=""
|
||||||
@ -70,4 +70,4 @@ addgroups="lp,network,power,wheel,audio,video,disk,storage,optical,scanner"
|
|||||||
# unset defaults to given values
|
# unset defaults to given values
|
||||||
# names must match systemd service names
|
# names must match systemd service names
|
||||||
# services in enable_systemd array don't need to be listed here
|
# services in enable_systemd array don't need to be listed here
|
||||||
enable_systemd_live=('manjaro-live' 'mhwd-live' 'pacman-init' 'mirrors-live' 'NetworkManager')
|
enable_systemd_live=('manjaro-live' 'mhwd-live' 'pacman-init' 'mirrors-live' 'NetworkManager' 'haveged')
|
||||||
|
Loading…
Reference in New Issue
Block a user