#!/bin/bash # # conkyctl - script to handle various Conky operations in Mabox CONKYDIR="$HOME"/.config/conky BASECONKY="$CONKYDIR/sysinfo_mbcolor.conkyrc" SESSIONFILE="$CONKYDIR/conky-sessionfile" COLORIZERDIR="$HOME/.config/colorizer" CONKYTHEMEDIR="$COLORIZERDIR/conky/themes" if [ ! -d "$CONKYTHEMEDIR" ];then mkdir -p "$CONKYTHEMEDIR" rsync -a /usr/share/mabox-colorizer/themes/conky/* ${CONKYTHEMEDIR}/ fi update_session () { sleep 1 :> "${SESSIONFILE}" while read -r pid b c confpath do echo "$b $c ${confpath} & sleep .5" >> ${SESSIONFILE} done < <(pgrep -u $USER -af "conky -c ") # Remove duplicates awk -i inplace '!seen[$0]++' ${SESSIONFILE} } transparent_all () { sd "own_window_transparent.*$" "own_window_transparent = ${1}," ${CONKYDIR}/*mbcolor.conkyrc } transparent () { sd "own_window_transparent.*$" "own_window_transparent = ${1}," ${2} } win_bgcolor_all () { sd "own_window_colour .*=.*$" "own_window_colour = '${1}'," ${CONKYDIR}/*mbcolor.conkyrc sd "own_window_transparent.*$" "own_window_transparent = false," ${CONKYDIR}/*mbcolor.conkyrc sd "own_window_transparent.*$" "own_window_transparent = true," ${CONKYDIR}/logo_mbcolor.conkyrc } win_bgcolor () { sd "own_window_colour .*=.*$" "own_window_colour = '${1}'," ${2} sd "own_window_transparent.*$" "own_window_transparent = false," ${2} #notify-send.sh "${2}" aaa } draw_borders_all () { sd "draw_borders.*$" "draw_borders = ${1}," ${CONKYDIR}/*mbcolor.conkyrc sd "draw_borders.*$" "draw_borders = false," ${CONKYDIR}/logo_mbcolor.conkyrc } draw_borders () { sd "draw_borders.*$" "draw_borders = ${1}," ${2} } stippled_borders_all () { sd "stippled_borders.*$" "stippled_borders = ${1}," ${CONKYDIR}/*mbcolor.conkyrc sd "draw_borders.*$" "draw_borders = true," ${CONKYDIR}/*mbcolor.conkyrc sd "draw_borders.*$" "draw_borders = false," ${CONKYDIR}/logo_mbcolor.conkyrc } stippled_borders () { sd "stippled_borders.*$" "stippled_borders = ${1}," ${2} sd "draw_borders.*$" "draw_borders = true," ${2} } default_color_all () { sd "default_color .*=.*$" "default_color = '${1}'," ${CONKYDIR}/*mbcolor.conkyrc } color0_all () { sd "color0 .*=.*$" "color0 = '${1}'," ${CONKYDIR}/*mbcolor.conkyrc } color1_all () { sd "color1 .*=.*$" "color1 = '${1}'," ${CONKYDIR}/*mbcolor.conkyrc } color2_all () { sd "color2 .*=.*$" "color2 = '${1}'," ${CONKYDIR}/*mbcolor.conkyrc } default_color () { sd "default_color .*=.*$" "default_color = '${1}'," ${2} } color0 () { sd "color0 .*=.*$" "color0 = '${1}'," ${2} } color1 () { sd "color1 .*=.*$" "color1 = '${1}'," ${2} } color2 () { sd "color2 .*=.*$" "color2 = '${1}'," ${2} } basefont_inc_all () { read FONTDEF <<< "$(grep "font .*=.*,$" ${BASECONKY} | cut -d'=' -f2,3 |cut -d"'" -f2)" FONT=${FONTDEF%:*} FONTSIZE=${FONTDEF#*=} ((FONTSIZE++)) sd "font .*=.*,$" "font = '${FONT}:size=${FONTSIZE}'," ${CONKYDIR}/*mbcolor.conkyrc } basefont_dec_all () { read FONTDEF <<< "$(grep "font .*=.*,$" ${BASECONKY} | cut -d'=' -f2,3 |cut -d"'" -f2)" FONT=${FONTDEF%:*} FONTSIZE=${FONTDEF#*=} ((FONTSIZE--)) sd "font .*=.*,$" "font = '${FONT}:size=${FONTSIZE}'," ${CONKYDIR}/*mbcolor.conkyrc } basefont_inc () { read FONTDEF <<< "$(grep "font .*=.*,$" ${1} | cut -d'=' -f2,3 |cut -d"'" -f2)" FONT=${FONTDEF%:*} FONTSIZE=${FONTDEF#*=} ((FONTSIZE++)) sd "font .*=.*,$" "font = '${FONT}:size=${FONTSIZE}'," ${1} } basefont_dec () { read FONTDEF <<< "$(grep "font .*=.*,$" ${1} | cut -d'=' -f2,3 |cut -d"'" -f2)" FONT=${FONTDEF%:*} FONTSIZE=${FONTDEF#*=} ((FONTSIZE--)) sd "font .*=.*,$" "font = '${FONT}:size=${FONTSIZE}'," ${1} } basefont_family () { read FONTDEF <<< "$(grep "font .*=.*,$" ${1} | cut -d'=' -f2,3 |cut -d"'" -f2)" FONT=${FONTDEF%:*} FONTSIZE=${FONTDEF#*=} sd "font .*=.*,$" "font = '${2}:size=${FONTSIZE}'," ${1} } basefont_family_all () { read FONTDEF <<< "$(grep "font .*=.*,$" ${BASECONKY} | cut -d'=' -f2,3 |cut -d"'" -f2)" FONT=${FONTDEF%:*} FONTSIZE=${FONTDEF#*=} sd "font .*=.*,$" "font = '${1}:size=${FONTSIZE}'," ${CONKYDIR}/*mbcolor.conkyrc } basefont_size () { read FONTDEF <<< "$(grep "font .*=.*,$" ${1} | cut -d'=' -f2,3 |cut -d"'" -f2)" FONT=${FONTDEF%:*} FONTSIZE=${FONTDEF#*=} sd "font .*=.*,$" "font = '${FONT}:size=${2}'," ${1} } basefont_size_all () { read FONTDEF <<< "$(grep "font .*=.*,$" ${BASECONKY} | cut -d'=' -f2,3 |cut -d"'" -f2)" FONT=${FONTDEF%:*} FONTSIZE=${FONTDEF#*=} sd "font .*=.*,$" "font = '${FONT}:size=${1}'," ${CONKYDIR}/*mbcolor.conkyrc } shades_all () { case "$1" in shadow) sd "draw_shades .*=.*,$" "draw_shades = true," ${CONKYDIR}/*mbcolor.conkyrc sd "draw_outline .*=.*,$" "draw_outline = false," ${CONKYDIR}/*mbcolor.conkyrc ;; outline) sd "draw_shades .*=.*,$" "draw_shades = false," ${CONKYDIR}/*mbcolor.conkyrc sd "draw_outline .*=.*,$" "draw_outline = true," ${CONKYDIR}/*mbcolor.conkyrc ;; *) sd "draw_shades .*=.*,$" "draw_shades = false," ${CONKYDIR}/*mbcolor.conkyrc sd "draw_outline .*=.*,$" "draw_outline = false," ${CONKYDIR}/*mbcolor.conkyrc ;; esac } shades () { case "$1" in shadow) sd "draw_shades .*=.*,$" "draw_shades = true," ${2} sd "draw_outline .*=.*,$" "draw_outline = false," ${2} ;; outline) sd "draw_shades .*=.*,$" "draw_shades = false," ${2} sd "draw_outline .*=.*,$" "draw_outline = true," ${2} ;; *) sd "draw_shades .*=.*,$" "draw_shades = false," ${2} sd "draw_outline .*=.*,$" "draw_outline = false," ${2} ;; esac } logosize () { sd "minimum_height.*$" "minimum_height = ${1}," ${CONKYDIR}/logo_mbcolor.conkyrc sd "minimum_width.*$" "minimum_width = ${1}," ${CONKYDIR}/logo_mbcolor.conkyrc sd "\{image ~.*$" "{image ~/.config/conky/images/mabox_3d.png -s ${1}x${1}}" ${CONKYDIR}/logo_mbcolor.conkyrc } pos () { def_x=${conky_gap_x:-30} def_y=${conky_gap_y:-60} sd "alignment .*=.*,$" "alignment = '${1}'," ${2} ### jak po środku to wyzerować gaps case "$1" in top_left|top_right|bottom_left|bottom_right) sd "gap_x .*=.*," "gap_x = ${def_x}," ${2} sd "gap_y .*=.*," "gap_y = ${def_y}," ${2} ;; top_middle|bottom_middle) sd "gap_x .*=.*," "gap_x = 0," ${2} sd "gap_y .*=.*," "gap_y = ${def_y}," ${2} ;; middle_left|middle_right) sd "gap_x .*=.*," "gap_x = ${def_x}," ${2} sd "gap_y .*=.*," "gap_y = 0," ${2} ;; middle_middle) sd "gap_x .*=.*," "gap_x = 0," ${2} sd "gap_y .*=.*," "gap_y = 0," ${2} ;; esac } gap_x () { sd "gap_x .*=.*," "gap_x = ${1}," ${2} } gap_y () { sd "gap_y .*=.*," "gap_y = ${1}," ${2} } setpos () { filename=${1##*/} name=${filename%%_mb*} title=${name//_/ } case "$LANG" in pl*) SUMM="Nowa pozycja dla Conky: ${title^}" BODY="\nNarysuj mały prostokąt na ekranie aby wyznaczyć nową pozycję...\n (ESC lub prawy klik anuluje" ABORTED_SUMM="Anulowano!" ABORTED_BODY="\n...operacja anulowana" ;; es*) SUMM="Mark new position for ${title^} Conky" BODY="\nDraw small rectangle to mark new position...\n (ESC or right click to abort)" ABORTED_SUMM="Aborted!" ABORTED_BODY="\n... operation aborted!" ;; *) SUMM="Mark new position for ${title^} Conky" BODY="\nDraw small rectangle to mark new position...\n (ESC or right click to abort)" ABORTED_SUMM="Aborted!" ABORTED_BODY="\n... operation aborted!" ;; esac wmctrl -k on notify-send.sh -i mbcc --replace-file=/tmp/conkyctlfile "${SUMM}" "${BODY}" read -r X Y < <(slop -t 0 -l -b 3 --color=0.3,0.4,0.6,0.4 -f "%x %y") if [ -z "$X" ] then notify-send.sh -i mbcc --replace-file=/tmp/conkyctlfile "${ABORTED_SUMM}" "${ABORTED_BODY}" else pos top_left ${1} # improve conky margin calculation here: gap = border_width + border_inner_margin + border_outer_margin ((X=X+17)) ((Y=Y+17)) gap_x ${X} ${1} gap_y ${Y} ${1} case "$LANG" in pl*) THNX_SUMM="Dziękuję!" THNX_BODY="Zapisano nową pozycję ${title^} \n\tX: $X\n\tY: $Y" ;; es*) THNX_SUMM="Thank you!" THNX_BODY="New position of ${title^} saved! \n\tX: $X\n\tY: $Y" ;; *) THNX_SUMM="Thank you!" THNX_BODY="New position of ${title^} saved! \n\tX: $X\n\tY: $Y" ;; esac notify-send.sh -i mbcc --replace-file=/tmp/conkyctlfile "${THNX_SUMM}" "${THNX_BODY}" #wmctrl -k off fi } startone () { conky -c "${1}" & update_session } startall () { for i in "$CONKYDIR"/*_mbcolor*; do if pgrep -u $USER -af "conky .*${i}" >/dev/null; then : else conky -c "${i}" & fi done update_session } kill () { pkill -f "conky .*${1}" update_session } restartone () { kill ${1} startone ${1} } toggleone () { if pgrep -u $USER -af "conky .*${1}" >/dev/null; then kill "${1}" else CCFG=$(ls ~/.config/conky/${1}*.conkyrc) #notify-send.sh "Conky" "$CCFG" if test -f "$CCFG"; then startone "$CCFG" fi #conky -c "${i}" & fi } makemoveableall () { wmctrl -k on sd "own_window_type.*$" "own_window_type = 'normal'," ${CONKYDIR}/*mbcolor.conkyrc case "$LANG" in pl*) TITLE="Przenieś Conky dokąd chcesz" DESC="Możesz teraz przesuwać wszystkie Conky.\nPrzytrzymaj wciśnięty klawisz Alt i przesuń każde Conky gdzie chcesz\n " VB="To prawdopodobnie nie zadziała w środowiskach wirtualnych" CANCEL="Anuluj" SAVE="Zapisz nowe pozycje" ;; es*) TITLE="Move Conkies where you want" DESC="Move Conkies to desired locations now...\n Hold Alt and drag Conkies one by one.\n" VB="It will probably not work in Virtual environments" CANCEL="Cancel" SAVE="Save new positions" ;; *) TITLE="Move Conkies where you want" DESC="Move Conkies to desired locations now...\n Hold Alt and drag Conkies one by one.\n" VB="It will probably not work in Virtual environments" CANCEL="Cancel" SAVE="Save new positions" ;; esac TYPE=$(cat /sys/class/dmi/id/chassis_type) if [ "$TYPE" != "1" ];then VB="" fi cmd=( yad --center --borders=20 --title="$TITLE" --text="$DESC\n\n${VB}" --button="$CANCEL":1 --button="$SAVE":0 ) "${cmd[@]}" exval=$? #notify-send.sh -t 10000 "Exval" "${exval}" case $exval in 1) makedesktoptypeall;; 0) saveposall;; 252) makedesktoptypeall;; esac } saveposall () { # save new positions here while read -r WIN_ID b c X Y rest do conffile=$(xprop -id $WIN_ID |grep WM_COMMAND |cut -d'"' -f6) if [[ "$conffile" = *"mbcolor"* ]];then pos top_left ${conffile} #notify-send.sh -t 10000 "${X} ${Y}" "${conffile}" # improve conky margin calculation here: gap = border_width + border_inner_margin + border_outer_margin ((X=X+17)) ((Y=Y+17)) gap_x ${X} ${conffile} gap_y ${Y} ${conffile} fi done < <(wmctrl -lpG | grep '1 0 ') makedesktoptypeall } makedesktoptypeall () { sd "own_window_type.*$" "own_window_type = 'desktop'," ${CONKYDIR}/*mbcolor.conkyrc } resetcolorsall () { transparent_all false win_bgcolor_all '#142c2c' #draw_borders_all true #stippled_borders_all 0 default_color_all '#309552' color0_all '#accdc7' color1_all '#61c4bc' color2_all '#E8CB2D' } resetcolorsone () { transparent false "${1}" win_bgcolor '#142c2c' "${1}" default_color '#309552' "${1}" color0 '#accdc7' "${1}" color1 '#61c4bc' "${1}" color2 '#E8CB2D' "${1}" } languages () { case "$LANG" in pl*) UNSUPPORTED="częściowo wspierane!!!" OLD_SYNTAX_DETECTED=" stara składnia! wykryta..." CONVERT_OLD="Czy spróbować skonwertować?" CONVERT_OLD_TRY="Tak, spróbuj konwertować" POSITION="Pozycja" MAKEMOVEABLE="Ustaw wszystkie (poprzez przeciąganie)..." MARKNEWPOS="Nowa pozycja (zaznacz na ekranie)..." ALIGNMENT="Wyrównanie" TOPLEFT="Góra po lewej" TOP="Góra" TOPRIGHT="Góra po prawej" LEFT="Lewa" CENTER="Po środku" RIGHT="Prawa" BOTTOMLEFT="Dół po lewej" BOTTOM="Dół" BOTTOMRIGHT="Dół po prawej" HORIZONTAL_GAP="Odstęp poziomy" VERTICAL_GAP="Odstęp pionowy" COLORS="Kolory" DEFCOLOR="Domyślny kolor (tekst i ramka)" COLOR_0="Kolor 0 (tekst2)" COLOR_1="Kolor 1 (większy tekst)" COLOR_2="Kolor 2 (pasek/graf)" BACKGROUND="Kolor tła" COLORSCHEME="Motywy kolorów" SYSTEM_SCHEMES="Systemowe" YOUR_SCHEMES="Moje motywy" OPENTHEMEDIR="Otwórz katalog motywów" APPLY_THEME="Zastosuj motyw" APPLY_TO_ONE="Zastosuj do " APPLY_TO_ALL="Zastosuj do wszystkich" NEWTHEME="Nowy motyw kolorów..." SAVENEWTHEME="utwórz nowy motyw..." SAVE_CURRSCHEME="Zapisz aktualną kolorystykę jako..." MONOCHROMATIC="Monochromatyczny" CHOOSE_AND_PICK="Wybierz wariant i pobierz kolor..." LIGHTBG="Jasne tło" DARKBG="Ciemne tło" RESETCOLORS="Przywróć domyślne kolory" GENFROMWP="Generuj z kolorów tapety" TRANSPARENT="Przezroczyste tło?" YES="Tak" NO="Nie" FONTS="Czcionka" SELECTFONT="Wybierz czcionkę..." FONTFAMILY_LBL="czcionka" _EDIT_FAVFONTS="Edytuj ulubione czcionki" FONTSIZE_LBL="rozmiar czcionki" INCREASE="Powiększ do" DECREASE="Pomniejsz do" OLINE="Obrys" SHADOW="Cień" DRAW="Rysuj" BORDERS="Obramowanie" EDIT="Edytuj plik Conky" RELOAD="Przeładuj" KILL="Zabij" LOGOSIZE="Rozmiar logo" SMALL="Małe" NORMAL="Normalne" BIG="Duże" STIPPLED_BORDERS="Nakrapiane" SOLID_LINE="linia ciągła" NOT_WORKING="Nie działa? Naprawmy to :)" MOUNTPOINTS="Dyski (punkty montowania)" ;; es*) UNSUPPORTED="partially supported!!!" OLD_SYNTAX_DETECTED=" old syntax!!! detected..." CONVERT_OLD="Try to convert to new syntax?" CONVERT_OLD_TRY="Yes, try to convert" POSITION="Position" MAKEMOVEABLE="Make moveable all..." MARKNEWPOS="New position (mark on the screen)..." ALIGNMENT="Alignment" TOPLEFT="TopLeft" TOP="Top" TOPRIGHT="TopRight" LEFT="Left" CENTER="Center" RIGHT="Right" BOTTOMLEFT="BottomLeft" BOTTOM="Bottom" BOTTOMRIGHT="BottomRight" HORIZONTAL_GAP="Horizontal Gap" VERTICAL_GAP="Vertical Gap" COLORS="Colors" DEFCOLOR="Default color (text and border)" COLOR_0="Color 0 (text2)" COLOR_1="Color 1 (bigger text)" COLOR_2="Color 2 (bars/graphs)" BACKGROUND="Background color" COLORSCHEME="Color schemes" SYSTEM_SCHEMES="System colorschemes" YOUR_SCHEMES="My colorschemes" OPENTHEMEDIR="Open schemes dir" APPLY_THEME="Apply scheme..." APPLY_TO_ONE="Apply to " APPLY_TO_ALL="Apply to All" NEWTHEME="New Color scheme..." SAVENEWTHEME="from current colors..." SAVE_CURRSCHEME="Save current colors as..." MONOCHROMATIC="Monochromatic" CHOOSE_AND_PICK="Choose variant and pick color..." LIGHTBG="Light Background" DARKBG="Dark Background" RESETCOLORS="Restore default colors" GENFROMWP="Generate from wallpaper" TRANSPARENT="Transparent background?" YES="Yes" NO="No" FONTS="Font" SELECTFONT="Select Font..." FONTFAMILY_LBL="font family" _EDIT_FAVFONTS="Edit favorite fonts list" FONTSIZE_LBL="font size" INCREASE="Increase to" DECREASE="Decrease to" OLINE="Outline" SHADOW="Shadow" DRAW="Draw" BORDERS="Borders" EDIT="Edit Conky file" RELOAD="Reload" KILL="Kill" LOGOSIZE="Logo size" SMALL="Small" NORMAL="Normal" BIG="Big" STIPPLED_BORDERS="Stippled borders" SOLID_LINE="solid line" NOT_WORKING="Not working? Try to fix" MOUNTPOINTS="Discs (mount points)" ;; *) UNSUPPORTED="partially supported!!!" OLD_SYNTAX_DETECTED=" old syntax!!! detected..." CONVERT_OLD="Try to convert to new syntax?" CONVERT_OLD_TRY="Yes, try to convert" POSITION="Position" MAKEMOVEABLE="Make moveable all..." MARKNEWPOS="New position (mark on the screen)..." ALIGNMENT="Alignment" TOPLEFT="TopLeft" TOP="Top" TOPRIGHT="TopRight" LEFT="Left" CENTER="Center" RIGHT="Right" BOTTOMLEFT="BottomLeft" BOTTOM="Bottom" BOTTOMRIGHT="BottomRight" HORIZONTAL_GAP="Horizontal Gap" VERTICAL_GAP="Vertical Gap" COLORS="Colors" DEFCOLOR="Default color (text and border)" COLOR_0="Color 0 (text2)" COLOR_1="Color 1 (bigger text)" COLOR_2="Color 2 (bars/graphs)" BACKGROUND="Background color" COLORSCHEME="Color schemes" SYSTEM_SCHEMES="System colorschemes" YOUR_SCHEMES="My colorschemes" OPENTHEMEDIR="Open schemes dir" APPLY_THEME="Apply scheme..." APPLY_TO_ONE="Apply to " APPLY_TO_ALL="Apply to All" NEWTHEME="New Color scheme..." SAVENEWTHEME="from current colors..." SAVE_CURRSCHEME="Save current colors as..." MONOCHROMATIC="Monochromatic" CHOOSE_AND_PICK="Choose variant and pick color..." LIGHTBG="Light Background" DARKBG="Dark Background" RESETCOLORS="Restore default colors" GENFROMWP="Generate from wallpaper" TRANSPARENT="Transparent background?" YES="Yes" NO="No" FONTS="Font" SELECTFONT="Select Font..." FONTFAMILY_LBL="font family" _EDIT_FAVFONTS="Edit favorite fonts list" FONTSIZE_LBL="font size" INCREASE="Increase to" DECREASE="Decrease to" OLINE="Outline" SHADOW="Shadow" DRAW="Draw" BORDERS="Borders" EDIT="Edit Conky file" RELOAD="Reload" KILL="Kill" LOGOSIZE="Logo size" SMALL="Small" NORMAL="Normal" BIG="Big" STIPPLED_BORDERS="Stippled borders" SOLID_LINE="solid line" NOT_WORKING="Not working? Try to fix" MOUNTPOINTS="Discs (mount points)" ;; esac } single () { unset NOT_SUPPORTED OLD_SYNTAX SYSSCHEMES="/usr/share/mabox-colorizer/colorschemes/conky.csv" USERSCHEMES="$HOME/.config/colorizer/conky/c_userschemes.csv" if [ ! -f "$USERSCHEMES" ]; then mkdir -p "$HOME/.config/colorizer/conky/" echo "WINCLR | CLR | CLR0 | CLR1 | CLR2 |WINTRANS|OUTLINE|SHADES | BORD | STIP |scheme_name" > "$USERSCHEMES" fi ### Wallpaper colors WALLPALDIR="$HOME/.cache/colorizer/palettes" mkdir -p "$WALLPALDIR" read WALLPATH<<< $(grep file "$HOME"/.config/nitrogen/bg-saved.cfg | cut -d'=' -f2) NAME=${WALLPATH////_} if [[ "${NAME}" =~ ^_home_.* ]]; then n=${#HOME} ((n++)) NAME=${NAME:${n}} fi if [ ! -f "$WALLPALDIR/$NAME.clr" ]; then convert ${WALLPATH} -resize 25% -colors 16 -unique-colors txt:- |grep -v '^#'| awk '{print substr($3,1,7)}' |pastel sort-by brightness |pastel format hex > "$WALLPALDIR/$NAME.clr" fi mapfile -t w < "$WALLPALDIR/$NAME.clr" languages filename=${1##*/} name=${filename%%_mb*} title=${name//_/ } grep -q "conky.text" "$1" && : || OLD_SYNTAX="true" # breaks mbclr color picking from contextmenu, leave it as "colorizer-conky -s" for now if [[ "$2" == "s" ]];then me="none none" else me="colorizer-conky -s" fi read POS <<< "$(grep alignment ${1} | cut -d'=' -f2 | cut -d"'" -f2)" read GAPX <<< "$(grep gap_x ${1} | cut -d'=' -f2 | cut -d"," -f1)" read GAPY <<< "$(grep gap_y ${1} | cut -d'=' -f2 | cut -d"," -f1)" read WINTRANS <<< "$(grep own_window_transparent ${1} | cut -d'=' -f2 | cut -d"," -f1)" read FONTDEF <<< "$(grep "font .*=.*,$" ${1} | cut -d'=' -f2,3 |cut -d"'" -f2)" FONT=${FONTDEF%:*} FONTSIZE=${FONTDEF#*=} read WINCLR <<< "$(grep own_window_colour ${1} | cut -d'=' -f2 | cut -d"'" -f2)" [[ $WINCLR =~ ^#.* ]] && : || WINCLR="#${WINCLR}" read CLR <<< "$(grep default_color ${1} | cut -d'=' -f2 | cut -d"'" -f2)" [[ $CLR =~ ^#.* ]] && : || CLR="#${CLR}" read CLR0 <<< "$(grep color0 ${1} | cut -d'=' -f2 | cut -d"'" -f2)" [[ $CLR0 =~ ^#.* ]] && : || CLR0="#${CLR0}" read CLR1 <<< "$(grep color1 ${1} | cut -d'=' -f2 | cut -d"'" -f2)" [[ $CLR1 =~ ^#.* ]] && : || CLR1="#${CLR1}" read CLR2 <<< "$(grep color2 ${1} | cut -d'=' -f2 | cut -d"'" -f2)" [[ $CLR2 =~ ^#.* ]] && : || CLR2="#${CLR2}" read OUTLINE <<< "$(grep draw_outline ${1} | cut -d'=' -f2 | cut -d"," -f1)" read SHADES <<< "$(grep draw_shades ${1} | cut -d'=' -f2 | cut -d"," -f1)" SHADOWS="no" [[ "$OUTLINE" == "true" ]] && SHADOWS="outline" [[ "$SHADES" == "true" ]] && SHADOWS="shadow" read BORD <<< "$(grep draw_borders ${1} | cut -d'=' -f2 | cut -d"," -f1)" read STIP <<< "$(grep stippled_borders ${1} | cut -d'=' -f2 | cut -d"," -f1)" [[ "$WINTRANS" == false ]] && BG="bgcolor='$WINCLR'" || BG="" if [[ "$filename" == *"mbcolor"* ]];then out+=("^sep(Conky: [ ${title^} ])") else NOT_SUPPORTED="true" out+=("^sep(Conky: [ ${title^} ]") out+=("^sep( ${UNSUPPORTED} )") fi if [[ "$OLD_SYNTAX" = "true" ]];then out+=("$OLD_SYNTAX_DETECTED,^checkout(oldsyntax)") out2+=("^tag(oldsyntax)") out2+=("^sep($CONVERT_OLD)") out2+=("\"\"\"$CONVERT_OLD_TRY\"\"\",conkyctl convert_from_old ${1}") #notify-send.sh "Plik" "${1}" else out+=(" $POSITION,^checkout(position)") if [[ "$1" =~ "etwork_mbcolor" ]]; then out+=("$NOT_WORKING,conkyctl netdevice") fi #out+=("^sep($POSITION)") out2+=("^tag(position)") out2+=("^sep($POSITION)") out2+=(" $MARKNEWPOS,conkyctl setpos ${1};$me") #out2+=("^sep()") out2+=("^sep($ALIGNMENT)") out2+=(" $TOPLEFT,conkyctl pos top_left ${1};$me") out2+=(" $TOP,conkyctl pos top_middle ${1};$me") out2+=(" $TOPRIGHT,conkyctl pos top_right ${1};$me") out2+=(" $LEFT,conkyctl pos middle_left ${1};$me") out2+=("$CENTER,conkyctl pos middle_middle ${1};$me") out2+=(" $RIGHT,conkyctl pos middle_right ${1};$me") out2+=(" $BOTTOMLEFT,conkyctl pos bottom_left ${1};$me") out2+=(" $BOTTOM,conkyctl pos bottom_middle ${1};$me") out2+=(" $BOTTOMRIGHT,conkyctl pos bottom_right ${1};$me") if [[ "$NOT_SUPPORTED" != "true" ]];then out2+=("^sep()") out2+=(" $MAKEMOVEABLE,conkyctl makemoveableall") fi if [[ "$1" =~ "logo_mbcolor" ]]; then read LSIZE <<< "$(grep minimum_height ${1} | cut -d'=' -f2 | cut -d"," -f1)" out+=("^sep($LOGOSIZE)") out+=("$LOGOSIZE [ $LSIZE ],^checkout(logosize)") out2+=("^tag(logosize)") out2+=("^sep($LOGOSIZE)") out2+=("$SMALL 64px,conkyctl logosize 64;$me") out2+=("$NORMAL 128px,conkyctl logosize 128;$me") out2+=("$BIG 256px,conkyctl logosize 256;$me") fi if [[ "$1" =~ "quoter" ]]; then case "$LANG" in pl*) FONTSIZE="Rozmiar czcionki" QUOTE_FSIZE="Cytat" AUTHOR_FSIZE="Autor" EDIT_CONF="Edytuj plik konfiguracyjny" RELOAD="Przeładuj" ;; es*) FONTSIZE="Font size" QUOTE_FSIZE="Quote" AUTHOR_FSIZE="Author" EDIT_CONF="Edit conf file" RELOAD="Reload" ;; *) FONTSIZE="Font size" QUOTE_FSIZE="Quote" AUTHOR_FSIZE="Author" EDIT_CONF="Edit conf file" RELOAD="Reload" ;; esac Q_CFG="$HOME/.config/quoter/quoter.cfg" source "$Q_CFG" out+=("^sep($FONTSIZE)") out+=("$QUOTE_FSIZE [ $quote_fontsize ],^checkout(qsize)") out+=("$AUTHOR_FSIZE [ $author_fontsize ],^checkout(asize)") out2+=("^tag(qsize)") out2+=("^sep($QUOTE_FSIZE)") for i in 10 11 12 13 14 15 16 18 20; do out2+=("${i},mb-setvar quote_fontsize=$i $Q_CFG;conkyctl restartone ${1};$me") done out2+=("^tag(asize)") out2+=("^sep($AUTHOR_FSIZE)") for i in 10 11 12 13 14 15 16 18 20; do out2+=("${i},mb-setvar author_fontsize=$i $Q_CFG;conkyctl restartone ${1};$me") done fi out+=("^sep($COLORS)") # COLOR SCHEMES #if [ "$WINTRANS" == false ];then out+=(" $COLORSCHEME,^checkout(regensingle)") out2+=("^tag(regensingle)") out2+=("^sep($MONOCHROMATIC)") out2+=("^sep($CHOOSE_AND_PICK)") out2+=(" $DARKBG...,conkyctl monoone pick dark ${1}") out2+=(" $LIGHTBG...,conkyctl monoone pick light ${1}") out2+=("^sep($GENFROMWP)") out2+=(" $LIGHTBG ,w2theme conkyone light ${1}") out2+=(" $DARKBG ,w2theme conkyone dark ${1}") out2+=("^sep($APPLY_THEME)") out2+=("^sep($SYSTEM_SCHEMES)") n=1 while IFS="|" read -r winclr clr clr0 clr1 clr2 wintrans outline shades bord stip scheme_name do ((n=n+1)) [[ "$wintrans" = true ]] && bga=1 || bga=100 out2+=("$(printf '%-20s' "${scheme_name}") ,conkyctl applyscheme sys $n ${1}") done < <(tail -n +2 "$SYSSCHEMES") out2+=("^sep($YOUR_SCHEMES)") if [[ "$1" =~ "sysinfo_" ]]; then #currcolors="${WINCLR}|${CLR}|${CLR0}|${CLR1}|${CLR2}|" cursettings="${WINCLR}|${CLR}|${CLR0}|${CLR1}|${CLR2}|${WINTRANS}|${OUTLINE}|${SHADES}|${BORD}|${STIP}|" out2+=(" $SAVE_CURRSCHEME,conkyctl savescheme '${cursettings}'" "^sep()") fi n=1 while IFS="|" read -r winclr clr clr0 clr1 clr2 wintrans outline shades bord stip scheme_name do ((n=n+1)) [[ "$wintrans" = true ]] && bga=1 || bga=100 out2+=("$(printf '%-20s' "${scheme_name}") ,conkyctl applyscheme usr $n ${1}") #out2+=(" $schemetitle,conkyctl settheme $themefilename $1") done < <(tail -n +2 "$USERSCHEMES") out+=("^sep()") #fi if [[ "$WINCLR" != "#" ]];then if [ "$WINTRANS" == false ];then out+=(" AbCd $BACKGROUND,^pipe(mbclr '$WINCLR' conkyctl win_bgcolor '${BACKGROUND}' '$me' ${1})") else out+=(" transparent $BACKGROUND,^pipe(mbclr '$WINCLR' conkyctl win_bgcolor '${BACKGROUND}' '$me' ${1})") fi fi [[ "$WINTRANS" == false ]] && out+=("󰄱 $TRANSPARENT,conkyctl transparent true ${1}") || out+=("󰄲 $TRANSPARENT,conkyctl transparent false ${1}") out+=("^sep()") if [[ "$1" != *"logo_mbcolor"* ]]; then [[ "$CLR" != "#" ]] && out+=(" AbCd $DEFCOLOR,^pipe(mbclr '$CLR' conkyctl default_color '${DEFCOLOR}' '$me' ${1})") [[ "$CLR0" != "#" ]] && out+=(" AbCd $COLOR_0,^pipe(mbclr '$CLR0' conkyctl color0 '$COLOR_0' '$me' ${1})") [[ "$CLR1" != "#" ]] && out+=(" AbCd $COLOR_1,^pipe(mbclr '$CLR1' conkyctl color1 '$COLOR_1' '$me' ${1})") [[ "$CLR2" != "#" ]] && out+=(" AbCd $COLOR_2,^pipe(mbclr '$CLR2' conkyctl color2 '$COLOR_2' '$me' ${1})") out+=("^sep()") fi if [[ "$1" != *"logo_mbcolor"* ]]; then if [[ "$1" != *"quoter_mbcolor"* ]]; then out+=("󰛖 $FONTS [ $FONT $FONTSIZE ],^checkout(fontsingle)") out2+=("^tag(fontsingle)") out2+=("^sep($FONTS)") out2+=("󰛖 $SELECTFONT [ $FONT $FONTSIZE ],mb-setfont conky_single ${1};$me") out2+=("^sep($FONTSIZE_LBL)") out2+=("󰧴 $INCREASE $((FONTSIZE+1)) px,conkyctl basefont_inc ${1};$me") out2+=("󰧳 $DECREASE $((FONTSIZE-1)) px,conkyctl basefont_dec ${1};$me") out2+=("^sep()") sizes=(14 13 12 11 10 9 8 7 6) for i in "${sizes[@]}" do [[ "$FONTSIZE" == "$i" ]] && out2+=(" $i px,conkyctl basefont_size ${1} $i;$me") || out2+=(" $i px,conkyctl basefont_size ${1} $i;$me") done if [ -f "$HOME/.config/mabox/fonts.list" ];then mapfile -t favfonts < <( grep -vE "^($|#)" ~/.config/mabox/fonts.list) else mapfile -t favfonts < <( grep -vE "^($|#)" /usr/share/mabox-colorizer/fonts.list) cp /usr/share/mabox-colorizer/fonts.list ~/.config/mabox/ fi #notify-send.sh "Ile" "${#favfonts[@]}" if [ "${#favfonts[@]}" -gt 0 ];then out2+=("^sep($FONTFAMILY_LBL)") for fon in "${favfonts[@]}";do [[ "$FONT" == "$fon" ]] && out2+=(" ${fon},$me") || out2+=(" ${fon},conkyctl basefont_family ${1} \"${fon}\";$me") done fi out2+=("^sep()") out2+=(" $_EDIT_FAVFONTS,geany ~/.config/mabox/fonts.list") fi [[ "$SHADOWS" == "shadow" ]] && out+=("󰄲 $SHADOW,conkyctl shades no ${1};$me") || out+=("󰄱 $SHADOW,conkyctl shades shadow ${1};$me") [[ "$SHADOWS" == "outline" ]] && out+=("󰄲 $OLINE,conkyctl shades no ${1};$me") || out+=("󰄱 $OLINE,conkyctl shades outline ${1};$me") out+=("^sep()") fi [[ "$BORD" == false ]] && out+=("󰄱 $BORDERS [ $STIP ],^checkout(bordersingle)") || out+=("󰄲 $BORDERS [ $STIP ],^checkout(bordersingle)") out2+=("^tag(bordersingle)") out2+=("^sep($DRAW $BORDERS?)") [[ "$BORD" == false ]] && out2+=(" $YES,conkyctl draw_borders true ${1};$me") || out2+=(" $YES,conkyctl draw_borders false ${1};$me") [[ "$BORD" == false ]] && out2+=(" $NO,conkyctl draw_borders true ${1};$me") || out2+=(" $NO,conkyctl draw_borders false ${1};$me") out2+=("^sep($STIPPLED_BORDERS ?)") out2+=("0 ($SOLID_LINE),conkyctl stippled_borders 0 ${1};$me") out2+=("^sep()") out2+=("1,conkyctl stippled_borders 1 ${1};$me") out2+=("2,conkyctl stippled_borders 2 ${1};$me") out2+=("3,conkyctl stippled_borders 3 ${1};$me") out2+=("4,conkyctl stippled_borders 4 ${1};$me") fi #OLD SYNTAX CHECK out+=("^sep()") out+=(" $EDIT ${title^},xdg-open ${1}") out+=("北 $RELOAD ${title^},conkyctl restartone ${1}") out+=("^sep()") out+=(" $KILL ${title^},conkyctl kill ${1##*/};${me}") } pipemenu () { single "$1" printf '%s\n' "${out[@]}" printf '%s\n' "${out2[@]}" printf '%s\n' "${out3[@]}" exit 0 } contextmenu () { # get conky config path from clicked "conky window" # maybe split this to separate function? eval $(xdotool getmouselocation --shell) eval $(xdotool getwindowgeometry --shell ${WINDOW}) hexid=$(wmctrl -lpG | grep ${X} |grep ${Y}|grep ${WIDTH}|grep ${HEIGHT} |cut -d' ' -f1) CONKYCFG=$(xprop -id ${hexid}|grep WM_COMMAND|cut -d'"' -f6) languages filename=${CONKYCFG##*/} name=${filename%%_mb*} title=${name//_/ } read POS <<< "$(grep alignment ${CONKYCFG} | cut -d'=' -f2 | cut -d"'" -f2)" read GAPX <<< "$(grep gap_x ${CONKYCFG} | cut -d'=' -f2 | cut -d"," -f1)" read GAPY <<< "$(grep gap_y ${CONKYCFG} | cut -d'=' -f2 | cut -d"," -f1)" read WINTRANS <<< "$(grep own_window_transparent ${CONKYCFG} | cut -d'=' -f2 | cut -d"," -f1)" read FONTDEF <<< "$(grep "font .*=.*,$" ${CONKYCFG} | cut -d'=' -f2,3 |cut -d"'" -f2)" FONT=${FONTDEF%:*} FONTSIZE=${FONTDEF#*=} read WINCLR <<< "$(grep own_window_colour ${CONKYCFG} | cut -d'=' -f2 | cut -d"'" -f2)" [[ $WINCLR =~ ^#.* ]] && : || WINCLR="#${WINCLR}" read CLR <<< "$(grep default_color ${CONKYCFG} | cut -d'=' -f2 | cut -d"'" -f2)" [[ $CLR =~ ^#.* ]] && : || CLR="#${CLR}" read CLR0 <<< "$(grep color0 ${CONKYCFG} | cut -d'=' -f2 | cut -d"'" -f2)" [[ $CLR0 =~ ^#.* ]] && : || CLR0="#${CLR0}" read CLR1 <<< "$(grep color1 ${CONKYCFG} | cut -d'=' -f2 | cut -d"'" -f2)" [[ $CLR1 =~ ^#.* ]] && : || CLR1="#${CLR1}" read CLR2 <<< "$(grep color2 ${CONKYCFG} | cut -d'=' -f2 | cut -d"'" -f2)" [[ $CLR2 =~ ^#.* ]] && : || CLR2="#${CLR2}" read OUTLINE <<< "$(grep draw_outline ${CONKYCFG} | cut -d'=' -f2 | cut -d"," -f1)" read SHADES <<< "$(grep draw_shades ${CONKYCFG} | cut -d'=' -f2 | cut -d"," -f1)" SHADOWS="no" [[ "$OUTLINE" == "true" ]] && SHADOWS="outline" [[ "$SHADES" == "true" ]] && SHADOWS="shadow" read BORD <<< "$(grep draw_borders ${CONKYCFG} | cut -d'=' -f2 | cut -d"," -f1)" read STIP <<< "$(grep stippled_borders ${CONKYCFG} | cut -d'=' -f2 | cut -d"," -f1)" [[ "$WINTRANS" == false ]] && BG="bgcolor='$WINCLR'" || BG="" #notify-send.sh -t 0 "Window" "z xdotool: ${WINDOW} \n X $X \n Y $Y \n hexid: $hexid \n $CONKYCFG \n ${WINCLR}\n ${name}\n $HOME/.config/mabox/${name}.csv" . /usr/share/mb-jgtools/pipemenu-standalone.cfg . $HOME/.config/mabox/mabox.conf CONFIG_FILE=$(mktemp) MENU_ITEMS=$(mktemp) trap "rm -f ${CONFIG_FILE} ${MENU_ITEMS}" EXIT POSITION_MODE=${1:-pointer} HIDE_BACK_ITEMS=1 menu_gradient_pos=none jgtools_padding=4 MENU_PADDING_TOP=${jgtools_padding:-0} TABS=140 jgmenu_icon_size=0 single "${CONKYCFG}" "s" case "$LANG" in pl*)EDIT_CUSTOMCOMMANDS=" Edytuj menu komend (lewy klik) dla ${name^}";; es*)EDIT_CUSTOMCOMMANDS=" Edit cmd menu (left clik) for ${name^}";; *) EDIT_CUSTOMCOMMANDS=" Edit cmd menu (left clik) for ${name^}";; esac out+=("^sep()") out+=("$EDIT_CUSTOMCOMMANDS,conkyctl cmdmenu_edit ${name}") out+=("^sep()") out+=(" ${arrow_string_left} Conky Manager (Colorizer),colorizer-conky -s") if [[ "$CONKYCFG" =~ "mount_points" ]]; then out+=("^sep($MOUNTPOINTS)") while read DEVICE SIZE USED FREE PERCENT MOUNT do [[ "${#MOUNT}" -gt "10" ]] && MOUNTLBL=${MOUNT##*/} || MOUNTLBL=${MOUNT} [[ "${#MOUNTLBL}" -gt "10" ]] && MOUNTLBL=${MOUNTLBL:0:9} out+=("$MOUNTLBL,^pipe(jgbrowser ${MOUNT})") done < <(df -h | grep -v "boot" | grep '^/dev') fi mkconfigfile cat < ${MENU_ITEMS} $(printf '%s\n' "${out[@]}") $(printf '%s\n' "${out2[@]}") $(printf '%s\n' "${out3[@]}") EOF jgmenu --config-file=${CONFIG_FILE} --csv-file=${MENU_ITEMS} 2>/dev/null } cmdmenu () { mkdir -p "${CONKYDIR}"/menuscripts # get conky config path from clicked "conky window" eval $(xdotool getmouselocation --shell) eval $(xdotool getwindowgeometry --shell ${WINDOW}) hexid=$(wmctrl -lpG | grep ${X} |grep ${Y}|grep ${WIDTH}|grep ${HEIGHT} |cut -d' ' -f1) CONKYCFG=$(xprop -id ${hexid}|grep WM_COMMAND|cut -d'"' -f6) # Fix for nonsense Conky context menu when Left Click on Root is not binded to ToogleShowDesktop if [ ! -f "$CONKYCFG" ]; then exit 0 fi filename=${CONKYCFG##*/} name=${filename%%_mb*} title=${name//_/ } #notify-send.sh "${X} ${Y}" "${WIDTH} ${HEIGHT}" # if script exist run it and exit if [ -f "${CONKYDIR}/menuscripts/${name}" ];then bash "${CONKYDIR}/menuscripts/${name}" exit 0 fi # if CSV for menu exist show it if [ -f ${CONKYDIR}/menuscripts/${name}.csv ]; then LINES=$(grep -Ev "^#|^$" ${CONKYDIR}/menuscripts/${name}.csv|wc -l) #notify-send.sh "$LINES" if [ ${LINES} == 0 ]; then : # do nothing, was contextmenu fi if [ ${LINES} == 1 ]; then # 1 line - execute command (one line menu make no sense) while IFS=$'\r\n' read -r line do cmd=${line#*,} label=${line%,*} done <<< $(grep -v '^\s*$\|^#\|^\s*#' ${CONKYDIR}/menuscripts/${name}.csv) #notify-send.sh "${label}" "${cmd[@]}" ${cmd[@]} else # more than 1 lines - show menu CUSTOMCOMMANDS=". ${CONKYDIR}/menuscripts/${name}.csv" fi else : # do nothing fi # otherwise build and show standalone menu with custom commands sleep .2 read WINTRANS <<< "$(grep own_window_transparent ${CONKYCFG} | cut -d'=' -f2 | cut -d"," -f1)" read FONTDEF <<< "$(grep "font .*=.*,$" ${CONKYCFG} | cut -d'=' -f2,3 |cut -d"'" -f2)" FONT=${FONTDEF%:*} FONTSIZE=${FONTDEF#*=} read WINCLR <<< "$(grep own_window_colour ${CONKYCFG} | cut -d'=' -f2 | cut -d"'" -f2)" [[ $WINCLR =~ ^#.* ]] && : || WINCLR="#${WINCLR}" read CLR <<< "$(grep default_color ${CONKYCFG} | cut -d'=' -f2 | cut -d"'" -f2)" [[ $CLR =~ ^#.* ]] && : || CLR="#${CLR}" . /usr/share/mb-jgtools/pipemenu-standalone.cfg . $HOME/.config/mabox/mabox.conf CONFIG_FILE=$(mktemp) MENU_ITEMS=$(mktemp) trap "rm -f ${CONFIG_FILE} ${MENU_ITEMS}" EXIT POSITION_MODE=${1:-pointer} #POSITION_MODE=fixed HIDE_BACK_ITEMS=1 menu_gradient_pos=none jgtools_padding=4 MENU_PADDING_TOP=${jgtools_padding:-0} JGWIDTH=270 TABS=140 jgmenu_icon_size=0 mkconfigfile case "$LANG" in pl*) CUSTOM_COMMANDS_SEP="Własne polecenia" EDIT_CUSTOMCOMMANDS=" Edytuj menu" ;; es*) CUSTOM_COMMANDS_SEP="Custom commands" EDIT_CUSTOMCOMMANDS=" Edit menu" ;; *) CUSTOM_COMMANDS_SEP="Custom commands" EDIT_CUSTOMCOMMANDS=" Edit menu" ;; esac cat < ${MENU_ITEMS} ${CUSTOMCOMMANDS} EOF jgmenu --config-file=${CONFIG_FILE} --csv-file=${MENU_ITEMS} 2>/dev/null } cmdmenu_edit() { if [[ -s "${CONKYDIR}/menuscripts/${1}.csv" ]];then geany "${CONKYDIR}/menuscripts/${1}.csv" else cat < "${CONKYDIR}/menuscripts/${1}.csv" # Add your commands here # Syntax is simple: Label,command # examples: #The Gimp,gimp #Firefox,firefox --new-window https://maboxlinux.org #Btop,terminator -T Btop -e btop # If only one command is uncommented it will run, if more commands available menu will be shown # to see how it works play with uncomenting examples above and clicking Conky EOF geany "${CONKYDIR}/menuscripts/${1}.csv" fi } netdevice () { CFGFILE="$HOME/.config/conky/Network_mbcolor.conkyrc" rm /tmp/xx* cd /tmp csplit -s ${CFGFILE} /conky.text/ #IFACE=$(ip route get 8.8.8.8 | awk -- '{printf $5}') # thanks @sng :) IFACE=$(ip route get 8.8.8.8 | awk '{for(i=1; i> /tmp/xx00 conky.text = [[ \${color}$NETWORK \${color}$DEVICE \${alignr}\${color0}$IFACE \${color}$IP \${alignr}\${color0}\${addr $IFACE} \${color}$DOWNLOAD \$color0\${downspeed $IFACE} \${alignr}\${color0}\${upspeed $IFACE}\${color} Upload \${color2}\${downspeedgraph $IFACE 30,100 -t} \${alignr} \${upspeedgraph $IFACE 30,100 -t} \${color}Total Down \${color0}\${totaldown $IFACE} \${alignr}\${color0}\${totalup $IFACE}\${color} Total Up \${color0}\${hr} \${execi 30 netstat -ept | grep ESTAB | awk '{print \$9}' | cut -d/ -f2 | sort | uniq -c | sort -nr} ]]; EOF cat /tmp/xx00 > ${CFGFILE} } savescheme () { case "$LANG" in pl*)SAVE_AS="Nowy motyw Conky" DESC="Zapisz obecnie ustawione kolory Conky jako nowy motyw..." LABEL="Nazwa:" NAME="nazwa";; *) SAVE_AS="New Conky colorscheme" DESC="Save current Conky colors as colorscheme..." LABEL="Name:" NAME="colorscheme-name";; esac # ask for scheme name schemename=$(yad --center --width=300 --borders=20 --window-icon=mbcc --title "$SAVE_AS" --text="$DESC" --entry --entry-label="$LABEL" --entry-text="$NAME") || exit 1 echo "${1}${schemename}" >> "$HOME/.config/colorizer/conky/c_userschemes.csv" } delscheme() { sed -i ${1}d "$HOME/.config/colorizer/conky/c_userschemes.csv" } applyscheme () { case "$1" in sys) SCHEMEFILE="/usr/share/mabox-colorizer/colorschemes/conky.csv";; usr) SCHEMEFILE="$HOME/.config/colorizer/conky/c_userschemes.csv";; esac while IFS="|" read -r own_window_colour default_color color0 color1 color2 wintrans outline shades bord stip scheme_name do win_bgcolor ${own_window_colour} ${3} default_color ${default_color} ${3} color0 ${color0} ${3} color1 ${color1} ${3} color2 ${color2} ${3} transparent ${wintrans} ${3} shadow="no" [[ "$outline" == true ]] && shadow="outline" [[ "$shades" == true ]] && shadow="shadow" shades "$shadow" ${3} stippled_borders ${stip} ${3} draw_borders ${bord} ${3} done < <(awk 'NR == n' n=$2 "$SCHEMEFILE") } applyscheme_all () { case "$1" in sys) SCHEMEFILE="/usr/share/mabox-colorizer/colorschemes/conky.csv";; usr) SCHEMEFILE="$HOME/.config/colorizer/conky/c_userschemes.csv";; esac while IFS="|" read -r own_window_colour default_color color0 color1 color2 wintrans outline shades bord stip scheme_name do win_bgcolor_all ${own_window_colour} default_color_all ${default_color} color0_all ${color0} color1_all ${color1} color2_all ${color2} transparent_all ${wintrans} shadow="no" [[ "$outline" == true ]] && shadow="outline" [[ "$shades" == true ]] && shadow="shadow" shades_all "$shadow" stippled_borders_all ${stip} draw_borders_all ${bord} done < <(awk 'NR == n' n=$2 "$SCHEMEFILE") } convert_from_old () { # try to convert from old syntax to new by convert.lua script #notify-send.sh "Convert func" "${1}" kill ${1} convert.lua ${1} sleep 1 startone ${1} } baseconky_info() { #notify-send.sh -i mbcc "Important" "Baseconky info" case "$LANG" in pl*) TITLE="Ważna informacja" MSG="Podczas pracy nad nowymi schematami kolorów lub dostosowywaniem kolorów warto uruchomić Conky: Sysinfo - który jest bazowym Conky.\nJego kolory i inne zmienne są brane pod uwagę.\n\nUruchomić Sysinfo teraz?\n\n" START="Tak, uruchom Sysinfo Conky" NO="Nie" ;; *) TITLE="Important info" MSG="When working on new color schemes or customizing colors, it's worth running Conky: Sysinfo - which is the base Conky. Its colors and other variables are taken into account by Colorizer.\n\nStart Sysinfo Conky now?\n\n" START="Yes, start Sysinfo Conky" NO="No" ;; esac cmd=( yad --center --width=360 --borders=20 --window-icon=mbcc --image=colorizer --title "${TITLE}" --text="${MSG}" --button="${START}:1" --button="${NO}:0" ) "${cmd[@]}" exval=$? #notify-send.sh -t 10000 "Exval" "${exval}" case $exval in 1) startone "$HOME/.config/conky/sysinfo_mbcolor.conkyrc";; 0) : ;; 252): ;; esac colorizer-conky -s } mono () { lighten=(0.92 0.8 0.65 0.45 0.28) darken=(0.9 0.74 0.54 0.38 0.18) if [ "${1}" == pick ];then color=$(gpick -pso 2>/dev/null) else color="${1}" fi if [ "${#color}" == 7 ];then for i in "${lighten[@]}" do pal+=("$(pastel mix -f $i "#ffffff" "$color"|pastel format hex)") done pal+=("$color") for i in "${darken[@]}" do pal+=("$(pastel mix -f $i "$color" "#000000"|pastel format hex)") done else exit 0 fi #colorize Conky if [ "$2" == "dark" ];then win_bgcolor_all "${pal[10]}" default_color_all "${pal[0]}" color0_all "${pal[3]}" color1_all "${pal[4]}" color2_all "${pal[5]}" else # light win_bgcolor_all "${pal[4]}" default_color_all "${pal[9]}" color0_all "${pal[7]}" color1_all "${pal[8]}" color2_all "${pal[1]}" fi colorizer-conky -s 2>/dev/null } monoone () { lighten=(0.92 0.8 0.65 0.45 0.28) darken=(0.9 0.74 0.54 0.38 0.18) if [ "${1}" == pick ];then color=$(gpick -pso 2>/dev/null) else color="${1}" fi if [ "${#color}" == 7 ];then for i in "${lighten[@]}" do pal+=("$(pastel mix -f $i "#ffffff" "$color"|pastel format hex)") done pal+=("$color") for i in "${darken[@]}" do pal+=("$(pastel mix -f $i "$color" "#000000"|pastel format hex)") done else exit 0 fi # colorize one Conky if [ "$2" == "dark" ];then win_bgcolor "${pal[10]}" "${3}" default_color "${pal[0]}" "${3}" color0 "${pal[3]}" "${3}" color1 "${pal[4]}" "${3}" color2 "${pal[5]}" "${3}" else # light win_bgcolor "${pal[4]}" "${3}" default_color "${pal[9]}" "${3}" color0 "${pal[7]}" "${3}" color1 "${pal[8]}" "${3}" color2 "${pal[1]}" "${3}" fi } case "$1" in transparent_all) transparent_all "$2";; transparent) transparent "$2" "$3";; win_bgcolor_all) win_bgcolor_all "$2";; win_bgcolor) win_bgcolor "$2" "$3";; draw_borders_all) draw_borders_all "$2" ;; draw_borders) draw_borders "$2" "$3";; stippled_borders_all) stippled_borders_all "$2" ;; stippled_borders) stippled_borders "$2" "$3";; default_color_all) default_color_all "$2";; color0_all) color0_all "$2";; color1_all) color1_all "$2";; color2_all) color2_all "$2";; default_color) default_color "$2" "$3";; color0) color0 "$2" "$3";; color1) color1 "$2" "$3";; color2) color2 "$2" "$3";; basefont_inc_all) basefont_inc_all;; basefont_dec_all) basefont_dec_all;; basefont_inc) basefont_inc "$2";; basefont_dec) basefont_dec "$2";; basefont_family) basefont_family "$2" "$3";; basefont_family_all) basefont_family_all "$2";; basefont_size) basefont_size "$2" "$3";; basefont_size_all) basefont_size_all "$2";; setfont_all) setfont_all;; serfont) setfont;; shades_all) shades_all "$2";; shades) shades "$2" "$3";; logosize) logosize "$2";; single) pipemenu "$2";; pos) pos "$2" "$3";; gap_x) gap_x "$2" "$3";; gap_y) gap_y "$2" "$3";; setpos) setpos "$2";; startone) startone "$2";; startall) startall;; kill) kill "$2";; toggleone) toggleone "$2";; restartone) restartone "$2";; contextmenu) contextmenu;; cmdmenu) cmdmenu;; cmdmenu_edit) cmdmenu_edit "$2";; makemoveableall) makemoveableall;; saveposall) saveposall;; resetcolorsall) resetcolorsall ;; resetcolorsone) resetcolorsone "$2";; savescheme) savescheme "$2";; delscheme) delscheme "$2";; applyscheme) applyscheme "$2" "$3" "$4";; applyscheme_all) applyscheme_all "$2" "$3";; netdevice) netdevice ;; convert_from_old) convert_from_old "$2";; baseconky_info) baseconky_info;; mono) mono "$2" "$3";; monoone) monoone "$2" "$3" "$4";; *) : ;; esac