450 lines
14 KiB
Bash
Executable File
450 lines
14 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
. $HOME/.config/mabox/mabox.conf
|
|
|
|
# jgmenu_use-icons=
|
|
gtkbookmarks() {
|
|
BOOKMARKS="$HOME/.gtk-bookmarks"
|
|
|
|
if [[ -s "$BOOKMARKS" ]]; then
|
|
while read -r line
|
|
do
|
|
uri=$(echo $line | cut -b 8- | cut -d' ' -f1 | sed 's/%20/ /g')
|
|
dirs+=("${line#* },^pipe(jgbrowser \"${uri}\")")
|
|
done <"$BOOKMARKS"
|
|
printf "%b\n" "^sep(Zakładki GTK)"
|
|
printf '%s\n' "${dirs[@]}"
|
|
fi
|
|
}
|
|
|
|
|
|
# to ma być też podczas autostaru robione do pliku csv
|
|
virtualboxes() {
|
|
if [[ -x "$(command -v VBoxManage)" ]]; then
|
|
echo "^sep(Maszyny wirtualne)"
|
|
IFS='"';VBoxManage list -s vms | while read empty vm checksum; do echo "$vm,vboxmanage startvm \"${vm}\"";done
|
|
fi
|
|
}
|
|
|
|
JGWIDTH="280"
|
|
[ $(pidof picom) ] && RADIUS="4"
|
|
|
|
#SCREENWIDTH=$(xdpyinfo | awk '/^ +dimensions/ {print $2}' | cut -d 'x' -f1)
|
|
|
|
#Poniższe, wywalić do mabox.conf który i tak jest wczytywany - uaktualiać przez usługę z autostartu + sponge z moreutils
|
|
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}
|
|
position_mode = ${POSITION_MODE:-fixed}
|
|
csv_cmd = lx
|
|
stay_alive = 0
|
|
hide_back_items = ${HIDE_BACK_ITEMS:-0}
|
|
terminal_exec = terminator
|
|
terminal_args = -e
|
|
tabs = ${TABS:-220}
|
|
menu_margin_x = 0
|
|
menu_margin_y = 0
|
|
menu_width = $JGWIDTH
|
|
menu_height_min = ${MENU_HEIGHT_MIN:-0}
|
|
menu_height_max = ${MENU_HEIGHT_MAX:-0}
|
|
menu_padding_top = ${MENU_PADDING_TOP:-90}
|
|
menu_padding_right = ${MENU_PADDING_RIGHT:-10}
|
|
menu_padding_bottom = ${MENU_PADDING_BOTTOM:-10}
|
|
menu_padding_left = ${MENU_PADDING_LEFT:-10}
|
|
menu_radius = ${MENU_RADIUS:-0}
|
|
menu_valign = ${MENU_VALIGN:-top}
|
|
menu_halign = ${MENU_HALIGN:-left}
|
|
|
|
item_height = ${ITEM_HEIGHT:-20}
|
|
item_halign = ${ITEM_HALIGN:-left}
|
|
item_padding = 4
|
|
item_radius = 2
|
|
arrow_string = ${ARROW_STRING:-⮞}
|
|
|
|
columns = ${COLUMNS:-1}
|
|
|
|
sep_markup = font="Noto Sans Bold 9" foreground="#FFFFFF"
|
|
font = ${FONT:-Noto Sans Medium 9}
|
|
icon_size = ${ICON_SIZE:-0}
|
|
|
|
color_menu_bg = ${COLOR_MENU_BG:-#222222 80}
|
|
color_menu_border = ${COLOR_MENU_BORDER:-#2f9b85 100}
|
|
color_norm_bg = ${COLOR_NORM_BG:-#000000 0}
|
|
color_norm_fg = ${COLOR_NORM_FG:-#CCCCCC 100}
|
|
color_sel_bg = ${COLOR_SEL_BG:-#169f6f 60}
|
|
color_sel_fg = ${COLOR_SEL_FG:-#f8f8f8 100}
|
|
color_sel_border = ${COLOR_SEL_BORDER:-#504e65 100}
|
|
color_sep_fg = ${COLOR_SEP_FG:-#4D4D4D 100}
|
|
color_sep_bg = ${COLOR_SEP_BG:-#262626 100}
|
|
color_scroll_ind = ${COLOR_SCROLL_IND:-#504e65 100}
|
|
EOF
|
|
}
|
|
|
|
#MENU GŁÓWNE
|
|
main() {
|
|
echo $1;
|
|
CONFIG_FILE=$(mktemp)
|
|
MENU_ITEMS=$(mktemp)
|
|
trap "rm -f ${CONFIG_FILE} ${MENU_ITEMS}" EXIT
|
|
|
|
POSITION_MODE=${1:-pointer}
|
|
HIDE_BACK_ITEMS=1
|
|
MENU_PADDING_TOP=30
|
|
MENU_PADDING_RIGHT=0
|
|
MENU_PADDING_BOTTOM=0
|
|
MENU_PADDING_LEFT=0
|
|
JGWIDTH=0
|
|
ITEM_HEIGHT=20
|
|
[ $jgmenu_use_icons == true ] && ICON_SIZE=16
|
|
MENU_RADIUS=${RADIUS:-0}
|
|
|
|
mkconfigfile
|
|
#jgmenu --config-file=${CONFIG_FILE} --csv-file=${MENU_ITEMS} 2>/dev/null
|
|
jgmenu --config-file=${CONFIG_FILE} 2>/dev/null
|
|
}
|
|
|
|
# PANEL PO PRAWEJ AKTUALIZACE-USTAWIENIA-POMOC
|
|
right() {
|
|
CONFIG_FILE=$(mktemp)
|
|
MENU_ITEMS=$(mktemp)
|
|
trap "rm -f ${CONFIG_FILE} ${MENU_ITEMS}" EXIT
|
|
|
|
MENU_HALIGN="right"
|
|
ITEM_HALIGN="right"
|
|
ARROW_STRING=" ⮜ "
|
|
MENU_HEIGHT_MIN=$(xdpyinfo | awk '/^ +dimensions/ {print $2}' | cut -d 'x' -f2)
|
|
|
|
mkconfigfile
|
|
|
|
cat <<EOF > ${MENU_ITEMS}
|
|
@icon,,225,10,48,48,4,left,top,,,/usr/share/icons/hicolor/48x48/apps/distributor-logo-mabox.png
|
|
@text,,20,10,200,20,4,left,top,#EEEEEE,#111111,<big>$OSNAME $OSVERSION</big> <sup> $OSCODE</sup>
|
|
@text,,20,30,200,20,4,left,top,#666666,#444444,<small>$USER@$HOSTNAME</small>
|
|
@text,,20,50,200,20,4,left,top,#666666,#444444,
|
|
#@rect,,40,70,262,20,0,left,top,#666666,#262626,
|
|
@text,,74,70,20,20,0,left,top,auto,#222222,<big></big>
|
|
@search,,90,70,292,20,4,left,top,auto,#262626,""" <i>pisz, aby wyszukać</i>"""
|
|
|
|
. $HOME/.config/mabox/right-prepend.csv
|
|
|
|
^sep(Zarządzanie oprogramowaniem)
|
|
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(Ustawienia)
|
|
System i sprzęt ,^root(system)
|
|
Wygląd i zachowanie ,^root(wyglad)
|
|
|
|
|
|
^sep(Pomoc)
|
|
Skróty klawiszowe ,
|
|
Zasoby online ,^root(weblinks)
|
|
|
|
^sep(Inne)
|
|
Zrzut ekranu ,mb-jgtools screenshot
|
|
|
|
^sep(Wyjście)
|
|
|
|
Wyloguj ,openbox --exit
|
|
Uśpij ,systemctl suspend
|
|
Hibernuj ,systemctl hibernate,
|
|
Uruchom ponownie ,systemctl reboot
|
|
Wyłącz ,systemctl poweroff
|
|
Zablokuj ekran , betterlockscreen -l
|
|
|
|
# Niestety CSV nie obsługuke Unikodu
|
|
#. $HOME/.config/mabox/logout.csv
|
|
|
|
. $HOME/.config/mabox/right-append.csv
|
|
|
|
^tag(system)
|
|
|
|
^sep(System i sprzęt)
|
|
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(Wygląd i zachowanie)
|
|
Wystrój i ikony,lxappearance,
|
|
Wybór tapety,nitrogen,
|
|
Menadżer konfiguracji OpenBox,obconf,
|
|
Konfiguracja powiadomień,xfce4-notifyd-config
|
|
Preferowane aplikacje,exo-preferred-applications
|
|
Ustawienia Menedżera logowania,pkexec lightdm-settings,
|
|
Ustawienia zasilania,xfce4-power-manager-settings
|
|
^sep(Elementy pulpitu Mabox)
|
|
Conky,^pipe(jgmenu_run ob --cmd=mabox-conky-pipemenu)
|
|
Panele Tint2,^pipe(jgmenu_run ob --cmd=mabox-tint2-pipemenu)
|
|
Kompozytor,^pipe(jgmenu_run ob --cmd='mabox-compositor' --tag='Kompo'),compton
|
|
^sep(Predefiniowane konfiguracje pulpitu)
|
|
Menadżer schematów,mb-obthemes
|
|
wróć,^back()
|
|
|
|
^tag(weblinks)
|
|
^sep(Zasoby online)
|
|
^sep()
|
|
^sep(Mabox)
|
|
Mabox - pierwsze kroki,exo-open --launch WebBrowser https://pl.maboxlinux.org/przewodnik-uzytkownika/
|
|
Forum Maboxa,exo-open --launch WebBrowser https://forum.maboxlinux.org/
|
|
^sep(Manjaro)
|
|
Strona domowa,exo-open --launch WebBrowser https://manjaro.org
|
|
Wiki,exo-open --launch WebBrowser https://wiki.manjaro.org
|
|
Forum,exo-open --launch WebBrowser https://forum.manjaro.org
|
|
Manjaro PL,exo-open --launch WebBrowser https://manjaro.pl
|
|
Forum Manjaro PL,exo-open --launch WebBrowser https://forum.manjaro.pl
|
|
^sep(ArchLinux)
|
|
ArchWiki,exo-open --launch WebBrowser https://wiki.archlinux.org/
|
|
^sep()
|
|
^sep(Openbox)
|
|
^sep(Dokumentacja Tint2)
|
|
^sep(Dokumentacja Conky)
|
|
wróć,^back()
|
|
|
|
EOF
|
|
|
|
jgmenu --config-file=${CONFIG_FILE} --csv-file=${MENU_ITEMS} 2>/dev/null
|
|
}
|
|
|
|
places() {
|
|
CONFIG_FILE=$(mktemp)
|
|
MENU_ITEMS=$(mktemp)
|
|
trap "rm -f ${CONFIG_FILE} ${MENU_ITEMS}" EXIT
|
|
|
|
MENU_HEIGHT_MIN=$(xdpyinfo | awk '/^ +dimensions/ {print $2}' | cut -d 'x' -f2)
|
|
JGWIDTH=240
|
|
ITEM_HEIGHT="18"
|
|
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</big> <sup> $OSCODE</sup>
|
|
@text,,70,30,200,20,4,left,top,#666666,#444444,<small>$USER@$HOSTNAME</small>
|
|
@text,,70,50,200,20,4,left,top,#666666,#444444,
|
|
|
|
. $HOME/.config/mabox/places-prepend.csv
|
|
<big></big> Wyszukiwarka plików, fsearch
|
|
^sep(Szybka nawigacja)
|
|
Katalog główny,^pipe(jgbrowser /)
|
|
Katalog domowy,^pipe(jgbrowser)
|
|
|
|
$(basename $(xdg-user-dir DESKTOP)),^pipe(jgbrowser $(xdg-user-dir DESKTOP))
|
|
$(basename $(xdg-user-dir DOWNLOAD)),^pipe(jgbrowser $(xdg-user-dir DOWNLOAD))
|
|
# $(basename $(xdg-user-dir TEMPLATES)),^pipe(jgbrowser $(xdg-user-dir TEMPLATES))
|
|
# $(basename $(xdg-user-dir PUBLICSHARE)),^pipe(jgbrowser $(xdg-user-dir PUBLICSHARE))
|
|
$(basename $(xdg-user-dir DOCUMENTS)),^pipe(jgbrowser $(xdg-user-dir DOCUMENTS))
|
|
$(basename $(xdg-user-dir MUSIC)),^pipe(jgbrowser $(xdg-user-dir MUSIC))
|
|
$(basename $(xdg-user-dir PICTURES)),^pipe(jgbrowser $(xdg-user-dir PICTURES))
|
|
$(basename $(xdg-user-dir VIDEOS)),^pipe(jgbrowser $(xdg-user-dir VIDEOS))
|
|
#^sep(Zakładki)
|
|
^sep()
|
|
|
|
$(gtkbookmarks)
|
|
|
|
. $HOME/.config/mabox/places-append.csv
|
|
|
|
EOF
|
|
jgmenu --config-file=${CONFIG_FILE} --csv-file=${MENU_ITEMS} 2>/dev/null
|
|
}
|
|
|
|
mblogout() {
|
|
|
|
CONFIG_FILE=$(mktemp)
|
|
MENU_ITEMS=$(mktemp)
|
|
trap "rm -f ${CONFIG_FILE} ${MENU_ITEMS};wmctrl -k off" EXIT
|
|
|
|
JGWIDTH="340"
|
|
MENU_HALIGN="center"
|
|
MENU_VALIGN="center"
|
|
MENU_PADDING_TOP=213
|
|
TABS="280"
|
|
ITEM_HEIGHT="30"
|
|
FONT="Noto Sans Medium 10"
|
|
MENU_RADIUS=${RADIUS:-0}
|
|
|
|
mkconfigfile
|
|
|
|
wmctrl -k on
|
|
THUMB="$(DISPLAY=:0 scrot -t 340x213 -o /tmp/mblogout.png -e 'echo $m')"
|
|
cat <<EOF > ${MENU_ITEMS}
|
|
@icon,,0,0,340,100,4,left,top,,,$THUMB
|
|
@icon,,10,20,48,48,4,left,top,,,/usr/share/icons/hicolor/48x48/apps/mbcc.png
|
|
@text,,180,170,220,20,4,left,top,#EEEEEE,#111111,$OSNAME $OSVERSION <sup> $OSCODE</sup>
|
|
@text,,180,190,200,20,4,left,top,#DDDDDD,#DDDDDD,<small>$USER@$HOSTNAME</small>
|
|
^sep(Wylogować?)
|
|
Wyloguj,openbox --exit
|
|
Uśpij,systemctl suspend
|
|
Hibernuj,systemctl hibernate
|
|
Uruchom ponownie,systemctl reboot
|
|
Wyłącz,systemctl poweroff
|
|
Zablokuj ekran, betterlockscreen -l
|
|
^sep()
|
|
Anuluj <small>esc</small>,exit 1
|
|
EOF
|
|
|
|
jgmenu --config-file=${CONFIG_FILE} --csv-file=${MENU_ITEMS} 2>/dev/null
|
|
}
|
|
|
|
screenshot() {
|
|
CONFIG_FILE=$(mktemp)
|
|
MENU_ITEMS=$(mktemp)
|
|
trap "rm -f ${CONFIG_FILE} ${MENU_ITEMS}" EXIT
|
|
|
|
#Lokalne zmienne;
|
|
JGWIDTH="340"
|
|
MENU_PADDING_TOP=213
|
|
MENU_HALIGN="center"
|
|
MENU_VALIGN="center"
|
|
TABS="280"
|
|
ITEM_HEIGHT="25"
|
|
FONT="Noto Sans Medium 10"
|
|
MENU_RADIUS=${RADIUS:-0}
|
|
|
|
IMG="$(xdg-user-dir PICTURES)/Mabox_%Y-%m-%d-%H:%M:%s.png"
|
|
VIEW="'viewnior $IMG'"
|
|
|
|
THUMB="$(DISPLAY=:0 scrot -t 340x213 -o /tmp/jgscrot.png -e 'echo $m')"
|
|
|
|
mkconfigfile
|
|
|
|
cat <<EOF > ${MENU_ITEMS}
|
|
@icon,,0,0,340,100,4,left,top,,,$THUMB
|
|
^sep(Zrzuty ekranu)
|
|
Pełny ekran,^root(full)
|
|
Aktywne okno,^root(window)
|
|
Aktywne okno (bez dekoracji),^root(borderless)
|
|
Zaznaczony obszar lub okno,scrot -s $IMG -e $VIEW
|
|
Multimonitor, scrot -m $IMG -e $VIEW
|
|
^sep()
|
|
Anuluj <small>esc</small>,exit 1
|
|
^tag(full)
|
|
^sep(Pełny ekran )
|
|
Teraz,scrot $IMG -e $VIEW
|
|
Za 5 sekund,scrot -d 5 $IMG -e $VIEW
|
|
Za 10 sekund,scrot -d 10 $IMG -e $VIEW
|
|
wróć,^back()
|
|
^tag(window)
|
|
^sep(Aktywne Okno )
|
|
Teraz,scrot -d 1 -u -b $IMG -e $VIEW
|
|
Za 5 sekund,scrot -d 5 -u -b $IMG -e $VIEW
|
|
Za 10 sekund,scrot -d 10 -u -b $IMG -e $VIEW
|
|
wróć,^back()
|
|
^tag(borderless)
|
|
^sep(Aktywne Okno - bez dekoracji)
|
|
Teraz,scrot -d 1 -u $IMG -e $VIEW
|
|
Za 5 sekund,scrot -d 5 -u $IMG -e $VIEW
|
|
Za 10 sekund,scrot -d 10 -u $IMG -e $VIEW
|
|
wróć,^back()
|
|
EOF
|
|
jgmenu --config-file=${CONFIG_FILE} --csv-file=${MENU_ITEMS} 2>/dev/null
|
|
}
|
|
|
|
|
|
panels() {
|
|
CONFIG_FILE=$(mktemp)
|
|
MENU_ITEMS=$(mktemp)
|
|
trap "rm -f ${CONFIG_FILE} ${MENU_ITEMS}" EXIT
|
|
|
|
#Lokalne zmienne;
|
|
JGWIDTH="300"
|
|
MENU_HALIGN="center"
|
|
MENU_VALIGN="center"
|
|
MENU_HEIGHT_MIN="210"
|
|
#MENU_HEIGHT_MAX="210"
|
|
TABS="280"
|
|
ITEM_HEIGHT="50"
|
|
FONT="Noto Sans Medium 12"
|
|
COLUMNS="1"
|
|
|
|
mkconfigfile
|
|
|
|
cat <<EOF > ${MENU_ITEMS}
|
|
@icon,,10,20,48,48,4,left,top,,,/usr/share/icons/hicolor/48x48/apps/mbcc.png
|
|
@text,,70,10,220,20,4,left,top,#EEEEEE,#111111,$OSNAME $OSVERSION <sup> $OSCODE</sup>
|
|
@text,,70,30,240,20,4,left,top,#666666,#444444,<small>$USER@$HOSTNAME</small>
|
|
@text,,70,50,200,20,4,left,top,#666666,#444444,<i>Panele dla Maboxa</i>
|
|
|
|
Szybka nawigacja,mb-jgtools places
|
|
System panel,mb-jgtools right
|
|
Menu główne,mb-jgtools main
|
|
Zrzuty ekranu,mb-jgtools screenshot
|
|
Wylogowanie,mb-jgtools mblogout
|
|
EOF
|
|
jgmenu --config-file=${CONFIG_FILE} --csv-file=${MENU_ITEMS} 2>/dev/null
|
|
}
|
|
|
|
#--------------------------------------------------------------------+
|
|
#Color picker, usage: printf $BLD$CUR$RED$BBLU'Hello World!'$DEF |
|
|
#-------------------------+--------------------------------+---------+
|
|
# Text color | Background color | |
|
|
#-----------+-------------+--------------+-----------------+ |
|
|
# Base color|Lighter shade| Base color | Lighter shade | |
|
|
#-----------+-------------+--------------+-----------------+ |
|
|
BLK='\e[30m'; blk='\e[90m'; BBLK='\e[40m'; bblk='\e[100m' #| Black |
|
|
RED='\e[31m'; red='\e[91m'; BRED='\e[41m'; bred='\e[101m' #| Red |
|
|
GRN='\e[32m'; grn='\e[92m'; BGRN='\e[42m'; bgrn='\e[102m' #| Green |
|
|
YLW='\e[33m'; ylw='\e[93m'; BYLW='\e[43m'; bylw='\e[103m' #| Yellow |
|
|
BLU='\e[34m'; blu='\e[94m'; BBLU='\e[44m'; bblu='\e[104m' #| Blue |
|
|
MGN='\e[35m'; mgn='\e[95m'; BMGN='\e[45m'; bmgn='\e[105m' #| Magenta |
|
|
CYN='\e[36m'; cyn='\e[96m'; BCYN='\e[46m'; bcyn='\e[106m' #| Cyan |
|
|
WHT='\e[37m'; wht='\e[97m'; BWHT='\e[47m'; bwht='\e[107m' #| White |
|
|
#----------------------------------------------------------+---------+
|
|
# Effects |
|
|
#--------------------------------------------------------------------+
|
|
DEF='\e[0m' #Default color and effects |
|
|
BLD='\e[1m' #Bold\brighter |
|
|
DIM='\e[2m' #Dim\darker |
|
|
CUR='\e[3m' #Italic font |
|
|
UND='\e[4m' #Underline |
|
|
INV='\e[7m' #Inverted |
|
|
COF='\e[?25l' #Cursor Off |
|
|
CON='\e[?25h' #Cursor On |
|
|
#--------------------------------------------------------------------+
|
|
|
|
case "$1" in
|
|
main) main "$2";;
|
|
right) right;;
|
|
mblogout) mblogout;;
|
|
places) places;;
|
|
screenshot) screenshot;;
|
|
panels) panels;;
|
|
*)
|
|
echo -e "
|
|
${GRN}Kolekcja narzędzi dla Mabox-a stworzonych z pomocą Jgmenu
|
|
|
|
Użycie:
|
|
${DEF} $(basename "$0")${YLW} [${RED} OPCJA${YLW} ]
|
|
|
|
${GRN} Opcje:
|
|
|
|
${YLW} >${RED} main ${YLW} -${DEF} main menu - replaces OB menu
|
|
${YLW} >${RED} panels ${YLW} -${DEF} all panel access
|
|
${YLW} >${RED} right ${YLW} -${DEF} run right panel
|
|
${YLW} >${RED} places ${YLW} -${DEF} places menu
|
|
${YLW} >${RED} mblogout ${YLW} -${DEF} run logout script
|
|
${YLW} >${RED} screenshot ${YLW} -${DEF} run screenshot script
|
|
" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
exit 0
|