mb-jgtools/bin/mb-jgtools
2020-02-23 00:51:41 +01:00

507 lines
17 KiB
Bash
Executable File

#!/bin/bash
. $HOME/.config/mabox/mabox.conf
jgmenu_theme=${jgmenu_theme:-obtheme}
jgmenu_use_icons=${jgmenu_use_icons:-true}
case $jgmenu_theme in
default)
export color_norm_fg="#FFFFFF "
;;
obtheme)
export color_title_fg="#FFFFFF "
ob_file=$HOME/.config/openbox/rc.xml
[[ -f $ob_file ]] && wm_theme=$(awk '/<theme>/ {while (getline n) {if (match(n, /<name>/)){l=n; exit}}} END {split(l, a, "[<>]"); print a[3]}' "$ob_file")
while read -r a b c
do
[[ -n "$a" && "$a" != [[:blank:]#]* ]] && export "$a$b$c"
done < $HOME/.config/mabox/jgobthemes/$wm_theme.colorrc
;;
*)
export color_norm_fg="#FFFFFF "
;;
esac
#echo "BG$color_menu_bg"
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
}
JGWIDTH="280"
WEBBROWSER="exo-open --launch WebBrowser"
[ $(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 = ${item_radius:-2}
item_border = ${item_border:-0}
arrow_string = ${ARROW_STRING:-⮞}
columns = ${COLUMNS:-1}
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_title_fg = ${color_title_fg:-#4D4D4D 100}
color_title_border = ${color_title_border:-#169f6f 100}
color_title_bg = ${color_title_bg:-#262626 100}
color_scroll_ind = ${COLOR_SCROLL_IND:-#504e65 100}
sep_markup = weight="bold" foreground="${color_title_fg% *}"
font = ${font:-Noto Sans Medium 9}
icon_size = ${ICON_SIZE:-0}
icon_theme = ${jgmenu_icon_theme:-Numix-Square}
EOF
unset font
}
#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="left"
ARROW_STRING=" ⮜ "
ICON_SIZE="18"
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,${color_title_fg% *},#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,system-upgrade
Aktualizacja systemu (cli),^term(sudo pacman -Syyu),openterm
Menadżer pakietów - Pamac,pamac-manager,pamac
Odnawianie kluczy,^term(sudo pacman -Sy archlinux-keyring manjaro-keyring mabox-keyring),keysync
Ranking mirrorów,^root(mirrory),download
^sep(Ustawienia)
Centrum Sterowania Mabox,mcc,distributor-logo-mabox
System i sprzęt,^root(system),audiocard
Wygląd i zachowanie,^root(wyglad),preferences-color
^sep(Pomoc)
Skróty klawiszowe,mb-kb --gui &>/dev/null,key_bindings
Zasoby online,^root(weblinks),web-browser
^sep(Inne)
Zrzut ekranu,mb-jgtools screenshot,emblem-photos
. $HOME/.config/mabox/right-append.csv
. $HOME/.config/mabox/exit.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,distributor-logo-linux
Konta użytkowników,manjaro-settings-manager -m msm_users,system-config-users
Data i Czas,manjaro-settings-manager -m msm_timedate,system-config-date
Ustawienia klawiatury,manjaro-settings-manager -m msm_keyboard,preferences-desktop-keyboard
Konfiguracja sprzętowa,manjaro-settings-manager -m msm_mhwd,preferences-desktop-peripherals-directory
^sep()
 wróć,^back()
^tag(mirrory)
Szybko,^term(sudo pacman-mirrors -f5)
Wszystkie,^term(sudo pacman-mirrors -i -c all)
Najbliższe (wg GEOIP),^term(sudo pacman-mirrors -i --geoip)
^sep()
 wróć,^back()
^tag(wyglad)
^sep(Wygląd i zachowanie)
Wystrój i ikony,lxappearance,preferences-desktop-theme
Wybór tapety,nitrogen,nitrogen
Menadżer konfiguracji OpenBox,obconf,obconf
Konfiguracja powiadomień,xfce4-notifyd-config,xfce4-notifyd
Preferowane aplikacje,exo-preferred-applications,preferences-desktop-default-applications
Ustawienia Menedżera logowania,lightdm-gtk-greeter-settings-pkexec,lightdm-gtk-greeter-settings
Ustawienia zasilania,xfce4-power-manager-settings,xfce4-power-manager-settings
^sep(Elementy pulpitu Mabox)
Conky,^pipe(jgmenu_run ob --cmd=mabox-conky-pipemenu),desktop-effects
Panele Tint2,^pipe(jgmenu_run ob --cmd=mabox-tint2-pipemenu),tint2conf
Kompozytor,^pipe(jgmenu_run ob --cmd='mabox-compositor' --tag='Kompo'),compton
^sep(Predefiniowane konfiguracje pulpitu)
Menadżer schematów,mb-obthemes,preferences-desktop-theme
^sep()
 wróć,^back()
^tag(weblinks)
^sep(Zasoby online)
^sep(Mabox)
Mabox - pierwsze kroki,exo-open --launch WebBrowser https://pl.maboxlinux.org/przewodnik-uzytkownika/,distributor-logo-mabox
Forum Mabox,exo-open --launch WebBrowser https://forum.maboxlinux.org/,distributor-logo-mabox
^sep(Manjaro)
Home site,exo-open --launch WebBrowser https://manjaro.org,distributor-logo-manjaro
Wiki,exo-open --launch WebBrowser https://wiki.manjaro.org,distributor-logo-manjaro
Forum,exo-open --launch WebBrowser https://forum.manjaro.org,distributor-logo-manjaro
Manjaro PL,exo-open --launch WebBrowser https://manjaro.pl,distributor-logo-manjaro
Forum Manjaro PL,exo-open --launch WebBrowser https://forum.manjaro.pl,distributor-logo-manjaro
^sep(ArchLinux)
ArchWiki,exo-open --launch WebBrowser https://wiki.archlinux.org/,distributor-logo-archlinux
^sep(Openbox)
OpenBox,exo-open --launch WebBrowser http://openbox.org/wiki/Help:Contents,openbox
OpenBox ArchWiki,exo-open --launch WebBrowser https://wiki.archlinux.org/index.php/Openbox,openbox
^sep(Dokumentacja Tint2)
Tint2 ArchWiki,exo-open --launch WebBrowser https://wiki.archlinux.org/index.php/Tint2,tint2
^sep(Dokumentacja Conky)
Conky Doc,exo-open --launch WebBrowser http://conky.sourceforge.net/documentation.html,conky
Conky Github,exo-open --launch WebBrowser https://github.com/brndnmtthws/conky/wiki,conky
Conky ArchWiki,exo-open --launch WebBrowser https://wiki.archlinux.org/index.php/Conky,conky
^sep()
 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
case $LANG in
pl*)
QUICK_NAV="Szybka nawigacja"
HOME_DIR="Katalog Domowy"
ROOTDIR="Katalog główny"
;;
*)
QUICK_NAV="Quick Navigation"
HOME_DIR="Home Directory"
ROOTDIR="Main Directory"
;;
esac
MENU_HEIGHT_MIN=$(xdpyinfo | awk '/^ +dimensions/ {print $2}' | cut -d 'x' -f2)
JGWIDTH=250
ITEM_HEIGHT=20
MENU_PADDING_TOP=70
mkconfigfile
cat <<EOF > ${MENU_ITEMS}
@icon,,10,10,48,48,4,left,top,,,/usr/share/icons/hicolor/48x48/apps/mbcc.png
@icon,,40,$(expr $MENU_HEIGHT_MIN - 96),143,96,4,left,top,,,$HOME/.config/mabox/tux.svg
@text,,70,10,200,20,4,left,top,${color_title_fg% *},#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($QUICK_NAV)
 $ROOTDIR,^pipe(jgbrowser /)
 $HOME_DIR,^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))
$(gtkbookmarks)
. $HOME/.config/mabox/vboxes.csv
. $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="250"
ITEM_HEIGHT="30"
ICON_SIZE="24"
font="Noto Sans Medium 11"
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>
. $HOME/.config/mabox/exit.csv
^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
case $LANG in
pl*)
SCRNSHOTS="Zrzuty ekranu"
FULLSCR="Pełny ekran"
ACTIVE_WIN="Aktywne okno"
ACTIVE_WIN_NO_DECOR="Aktywne okno (bez dekoracji)"
SELECTED="Zaznaczony obszar lub okno"
NOW="Teraz"
SEC5="Za 5 sekund"
SEC10="Za 10 sekund"
BACK="wróć"
CANCEL="Anuluj"
;;
*)
SCRNSHOTS="Screenshot tool"
FULLSCR="Full screen"
ACTIVE_WIN="Active window"
ACTIVE_WIN_NO_DECOR="Active window (no decorations)"
SELECTED="Selected Area or Window"
NOW="Now"
SEC5="In 5 seconds"
SEC10="In 10 seconds"
BACK="back"
CANCEL="Cancel"
;;
esac
#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($SCRNSHOTS)
 $FULLSCR,^root(full)
 $ACTIVE_WIN,^root(window)
 $ACTIVE_WIN_NO_DECOR,^root(borderless)
 $SELECTED,scrot -s $IMG -e $VIEW
#  Multimonitor, scrot -m $IMG -e $VIEW
^sep()
 $CANCEL <small>esc</small>,exit 1
^tag(full)
^sep($FULLSCR )
 $NOW,scrot $IMG -e $VIEW
 $SEC5,scrot -d 5 $IMG -e $VIEW
 $SEC10,scrot -d 10 $IMG -e $VIEW
^sep()
 $BACK,^back()
^tag(window)
^sep($ACTIVE_WIN )
 $NOW,scrot -d 1 -u -b $IMG -e $VIEW
 $SEC5,scrot -d 5 -u -b $IMG -e $VIEW
 $SEC10,scrot -d 10 -u -b $IMG -e $VIEW
^sep()
 $BACK,^back()
^tag(borderless)
^sep($ACTIVE_WIN_NO_DECOR)
 $NOW,scrot -d 1 -u $IMG -e $VIEW
 $SEC5,scrot -d 5 -u $IMG -e $VIEW
 $SEC10,scrot -d 10 -u $IMG -e $VIEW
^sep()
 $BACK,^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 10"
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