#!/bin/bash # # colorizer - set of tools for Mabox (auto)theming # Copyright (C) 2022-2023 Daniel Napora # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . SYSSCHEMES="/usr/share/mabox-colorizer/colorschemes/menus.csv" USERSCHEMES="$HOME/.config/colorizer/menus/userschemes.csv" ### 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" me="colorizer-menus -s" . $HOME/.config/mabox/mabox.conf case "$jgmenu_theme" in obtheme) OBTHEME=$(awk '// {while (getline n) {if (match(n, //)) {l=n; exit}}} END {split(l, a, "[<>]"); print a[3]}' "$HOME/.config/openbox/rc.xml"); #echo "$OBTHEME" THEMERC="$HOME/.config/mabox/jgobthemes/${OBTHEME}.colorrc" jgmenu_theme="$OBTHEME";; #only to show real theme name in menu *) THEMERC="$HOME/.config/mabox/jgobthemes/${jgmenu_theme}.colorrc";; esac GRADIENT_FILE="$HOME"/.config/colorizer/gradients_menu.inc if [ ! -f "$GRADIENT_FILE" ]; then cp /usr/share/mabox-colorizer/gradients_menu.inc "$GRADIENT_FILE" fi # Backup original theme file if [ ! -f "${THEMERC}.bak" ]; then cp ${THEMERC} ${THEMERC}.bak fi case "$LANG" in pl*) MENU_THEME="Motyw menu" QUICK_TWEAKS="Ustawienia główne" SCHEMES="Motywy kolorystycznie" SYSTEM_SCHEMES="Systemowe" YOUR_SCHEMES="Moje motywy" SAVE_CURRSCHEME="Zapisz aktualną kolorystykę jako..." OPEN_SCHEMEFILE="Odwórz plik ze schematami w edytorze" COLORSCHEME="Schemat kolorów" APPLY_SCHEME="Zastosuj" DELETE="Usuń" DELETE_SCHEME="Usuń schemat kolorów" BORDER="Obramowanie" PADDING="Margines wewnętrzny" RADIUS="Zaokrąglone rogi" SUBSPACING="Odstęp submenu" LINE_HEIGHT="Wysokość lini" ARROW_STRING="Znak strzałki" ARROW_STRING_LEFT="Znak strzałki lewej" MBG_OPACITY="(Nie)przeźroczystość Menu" SIZING="Rozmiar menu" WIDE="szerokie" NORMAL="normalne" TIGHT="wąskie" GENERATEFROMWP="Generuj z kolorów tapety..." LIGHTBG="Jasne tło" DARKBG="Ciemne tło" COLOR_MENU_BG="Tło menu" COLOR_MENU_BG_TO="Tło menu 2 (gradient)" COLOR_MENU_BORDER="Obramowanie menu" GRADIENT_POS="Kierunek gradientu" NONE="brak gradientu (none)" TOP="od góry (top)" RIGHT="od prawej (right)" BOTTOM="z dołu (bottom)" LEFT="od lewej (left)" TOP_LEFT="od góry z lewej (top_left)" TOP_RIGHT="od góry z prawej (top_right)" BOTTOM_LEFT="z dołu od lewej (bottom_left)" BOTTOM_RIGHT="z dołu od prawej (bottom_right)" PRE_GRADIENTS="Zastosuj gradient" GRADIENT_REVERSE="Odwróć kolory Gradientu" ITEM="Pozycja (element) menu " FONT="Czcionka" FONTS="Czcionki" INCREASE="Powiększ do" DECREASE="Pomniejsz do" FONT_CUSTOM="Wybierz czcionkę i rozmiar..." FONT_FAMILY="rodzina" FONT_SIZE="rozmiar" ITEM_FONT="Czcionka elementu" TITLE_FONT="Czcionka nagłówka" COLOR_NORM_FG="Kolor tekstu" SEL_ITEM="Aktywny element (akcent)" COLOR_SEL_BG="Tło" COLOR_SEL_FG="Tekst" COLOR_SEL_BORDER="Obramowanie" I_BORDER="Obramowanie" I_RADIUS="i Zaokrąglenie" ITEM_BORDER="Obramowanie (px)" ITEM_RADIUS="Zaokrąglenie (px)" COLOR_NORM_BG="Tło" SEPARATOR_TITLE="Separator/Nagłówek" TITLE="Nagłówek" COLOR_TITLE_BG="Tło nagłówka" COLOR_TITLE_FG="Kolor tekstu nagłówka" COLOR_TITLE_BORDER="Kolor obramowania" SEP_HALIGN="Wyrównanie nagłówka" H_LEFT="do lewej" H_CENTER="po środku" H_RIGHT="do prawej" COLOR_SEP_FG="Kolor separatora (linii)" MORE_MENU_SETTINGS="więcej ustawień menu" GLOBAL_MENU_SETTINGS="Globalne Ustawienia Menu" RESET="Resetuj motyw" TO_DEFAULT="" EDIT="Edytuj plik " FILE="plik" SET_RANDOM="Ustaw losowy motyw menu" _COLORIZER_ROOT="Colorizer - menu główne" ;; *) MENU_THEME="Menu theme" QUICK_TWEAKS="Global Settings/Quick Tweaks" SCHEMES="Color Schemes" SYSTEM_SCHEMES="System colorschemes" YOUR_SCHEMES="My colorschemes" SAVE_CURRSCHEME="Save current colors as..." OPEN_SCHEMEFILE="Open schemes file in editor" COLORSCHEME="Color Scheme" APPLY_SCHEME="Apply colorscheme" DELETE="Delete" DELETE_SCHEME="Delete colorscheme" BORDER="Menu Border" PADDING="Padding" RADIUS="Rounded Corners" SUBSPACING="Submenu Spacing" LINE_HEIGHT="Line height" ARROW_STRING="Arrow string" ARROW_STRING_LEFT="Left Arrow string" MBG_OPACITY="Menu BG Opacity" SIZING="Menu sizing" WIDE="wide" NORMAL="normal" TIGHT="tight" GENERATEFROMWP="Generate from wallpaper colors..." LIGHTBG="Light Background" DARKBG="Dark Background" COLOR_MENU_BG="Background (BG)" COLOR_MENU_BG_TO="BG to (gradient)" COLOR_MENU_BORDER="Menu Border" GRADIENT_POS="Gradient direction" NONE="none" TOP="top" RIGHT="right" BOTTOM="bottom" LEFT="left" TOP_LEFT="top_left" TOP_RIGHT="top_right" BOTTOM_LEFT="bottom_left" BOTTOM_RIGHT="bottom_right" PRE_GRADIENTS="Apply gradient" GRADIENT_REVERSE="Reverse gradient colors" ITEM="Item" FONT="Font" FONTS="Fonts" INCREASE="Increase to" DECREASE="Decrease to" FONT_CUSTOM="Select custom font and size..." FONT_FAMILY="font family" FONT_SIZE="font size" ITEM_FONT="Item Font" TITLE_FONT="Title Font" COLOR_NORM_FG="Text Color" SEL_ITEM="Selected Item (accent)" COLOR_SEL_BG="Background" COLOR_SEL_FG="Text" COLOR_SEL_BORDER="Border" I_BORDER="Item Border" I_RADIUS="and Radius" ITEM_BORDER="Item Border (px)" ITEM_RADIUS="Item Radius (px)" COLOR_NORM_BG="Item Background" SEPARATOR_TITLE="Separator/Title" TITLE="Title" COLOR_TITLE_BG="Title Background" COLOR_TITLE_FG="Title Foreground" COLOR_TITLE_BORDER="Title Border color " SEP_HALIGN="Title alignment" H_LEFT="left" H_CENTER="center" H_RIGHT="right" COLOR_SEP_FG="Separator (line) color" MORE_MENU_SETTINGS="more menu settings" GLOBAL_MENU_SETTINGS="Global Menu Settings" RESET="Reset" TO_DEFAULT="to default" EDIT="Edit" FILE="file" SET_RANDOM="Set random menu theme" _COLORIZER_ROOT="Colorizer rootmenu" ;; esac getvalues () { read MBG MBGA<<< "$(grep 'color_menu_bg ' ${THEMERC} | cut -d'=' -f2)" read MBGT MBGTA<<< "$(grep 'color_menu_bg_to' ${THEMERC} | cut -d'=' -f2)" read MBORDER MBORDERA<<< "$(grep 'color_menu_border' ${THEMERC} | cut -d'=' -f2)" read GRADIENT<<< "$(grep 'menu_gradient_pos' ${THEMERC} | cut -d'=' -f2)" if [ "$GRADIENT" == "" ]; then mb-setvar menu_gradient_pos=none ${THEMERC} read GRADIENT<<< "$(grep 'menu_gradient_pos' ${THEMERC} | cut -d'=' -f2)" fi read SEPHALIGN<<< "$(grep 'sep_halign' ${THEMERC} | cut -d'=' -f2)" read SEPFG SEPFGA<<< "$(grep 'color_sep_fg' ${THEMERC} | cut -d'=' -f2)" read TBG TBGA<<< "$(grep 'color_title_bg' ${THEMERC} | cut -d'=' -f2)" read TFG TFGA<<< "$(grep 'color_title_fg' ${THEMERC} | cut -d'=' -f2)" read TBORDER TBORDERA<<< "$(grep 'color_title_border' ${THEMERC} | cut -d'=' -f2)" read NORMBG NORMBGA<<< "$(grep color_norm_bg ${THEMERC} | cut -d'=' -f2)" read NFG NFGA<<< "$(grep color_norm_fg ${THEMERC} | cut -d'=' -f2)" read SBG SBGA<<< "$(grep 'color_sel_bg' ${THEMERC} | cut -d'=' -f2)" read SFG SFGA<<< "$(grep 'color_sel_fg' ${THEMERC} | cut -d'=' -f2)" read SBORDER SBORDERA<<< "$(grep 'color_sel_border' ${THEMERC} | cut -d'=' -f2)" read IBORDER<<< "$(grep 'item_border' ${THEMERC} | cut -d'=' -f2)" read IRADIUS<<< "$(grep 'item_radius' ${THEMERC} | cut -d'=' -f2)" } getvalues # Current colors currcolors="${MBG}|${MBGT}|${MBORDER}|${TBG}|${TFG}|${TBORDER}|${NORMBG}|${NFG}|${SBG}|${SFG}|${SBORDER}|${SEPFG}|${GRADIENT}|" #echo "${currcolors}" > ~/.config/mabox/.menu_colors if [ ! -f "$USERSCHEMES" ]; then mkdir -p "$HOME/.config/colorizer/menus/" echo " MBG | MBGT |MBORDER| TBG | TFG |TBORDER|NORMBG | NFG | SBG | SFG |SBORDER| SEPFG |GRADIENT|scheme_name" > "$USERSCHEMES" fi out+=("^sep($MENU_THEME: ${jgmenu_theme})") out+=("$QUICK_TWEAKS,^checkout(tweaks)") out2+=("^tag(tweaks)") out2+=("^sep(Overall style)") ###### out2+=("$BORDER [ ${jgtools_border:-0}px ],^checkout(mborder)") out2+=("$PADDING [ ${jgtools_padding:-0}px ],^checkout(mpadding)") #out2+=("$RADIUS [ ${jgtools_radius:-0} ],^checkout(mradius)") out2+=("$SUBSPACING [ ${submenu_spacing:-0}px ],^checkout(subspacing)") out2+=("^sep()") out2+=("$LINE_HEIGHT [ $item_height_factor% ],^checkout(lineheight)") out2+=("^sep()") out2+=("$ARROW_STRING [ $arrow_string ],^checkout(arrow)") out2+=("$ARROW_STRING_LEFT [ $arrow_string_left ],^checkout(arrowleft)") out3+=("^tag(mborder)") out3+=("^sep($BORDER)") for i in 0 1 2 3 4 5 6 8 10 12; do [[ "$jgtools_border" == $i ]] && out3+=(" $(printf "%3s,%s" "$i" "mb-setvar jgtools_border=${i};$me")") || out3+=(" $(printf "%3s,%s" "$i" "mb-setvar jgtools_border=${i};$me")");done out3+=("^tag(mpadding)") out3+=("^sep($PADDING)") for i in 0 2 4 6 8 10 12 14 16 18 20 22 24 28 32 40; do [[ "$jgtools_padding" == $i ]] && out3+=(" $(printf "%3s,%s" "$i" "mb-setvar jgtools_padding=${i};$me")") || out3+=(" $(printf "%3s,%s" "$i" "mb-setvar jgtools_padding=${i};$me")");done #out3+=("^tag(mradius)") #out3+=("^sep($RADIUS)") #for i in 0 1 2 3 4 6 8 12 14 16 18 20 40; do out3+=("$(printf "%3s,%s" "$i" "mb-setvar jgtools_radius=${i};$me")");done out3+=("^tag(subspacing)") out3+=("^sep($SUBSPACING)") for i in -20 -12 -10 -8 -6 -4 -2 0 1 2 4 6 8 10 12 14 16 18 20; do [[ "$submenu_spacing" == $i ]] && out3+=(" $(printf "%4s,%s" "$i" "mb-setvar submenu_spacing=${i};$me")") || out3+=(" $(printf "%4s,%s" "$i" "mb-setvar submenu_spacing=${i};$me")");done out3+=("^tag(lineheight)") out3+=("^sep($LINE_HEIGHT)") for i in 160 180 200 220 240 280 300; do [[ "$item_height_factor" == $i ]] && out3+=(" $(printf "%4s%%,%s" "$i" "mb-setvar item_height_factor=${i};$me")") || out3+=(" $(printf "%4s%%,%s" "$i" "mb-setvar item_height_factor=${i};$me")");done out3+=("^tag(arrow)") out3+=("^sep($ARROW_STRING)") for i in "" "" "" "" "" "" "󰔰" "󰮺" "" "壟" "" "" "" "" "" "󰋇" "..." ":." "." "+" "^" "-" "_" "" "" "󰞔" "" ""; do [[ "$arrow_string" == $i ]] && out3+=(">> $i <<,$me") || out3+=(" $i,mb-setvar arrow_string=${i};$me");done out3+=("^tag(arrowleft)") out3+=("^sep($ARROW_STRING_LEFT)") for i in "" "" "" "" "" "" "󰶢" "󰮹" "" "鹿" "" "" "" "" "" "󰩔"; do [[ "$arrow_string_left" == $i ]] && out3+=(">> $i <<,$me") || out3+=(" $i,mb-setvar arrow_string_left=${i};$me");done out2+=("^sep()") out2+=("$MBG_OPACITY,^checkout(mbgopacity") out3+=("^tag(mbgopacity)") out3+=("^sep(mbgopacity)") out3+=("100% Opaque,jgctl tweak opacity 100;$me") out3+=("90%,jgctl tweak opacity 90;$me") out3+=("80%,jgctl tweak opacity 80;$me") out3+=("60%,jgctl tweak opacity 60;$me") out3+=("50%,jgctl tweak opacity 50;$me") out3+=("40%,jgctl tweak opacity 40;$me") out3+=("30%,jgctl tweak opacity 30;$me") out3+=("20%,jgctl tweak opacity 20;$me") out3+=("10%,jgctl tweak opacity 10;$me") out3+=("0% Fully transparent,jgctl tweak opacity 0;$me") out2+=("^sep()") out2+=("Solid Color,jgctl tweak solid;$me") out2+=("Gradient,jgctl tweak gradient;$me") out2+=("^sep($SIZING)") out2+=("$WIDE,jgctl tweak sizing wide;$me") out2+=("$NORMAL,jgctl tweak sizing normal;$me") out2+=("$TIGHT,jgctl tweak sizing tight;$me") #### COLOR SCHEMES  out+=(" $SCHEMES,^checkout(schemes)") out2+=("^tag(schemes)") out2+=("^sep($SCHEMES)") out2+=("^sep($SYSTEM_SCHEMES)") n=1 while IFS="|" read -r mbg mbgt mborder tbg tfg tborder normbg nfg sbg sfg sborder sepfg grad scheme_name do ((n=n+1)) case "$grad" in none)icon="󰄱";; top)icon="";; right)icon="";; bottom)icon="";; left)icon="";; top_left)icon="";; top_right)icon="";; bottom_left)icon="";; bottom_right)icon="";; esac out2+=("$(printf '%-20s' "${scheme_name}") item title [ sel ] ${icon} ,jgctl applyscheme sys $n;$me") done < <(tail -n +2 "$SYSSCHEMES") out2+=("^sep($YOUR_SCHEMES)") out2+=(" $SAVE_CURRSCHEME,jgctl savescheme '${currcolors}';$me") out2+=(" $OPEN_SCHEMEFILE,xdg-open $USERSCHEMES") out2+=("^sep()") n=1 while IFS="|" read -r mbg mbgt mborder tbg tfg tborder normbg nfg sbg sfg sborder sepfg grad scheme_name do ((n=n+1)) case "$grad" in none)icon="󰄱";; top)icon="";; right)icon="";; bottom)icon="";; left)icon="";; top_left)icon="";; top_right)icon="";; bottom_left)icon="";; bottom_right)icon="";; esac out2+=("$(printf '%-20s' "${scheme_name}") item title [ sel ] ${icon} ,^checkout(sch${n})") out3+=("^tag(sch${n}") out3+=("^sep($COLORSCHEME: ${scheme_name})") out3+=(" $APPLY_SCHEME,jgctl applyscheme usr ${n};$me") out3+=("^sep($DELETE)") out3+=("󰗨 $DELETE_SCHEME ${scheme_name},jgctl delscheme ${n};$me") done < <(tail -n +2 "$USERSCHEMES") out2+=("^sep($GENERATEFROMWP)") out2+=(" $LIGHTBG ,w2theme menu light;$me") out2+=(" $DARKBG ,w2theme menu dark;$me") out+=("^sep(Menu)") out+=("$(printf '%3s' "$MBGA") $COLOR_MENU_BG,^pipe(mbclr '$MBG' jgctl color_menu_bg '${COLOR_MENU_BG}' '$me')") out+=("$(printf '%3s' "$MBGTA") $COLOR_MENU_BG_TO,^pipe(mbclr '$MBGT' jgctl color_menu_bg_to '${COLOR_MENU_BG_TO}' '$me')") if [[ "$jgtools_border" != "0" ]];then out+=("$(printf '%3s' "$MBORDERA") $COLOR_MENU_BORDER,^pipe(mbclr '$MBORDER' jgctl color_menu_border '${COLOR_MENU_BORDER}' '$me')") fi out+=("^sep()") case "$GRADIENT" in none)icon="󰄱";; top)icon="";; right)icon="";; bottom)icon="";; left)icon="";; top_left)icon="";; top_right)icon="";; bottom_left)icon="";; bottom_right)icon="";; esac out+=("$icon $GRADIENT_POS [ $GRADIENT ],^checkout(gradientpos)") out+=(" $GRADIENT_REVERSE,jgctl gradient '${MBGT}' '${MBG}';$me") out+=(" $PRE_GRADIENTS,^pipe(mbgrad menu)") out+=("^sep($ITEM)") out+=("$(printf '%3s' "$NFGA") AbCd $COLOR_NORM_FG,^pipe(mbclr '$NFG' jgctl color_norm_fg '${COLOR_NORM_FG}' '$me')") out+=("^sep()") [[ ! -z "$NORMBG" ]] && out+=("$(printf '%3s' "$NORMBGA") $COLOR_NORM_BG,^pipe(mbclr '$NORMBG' jgctl color_norm_bg '${COLOR_NORM_BG}' '$me')" "^sep()") out+=("$I_BORDER [ $IBORDER ] $I_RADIUS [ $IRADIUS ],^checkout(itemborder_radius)") out+=("^sep($SEL_ITEM)") out+=("$(printf '%3s' "$SBGA") $COLOR_SEL_BG,^pipe(mbclr '$SBG' jgctl color_sel_bg '${COLOR_SEL_BG}' '$me')") out+=("$(printf '%3s' "$SFGA") AbCd $COLOR_SEL_FG,^pipe(mbclr '$SFG' jgctl color_sel_fg '${COLOR_SEL_FG}' '$me')") if [[ "$IBORDER" != "0" ]];then out+=("$(printf '%3s' "$SBORDERA") $COLOR_SEL_BORDER,^pipe(mbclr '$SBORDER' jgctl color_sel_border '${COLOR_SEL_BORDER}' '$me')") fi out+=("^sep()") out+=("Apply accent preset,^checkout(sel_accents)") out2+=("^tag(sel_accents)") out2+=("^sep(Accent presets)") while IFS="," read -r BG FG BGNAME FGNAME do [[ "$BGNAME" == "" ]] && BGNAME=${BG} [[ "$FGNAME" == "" ]] && FGNAME=${FG} out2+=(" $(printf '%*s' 25 "${FGNAME} on ${BGNAME}") ,jgctl accent '${BG}' '${FG}';$me") out21+=(" $(printf '%*s' 25 "${BGNAME} on ${FGNAME}") ,jgctl accent '${FG}' '${BG}';$me") done < <(tail -n +2 /usr/share/mabox-colorizer/readable_colors.csv) out2+=("${out21[@]}") # Item font submenu out2+=("^tag(mitemfont)") out2+=("^sep($ITEM_FONT)") out2+=("󰛖 $FONT_CUSTOM,mb-setfont menu_item;$me") out2+=("^sep($FONT_SIZE)") out2+=("󰧴 $INCREASE $((menu_font_size+1)) px,mb-setvar menu_font_size=$((menu_font_size+1));$me") out2+=("󰧳 $DECREASE $((menu_font_size-1)) px,mb-setvar menu_font_size=$((menu_font_size-1));$me") out2+=("^sep()") sizes=(14 13 12 11 10 9 8) for i in "${sizes[@]}" do [[ "$menu_font_size" == "$i" ]] && out2+=(" $i px,$me") || out2+=(" $i px,mb-setvar menu_font_size=$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 if [ "${#favfonts[@]}" -gt 0 ];then out2+=("^sep($FONT_FAMILY)") for fon in "${favfonts[@]}";do [[ "$menu_font_family" == "$fon" ]] && out2+=(" ${fon},$me") || out2+=(" ${fon},mb-setvar \"menu_font_family='${fon}'\";$me") done fi out+=("^sep($SEPARATOR_TITLE)") out2+=("^tag(mtitlefont)") out2+=("^sep($TITLE_FONT)") out2+=("󰛖 $FONT_CUSTOM,mb-setfont menu_sep;$me") out2+=("^sep($FONT_SIZE)") out2+=("󰧴 $INCREASE $((menu_sep_font_size+1)) px,mb-setvar menu_sep_font_size=$((menu_sep_font_size+1));$me") out2+=("󰧳 $DECREASE $((menu_sep_font_size-1)) px,mb-setvar menu_sep_font_size=$((menu_sep_font_size-1));$me") out2+=("^sep()") sizes=(14 13 12 11 10 9 8) for i in "${sizes[@]}" do [[ "$menu_sep_font_size" == "$i" ]] && out2+=(" $i px,$me") || out2+=(" $i px,mb-setvar menu_sep_font_size=$i;$me") done if [ "${#favfonts[@]}" -gt 0 ];then out2+=("^sep($FONT_FAMILY)") for fon in "${favfonts[@]}";do [[ "$menu_sep_font_family" == "$fon" ]] && out2+=(" ${fon},$me") || out2+=(" ${fon},mb-setvar \"menu_sep_font_family='${fon}'\";$me") done fi out+=("$(printf '%3s' "$TBGA") $COLOR_TITLE_BG,^pipe(mbclr '$TBG' jgctl color_title_bg '${COLOR_TITLE_BG}' '$me')") out+=("$(printf '%3s' "$TFGA") AbCd $COLOR_TITLE_FG,^pipe(mbclr '$TFG' jgctl color_title_fg '${COLOR_TITLE_FG}' '$me')") out+=("$(printf '%3s' "$TBORDERA") $COLOR_TITLE_BORDER,^pipe(mbclr '$TBORDER' jgctl color_title_border '${COLOR_TITLE_BORDER}' '$me')") out+=("^sep()") case "$SEPHALIGN" in left) icon="";; center) icon="";; right) icon="";; esac out+=("$icon $SEP_HALIGN [ $SEPHALIGN ],^checkout(sephalign)") out+=("^sep()") out+=("$(printf '%3s' "$SEPFGA") ------ ${COLOR_SEP_FG},^pipe(mbclr '$SEPFG' jgctl color_sep_fg '${COLOR_SEP_FG}' '$me')") out+=("^sep($FONTS)") out+=("󰛖 $TITLE [ $menu_sep_font_family $menu_sep_font_size ],^checkout(mtitlefont)") out+=("󰛖 $ITEM [ $menu_font_family $menu_font_size ],^checkout(mitemfont)") out2+=("^tag(gradientpos)") out2+=("^sep($GRADIENT_POS $GRADIENT)") out2+=("󰄱 $NONE,jgctl menu_gradient_pos none;$me") out2+=("^sep()") out2+=(" $TOP,jgctl menu_gradient_pos top;$me") out2+=(" $RIGHT,jgctl menu_gradient_pos right;$me") out2+=(" $BOTTOM,jgctl menu_gradient_pos bottom;$me") out2+=(" $LEFT,jgctl menu_gradient_pos left;$me") out2+=(" $TOP_LEFT,jgctl menu_gradient_pos top_left;$me") out2+=(" $TOP_RIGHT,jgctl menu_gradient_pos top_right;$me") out2+=(" $BOTTOM_LEFT,jgctl menu_gradient_pos bottom_left;$me") out2+=(" $BOTTOM_RIGHT,jgctl menu_gradient_pos bottom_right;$me") out2+=("^tag(sephalign)") out2+=("^sep($SEP_HALIGN)") [[ "$SEPHALIGN" == "left" ]] && out2+=("  $H_LEFT,jgctl sep_halign left;$me") || out2+=("  $H_LEFT,jgctl sep_halign left;$me") [[ "$SEPHALIGN" == "center" ]] && out2+=("  $H_CENTER,jgctl sep_halign center;$me") || out2+=("  $H_CENTER,jgctl sep_halign center;$me") [[ "$SEPHALIGN" == "right" ]] && out2+=("  $H_RIGHT,jgctl sep_halign right;$me") || out2+=("  $H_RIGHT,jgctl sep_halign right;$me") out2+=("^tag(itemborder_radius)") out2+=("^sep($ITEM_BORDER)") [[ "$IBORDER" == 0 ]] && out2+=(" 0 px,jgctl item_border 0;$me") || out2+=(" 0 px,jgctl item_border 0;$me") out2+=("^sep()") [[ "$IBORDER" == 1 ]] && out2+=(" 1 px,jgctl item_border 1;$me") || out2+=(" 1 px,jgctl item_border 1;$me") [[ "$IBORDER" == 2 ]] && out2+=(" 2 px,jgctl item_border 2;$me") || out2+=(" 2 px,jgctl item_border 2;$me") out2+=("^sep($ITEM_RADIUS)") [[ "$IRADIUS" == 0 ]] && out2+=(" 0 px,jgctl item_radius 0;$me") || out2+=(" 0 px,jgctl item_radius 0;$me") out2+=("^sep()") [[ "$IRADIUS" == 1 ]] && out2+=(" 1 px,jgctl item_radius 1;$me") || out2+=(" 1 px,jgctl item_radius 1;$me") [[ "$IRADIUS" == 2 ]] && out2+=(" 2 px,jgctl item_radius 2;$me") || out2+=(" 2 px,jgctl item_radius 2;$me") [[ "$IRADIUS" == 3 ]] && out2+=(" 3 px,jgctl item_radius 3;$me") || out2+=(" 3 px,jgctl item_radius 3;$me") [[ "$IRADIUS" == 4 ]] && out2+=(" 4 px,jgctl item_radius 4;$me") || out2+=(" 4 px,jgctl item_radius 4;$me") [[ "$IRADIUS" == 5 ]] && out2+=(" 5 px,jgctl item_radius 5;$me") || out2+=(" 5 px,jgctl item_radius 5;$me") [[ "$IRADIUS" == 6 ]] && out2+=(" 6 px,jgctl item_radius 6;$me") || out2+=(" 6 px,jgctl item_radius 6;$me") out+=("^sep($MORE_MENU_SETTINGS)") out+=(" $GLOBAL_MENU_SETTINGS,jgmenusettings-pipe -c") #out+=("$GLOBAL_MENU_SETTINGS,^pipe(jgmenusettings-pipe -r)") ### We don't need many menu themes anymore #out+=(" $SET_RANDOM,mb-setvar jgmenu_theme=$(basename -s .colorrc $(ls ~/.config/mabox/jgobthemes/*.colorrc | shuf -n 1));$me") ### RUN if [[ "$1" == "-s" ]]; then . /usr/share/mb-jgtools/pipemenu-standalone.cfg . $HOME/.config/mabox/mabox.conf CNF_DIR="$HOME/.config/colorizer" CNF_FILE="$CNF_DIR/colorizer.conf" source "$CNF_FILE" out+=("^sep()") out+=(" ${arrow_string_left} $_COLORIZER_ROOT,colorizer -s") if [[ "$colorizer_size" == "full" ]];then eval $(xdotool getdisplaygeometry --shell) MENU_HEIGHT_MIN="$HEIGHT" MENU_HEIGHT_MAX=$MENU_HEIGHT_MIN jgtools_radius=0 menu_margin_x="0" else MENU_VALIGN="center" menu_margin_x=${submenu_spacing:-0} fi MENU_PADDING_TOP=${jgtools_padding:-0} MENU_HALIGN="left" jgmenu_icon_size=0 JGWIDTH=40 [ $(pidof picom) ] && MENU_RADIUS=$jgtools_radius [ -z $jgmenu_use_borders ] && menu_border=0 JGWIDTH=$((jgtools_padding + 270 + jgtools_padding)) MENU_PADDING_TOP=$((jgtools_padding + 150)) #WALLPAPER read WALLPATH<<< $(grep file "$HOME"/.config/nitrogen/bg-saved.cfg | cut -d'=' -f2) THUMBDIR="$HOME/.cache/colorizer/thumbs" mkdir -p ${THUMBDIR} NAME=${WALLPATH////_} if [[ "${NAME}" =~ ^_home_.* ]]; then n=${#HOME} ((n++)) NAME=${NAME:${n}} fi THUMB="${THUMBDIR}/${NAME}.png" if [[ ! -f "$THUMB" ]] then convert ${WALLPATH} -resize 270x150^ -gravity center -extent 270x150 ${THUMB} fi mkconfigfile cat < ${MENU_ITEMS} @icon,,$((jgtools_padding )),$((jgtools_padding)),270,150,4,left,top,,,${THUMB} @rect,,$((jgtools_padding)),$((jgtools_padding + 116)),270,30,0,left,top,#222222 20,#222222 70, @text,,$((jgtools_padding + 158)),$((jgtools_padding + 116)),120,30,0,left,top,#FFFFFF ,${WINCLR},Colorizer Menus @rect,,$((jgtools_padding + 4)),$((jgtools_padding + 22)),35,80,2,left,top,${MBORDER} ${MBORDERA},${MBG} ${MBGA}, @rect,,$((jgtools_padding + 40)),$((jgtools_padding + 72)),35,60,2,left,top,${MBORDER} ${MBORDERA},${MBG} ${MBGA}, $(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 exit 0 fi printf '%s\n' "${out[@]}" printf '%s\n' "${out2[@]}" printf '%s\n' "${out3[@]}"