#!/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 . CNF_DIR="$HOME/.config/colorizer" mkdir -p "$CNF_DIR" CNF_FILE="$CNF_DIR/colorizer.conf" CUSTOM_COMMANDS_FILE="$CNF_DIR/custom.csv" if [ ! -f $CNF_FILE ]; then cat < ${CNF_FILE} # Autogenerate color themes on wallpaper change? yes or no wall2themes=no # OB window decoration preferred color style: dark, light or none wall2themes_ob=light # conky preffered bg color dark, light or none (none = not generate/change colorscheme) wall2themes_conky=dark # Menu prefferred bg color dark, light or none (not generate/change colorscheme) wall2themes_menu=light # Accent color dark, light or none wall2themes_accent=dark # PyRadio preferred bg color dark, light or none (not generate/change colorscheme) wall2themes_pyradio=dark # User wallpaper dir user_wallpapers_dir=~/wallpapers # Show related tools (show or hide) related_tools=hide # Colorizer size: full or compact colorizer_size=full # Action for rootmenucolors: accent or select rootcolors=select # Different colors for each/some Conkys: yes or no conky_diff_colors=no # Gradients: change openbox theme? (active window titlebar) gradient_obtheme=yes # Gradients: change menu/panels background? gradient_menu=no EOF fi source "$CNF_FILE" case "$LANG" in pl*) REGENERATE="(Re)Generuj z kolorów tapety..." REGENERATEALL="Regeneruj wszystko" ASCONFIGURED="wg konfiguracji" REVERSE="odwrotnie" CURRENTCONF="Obecna konfiguracja" MODULES="Moduły" OBTHEME="Motyw Openbox" MENUPANELS="Menu i Panele" CAVA="Cava - wizualizacja dźwięku" TERMINALTHEME="Motyw terminala" WALLCOLORS="Kolory z tapety" ACCENTINFO="ustaw kolor akcentu..." SELECT_ACTION="wybierz działanie..." COLOR="Kolor" SETACCENT="Ustaw kolor akcentu" ACTIVE_WIN="aktywne okno..." OB_ACTIVE_BG="Tło paska tytułowego" OB_ACTIVE_BGTO="Tło paska tytułowego 2 (dla gradientu)" OB_ACTIVE_TEXT="Tytuł aktywnego okna" OB_ACTIVE_BORDER="Obramowanie" INACTIVE_WIN="nieaktywne okno..." OB_INACTIVE_BG="Tło paska tytułowego" OB_INACTIVE_BGTO="Tło paska tytułowego 2 (dla gradientu)" OB_INACTIVE_TEXT="Tytuł nieaktywnego okna" OB_INACTIVE_BORDER="Obramowanie" CONKY_BGCOLOR_ALL="Kolor tła (wszystkie)" RUNNING_CONKYS="działające Conky..." BGCOLOR_OF="Kolor tła dla" MENU_BGCOLOR="Kolor tła menu" MENU_SEP_BG="Kolor tła separatora/nagłówka" MENU_ACTIVE_BG="Kolor aktywnej pozycji (akcent)" MENU_ITEM_FG="Kolor elementu menu" MENU_BORDER="Kolor obramowania menu" ACCENT_COLORS="Popularne kolory akcentu" EDIT_PALETTE="Edytuj paletę kolorów" RANDWALL="Ustaw losową tapetę" SYSWALLPAPER="Tapety systemowe" USERWALLPAPER="Tapety użytkownika" GRADIENTS="Gradienty" PRE_GRADIENTS="Gradienty" GRAD_OB="Stosować do motywu OpenBox?" GRAD_MENU="Stosować do Menu/Paneli?" GRAD_CONKY="Stosować do Conky?" SETTINGS_AND_HELP="Pomoc i Ustawienia" SETTINGS="Ustawienia" COLORIZER_SETTINGS="Ustawienia Colorizera" AUTOGEN_THEMES="Autogenerowanie motywów?" GENERATETHEMES="Generować motywy po zmianie tapety?" GENOB="Pokolorować Dekoracje Okien?" GENMENU="Pokolorować menu i panele?" GENCONKY="Pokolorować Conky?" GENPYRADIO="Pokolorować PyRadio?" EDITCONF="Edytuj plik konfiguracyjny" RESET="Resetuj ustawienia Colorizera" YES="Tak" NO="Nie" LIGHTBG="light - jasne tło" DARKBG="dark - ciemne tło" OTHERTOOLS="Powiązane narzędzia" ADDLAUNCHER="Dodaj uruchamiacz Colorizera do panelu" DELETELAUNCHER="Usuń uruchamiacz Colorizera z panelu" HEIGHT="Wysokość Colorizera" FULL="full - pełna wysokość" COMPACT="compact - kompaktowa" OTHER_SETTINGS="Inne ustawienia" SHOW_RELATED="Pokazuj powiązane?" SHOW="show - pokaż" HIDE="hide - ukryj" EDIT_RELATED="Edytuj powiązane" RESET_RELATED="Resetuj powiązane" LXAPPEARANCE="Motyw GTK i ikony" THEMEMANAGER="Zarządzaj motywami" WALLPAPERS="Katalogi z tapetami" OPENDIR="Otwórz katalog w menadżerze plików" OPENDIR_VIEWNIOR="Otwórz katalog w przeglądarce obrazków" SETRANDOM="Ustaw losową" CHANGE="Zmień" USERDIR_NOT_EXIST="kalalog nie istnieje" CREATE_USERDIR="Utwórz katalog" ROOTMENU_COLORS_ACTION="Akcja dla kolorów w menu głównym" ACCENT="accent - zmień kolor akcentu" SELECT="select - wybierz akcję..." DIFF_CONKY_COLORS="Różne kolory dla Conky" HELP="Okno główne i Pomoc" RESET_COLORS="Resetuj kolory" RESET_CHOOSE="Resetuj..." RESET_SEP="Resetuj kolory dla" RES_OB_WD="Dekoracje okien OpenBox" RES_CONKY="Conky" RES_MENU="Menu i Paneli" RES_ALL="Wszystko (OB, menu, conky)" COLORIZE="Pokoloruj..." ;; *) REGENERATE="(Re)Generate from wallpaper colors..." REGENERATEALL="Regenerate all" ASCONFIGURED="as configured" REVERSE="reverse" CURRENTCONF="Current configuration" MODULES="Modules" OBTHEME="Openbox Theme" MENUPANELS="Menus/Panels" CAVA="Cava - Audio Visualizer" TERMINALTHEME="Terminal color scheme" WALLCOLORS="Wallpaper Colors" ACCENTINFO="click to set accent color" SELECT_ACTION="select action..." COLOR="Color" SETACCENT="Set accent color" ACTIVE_WIN="active window..." OB_ACTIVE_BG="Background" OB_ACTIVE_BGTO="Background 2 (for gradients)" OB_ACTIVE_TEXT="Title text color" OB_ACTIVE_BORDER="Border" INACTIVE_WIN="inactive window..." OB_INACTIVE_BG="Background" OB_INACTIVE_BGTO="Background 2 (for gradients)" OB_INACTIVE_TEXT="Title text color" OB_INACTIVE_BORDER="Border" CONKY_BGCOLOR_ALL="Background color (all)" RUNNING_CONKYS="running Conkys..." BGCOLOR_OF="Background color for" MENU_BGCOLOR="Menu Background" MENU_SEP_BG="Separator/Title Background" MENU_ACTIVE_BG="Active item Background (accent)" MENU_ITEM_FG="Item Foreground" MENU_BORDER="Menu Border Color" ACCENT_COLORS="Popular accent colors" EDIT_PALETTE="Edit color palette" RANDWALL="Set random wallpaper" SYSWALLPAPER="System Wallpapers" USERWALLPAPER="User Wallpapers" GRADIENTS="Gradients" PRE_GRADIENTS="Gradients" GRAD_OB="Apply to OpenBox theme?" GRAD_MENU="Apply to Menu/Panels?" GRAD_CONKY="Apply to Conkies?" SETTINGS_AND_HELP="Settings and Help" SETTINGS="Settings" COLORIZER_SETTINGS="Colorizer Settings" AUTOGEN_THEMES="Autogenerate themes?" GENERATETHEMES="Generate themes on wallpaper change?" GENOB="Colorize Window Decorations?" GENMENU="Colorize Menus and Panels?" GENCONKY="Colorize Conky?" GENPYRADIO="Colorize PyRadio?" EDITCONF="Edit config file" RESET="Reset to defaults" YES="Yes" NO="No" LIGHTBG="with light background" DARKBG="with dark background" OTHERTOOLS="Related tools" ADDLAUNCHER="Add Colorizer launcher to panel" DELETELAUNCHER="Delete Colorizer from panel" HEIGHT="Height of Colorizer" FULL="full" COMPACT="compact" OTHER_SETTINGS="Other settings" SHOW_RELATED="Show related tools?" SHOW="show" HIDE="hide" EDIT_RELATED="Edit related tools" RESET_RELATED="Restet related tools" LXAPPEARANCE="GTK theme and icons" THEMEMANAGER="Theme manager" WALLPAPERS="Wallpapers directories" OPENDIR="Open directory in file manager" OPENDIR_VIEWNIOR="Open directory in Image viewer" SETRANDOM="Set random" CHANGE="Change" USERDIR_NOT_EXIST="directory does not exist" CREATE_USERDIR="Create directory" ROOTMENU_COLORS_ACTION="Rootmenu Colors Action" ACCENT="accent - chenge accent color" SELECT="select - select action" DIFF_CONKY_COLORS="Different colors for each Conky" HELP="Main Window and Help" RESET_COLORS="Reset Colors" RESET_CHOOSE="Reset..." RESET_SEP="Reset Colors of ..." RES_OB_WD="OpenBox Window Decorations" RES_CONKY="Conkies" RES_MENU="Menus / Panels" RES_ALL="All (OB, menus, conky)" COLORIZE="Colorize..." ;; esac if [ ! -f $CUSTOM_COMMANDS_FILE ]; then cat < ${CUSTOM_COMMANDS_FILE} ^sep($OTHERTOOLS) Tint2 Menu,^pipe(jgtint2-pipe) #$WALLPAPERS,^pipe(jgwallpaperchanger) $TERMINALTHEME,^term(theme.sh -i2;/bin/bash) $LXAPPEARANCE,lxappearance $THEMEMANAGER,mb-obthemes Color Menu,colormenu EOF fi 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" if [[ "${#w[@]}" -lt 8 ]]; then w+=("#2e3440" "#4c566a" "#5e81ac" "#bf616b" "#b48ead" "#a3be8c" "#ebcb8b" "#d8dee9" "#eceff4") fi #Accent colors plasma=("#e93a9a" "#e93d58" "#e9643a" "#e8cb2d" "#3dd425" "#00d3b8" "#3daee9" "#b875dc" "#926ee4" "#686b6f") ubuntu=("#E95420" "#18b0b0" "#3584e4" "#0e8420" "#c748ba" "#77216f" "#c7162b" "#f4a100") mint+=("#6cabcd" "#5b73c4" "#aa876a" "#9d9d9d" "#db9d61" "#c76199" "#8c6ec9" "#c15b58" "#c8ac69" "#5aaa9a") out+=("^sep(Mabox Colorizer)") out+=(" $SETTINGS,^checkout(settings)") LNG=${LANG:0:2} if [[ -f "/usr/share/mabox-colorizer/help/$LNG.html" ]];then out+=(" $HELP,yhtml /usr/share/mabox-colorizer/help/$LNG.html 'Mabox Colorizer'") else out+=(" $HELP,yhtml /usr/share/mabox-colorizer/help/en.html 'Mabox Colorizer'") fi out+=("^sep()") out+=(" $COLORIZE,^pipe(randomizer c)") out+=("^sep($MODULES)") out+=("$OBTHEME,^pipe(colorizer-ob)") out+=("Conky Manager,^pipe(colorizer-conky)") out+=("$MENUPANELS,^pipe(colorizer-menus)") #out+=("TINT2,^pipe(colorizer-tint2)") #out+=("Systray HW monitor,^pipe(colorizer-phwmon)") if pgrep -f pyradio >/dev/null ;then out+=("^sep()") out+=("PyRadio,^pipe(colorizer-pyradio)") fi if pgrep -f cava >/dev/null ;then out+=("^sep()") out+=("$CAVA,^pipe(colorizer-cava)") fi out+=("^sep($WALLCOLORS)") out+=("北 $REGENERATE,^checkout(regen)") out2+=("^tag(regen)") out2+=("^sep($REGENERATEALL)") out2+=(" $ASCONFIGURED,w2theme colorize;colorizer -s") out2+=(" $REVERSE,w2theme reverse;colorizer -s") #out2+=("^sep($CURRENTCONF)") #out2+=("$MENUPANELS [ ${wall2themes_menu} ],^checkout(mp)") #out2+=("Conky [ ${wall2themes_conky} ],^checkout(conky)") #out2+=("PyRadio [ ${wall2themes_pyradio} ],^checkout(pyradio)") [[ $rootcolors = select ]]&& out+=("^sep($SELECT_ACTION)")||out+=("^sep($ACCENTINFO)") n=0 for i in "${w[@]}" do if [ $rootcolors = select ];then ((n+=1)) out+=("$i ,^checkout(${i:1}${n}") out2+=("^tag(${i:1}${n})") out2+=("^sep($COLOR $i )") out2+=("$SETACCENT,w2theme accent '${i}';colorizer -s") out2+=("^sep(OpenBox)") out2+=("^sep($ACTIVE_WIN)") out2+=("$OB_ACTIVE_BG,obtctl clractivebg '${i}';colorizer -s") out2+=("$OB_ACTIVE_BGTO,obtctl clractivebgto '${i}';colorizer -s") out2+=("$OB_ACTIVE_TEXT,obtctl activetextcolor '${i}';colorizer -s") out2+=("$OB_ACTIVE_BORDER,obtctl activeborderColor '${i}';colorizer -s") out2+=("^sep($INACTIVE_WIN)") out2+=("$OB_INACTIVE_BG,obtctl clrnormalbg '${i}';colorizer -s") out2+=("$OB_INACTIVE_BGTO,obtctl clrnormalbgto '${i}';colorizer -s") out2+=("$OB_INACTIVE_TEXT,obtctl inactivetextcolor '${i}';colorizer -s") out2+=("$OB_INACTIVE_BORDER,obtctl inactiveborderColor '${i}';colorizer -s") out2+=("^sep($MENUPANELS)") out2+=("$MENU_BGCOLOR,jgctl color_menu_bg '${i}';colorizer -s") out2+=("$MENU_SEP_BG,jgctl color_title_bg '${i}';colorizer -s") out2+=("$MENU_ITEM_FG,jgctl color_norm_fg '${i}';colorizer -s") out2+=("$MENU_ACTIVE_BG,jgctl color_sel_bg '${i}';colorizer -s") out2+=("$MENU_BORDER,jgctl color_menu_border '${i}';colorizer -s") out2+=("^sep(Conky)") out2+=("$CONKY_BGCOLOR_ALL,conkyctl win_bgcolor_all '${i}';colorizer -s") # array with running conkies - only filenames with full path readarray -t running < <(pgrep -af "conky.*mbcolor" | cut -d' ' -f4) if [[ ${#running[@]} > 0 ]];then out2+=("^sep($RUNNING_CONKYS)") for c in ${running[@]};do filename=${c##*/} name=${filename%%_mb*} title=${name//_/ } out2+=("$BGCOLOR_OF ${title^},conkyctl win_bgcolor '${i}' '${c}';colorizer -s") done fi else out+=("$i ,w2theme accent '${i}';colorizer -s") fi done out+=("^sep()") out+=("$ACCENT_COLORS,^checkout(acccolors)") out2+=("^tag(acccolors)") out2+=("^sep(Ubuntu)") for i in ${ubuntu[@]};do if [ $rootcolors = select ];then ((n+=1)) out2+=("$i ,^checkout(${i:1}${n}") out3+=("^tag(${i:1}${n})") out3+=("^sep($COLOR $i )") out3+=("$SETACCENT,w2theme accent '${i}';colorizer -s") out3+=("^sep(OpenBox)") out3+=("^sep($ACTIVE_WIN)") out3+=("$OB_ACTIVE_BG,obtctl clractivebg '${i}';colorizer -s") out3+=("$OB_ACTIVE_BGTO,obtctl clractivebgto '${i}';colorizer -s") out3+=("$OB_ACTIVE_TEXT,obtctl activetextcolor '${i}';colorizer -s") out3+=("$OB_ACTIVE_BORDER,obtctl activeborderColor '${i}';colorizer -s") out3+=("^sep($INACTIVE_WIN)") out3+=("$OB_INACTIVE_BG,obtctl clrnormalbg '${i}';colorizer -s") out3+=("$OB_INACTIVE_BGTO,obtctl clrnormalbgto '${i}';colorizer -s") out3+=("$OB_INACTIVE_TEXT,obtctl inactivetextcolor '${i}';colorizer -s") out3+=("$OB_INACTIVE_BORDER,obtctl inactiveborderColor '${i}';colorizer -s") out3+=("^sep($MENUPANELS)") out3+=("$MENU_BGCOLOR,jgctl color_menu_bg '${i}';colorizer -s") out3+=("$MENU_SEP_BG,jgctl color_title_bg '${i}';colorizer -s") out3+=("$MENU_ITEM_FG,jgctl color_norm_fg '${i}';colorizer -s") out3+=("$MENU_ACTIVE_BG,jgctl color_sel_bg '${i}';colorizer -s") out3+=("$MENU_BORDER,jgctl color_menu_border '${i}';colorizer -s") out3+=("^sep(Conky)") out3+=("$CONKY_BGCOLOR_ALL,conkyctl win_bgcolor_all '${i}';colorizer -s") # array with running conkies - only filenames with full path readarray -t running < <(pgrep -af "conky.*mbcolor" | cut -d' ' -f4) if [[ ${#running[@]} > 0 ]];then out3+=("^sep($RUNNING_CONKYS)") for c in ${running[@]};do filename=${c##*/} name=${filename%%_mb*} title=${name//_/ } out3+=("$BGCOLOR_OF ${title^},conkyctl win_bgcolor '${i}' '${c}';colorizer -s") done fi else out2+=("$i ,w2theme accent '${i}';colorizer -s") fi done out2+=("^sep(Mint)") for i in ${mint[@]};do if [ $rootcolors = select ];then ((n+=1)) out2+=("$i ,^checkout(${i:1}${n}") out3+=("^tag(${i:1}${n})") out3+=("^sep($COLOR $i )") out3+=("$SETACCENT,w2theme accent '${i}';colorizer -s") out3+=("^sep(OpenBox)") out3+=("^sep($ACTIVE_WIN)") out3+=("$OB_ACTIVE_BG,obtctl clractivebg '${i}';colorizer -s") out3+=("$OB_ACTIVE_BGTO,obtctl clractivebgto '${i}';colorizer -s") out3+=("$OB_ACTIVE_TEXT,obtctl activetextcolor '${i}';colorizer -s") out3+=("$OB_ACTIVE_BORDER,obtctl activeborderColor '${i}';colorizer -s") out3+=("^sep($INACTIVE_WIN)") out3+=("$OB_INACTIVE_BG,obtctl clrnormalbg '${i}';colorizer -s") out3+=("$OB_INACTIVE_BGTO,obtctl clrnormalbgto '${i}';colorizer -s") out3+=("$OB_INACTIVE_TEXT,obtctl inactivetextcolor '${i}';colorizer -s") out3+=("$OB_INACTIVE_BORDER,obtctl inactiveborderColor '${i}';colorizer -s") out3+=("^sep($MENUPANELS)") out3+=("$MENU_BGCOLOR,jgctl color_menu_bg '${i}';colorizer -s") out3+=("$MENU_SEP_BG,jgctl color_title_bg '${i}';colorizer -s") out3+=("$MENU_ITEM_FG,jgctl color_norm_fg '${i}';colorizer -s") out3+=("$MENU_ACTIVE_BG,jgctl color_sel_bg '${i}';colorizer -s") out3+=("$MENU_BORDER,jgctl color_menu_border '${i}';colorizer -s") out3+=("^sep(Conky)") out3+=("$CONKY_BGCOLOR_ALL,conkyctl win_bgcolor_all '${i}';colorizer -s") # array with running conkies - only filenames with full path readarray -t running < <(pgrep -af "conky.*mbcolor" | cut -d' ' -f4) if [[ ${#running[@]} > 0 ]];then out3+=("^sep($RUNNING_CONKYS)") for c in ${running[@]};do filename=${c##*/} name=${filename%%_mb*} title=${name//_/ } out3+=("$BGCOLOR_OF ${title^},conkyctl win_bgcolor '${i}' '${c}';colorizer -s") done fi else out2+=("$i ,w2theme accent '${i}';colorizer -s") fi done out2+=("^sep(Plasma)") for i in ${plasma[@]};do if [ $rootcolors = select ];then ((n+=1)) out2+=("$i ,^checkout(${i:1}${n}") out3+=("^tag(${i:1}${n})") out3+=("^sep($COLOR $i )") out3+=("$SETACCENT,w2theme accent '${i}';colorizer -s") out3+=("^sep(OpenBox)") out3+=("^sep($ACTIVE_WIN)") out3+=("$OB_ACTIVE_BG,obtctl clractivebg '${i}';colorizer -s") out3+=("$OB_ACTIVE_BGTO,obtctl clractivebgto '${i}';colorizer -s") out3+=("$OB_ACTIVE_TEXT,obtctl activetextcolor '${i}';colorizer -s") out3+=("$OB_ACTIVE_BORDER,obtctl activeborderColor '${i}';colorizer -s") out3+=("^sep($INACTIVE_WIN)") out3+=("$OB_INACTIVE_BG,obtctl clrnormalbg '${i}';colorizer -s") out3+=("$OB_INACTIVE_BGTO,obtctl clrnormalbgto '${i}';colorizer -s") out3+=("$OB_INACTIVE_TEXT,obtctl inactivetextcolor '${i}';colorizer -s") out3+=("$OB_INACTIVE_BORDER,obtctl inactiveborderColor '${i}';colorizer -s") out3+=("^sep($MENUPANELS)") out3+=("$MENU_BGCOLOR,jgctl color_menu_bg '${i}';colorizer -s") out3+=("$MENU_SEP_BG,jgctl color_title_bg '${i}';colorizer -s") out3+=("$MENU_ITEM_FG,jgctl color_norm_fg '${i}';colorizer -s") out3+=("$MENU_ACTIVE_BG,jgctl color_sel_bg '${i}';colorizer -s") out3+=("$MENU_BORDER,jgctl color_menu_border '${i}';colorizer -s") out3+=("^sep(Conky)") out3+=("$CONKY_BGCOLOR_ALL,conkyctl win_bgcolor_all '${i}';colorizer -s") # array with running conkies - only filenames with full path readarray -t running < <(pgrep -af "conky.*mbcolor" | cut -d' ' -f4) if [[ ${#running[@]} > 0 ]];then out3+=("^sep($RUNNING_CONKYS)") for c in ${running[@]};do filename=${c##*/} name=${filename%%_mb*} title=${name//_/ } out3+=("$BGCOLOR_OF ${title^},conkyctl win_bgcolor '${i}' '${c}';colorizer -s") done fi else out2+=("$i ,w2theme accent '${i}';colorizer -s") fi done ### TODO Rework below as submenu(edit palette and present palette with HTML helper- to keep it on desktop, allowing to copy colors from it) ##out+=("^sep()") ##out+=(" $EDIT_PALETTE,xdg-open $WALLPALDIR/$WALLPAPER.clr") # Przerobić na submenu #if [[ "$wall2themes" == "yes" ]];then out+=("^sep($RANDWALL)") syswallp=$(shopt -s nullglob ; set -- /usr/share/backgrounds/*.{jpg,JPG,jpeg,JPEG,png,PNG} ; echo $#) out+=(" $SYSWALLPAPER (${syswallp}),nitrogen --random /usr/share/backgrounds --set-scaled --save;colorizer -s") if [[ -d "${user_wallpapers_dir}" ]]; then userwallp=$(shopt -s nullglob ; set -- $user_wallpapers_dir/*.{jpg,JPG,jpeg,JPEG,png,PNG} ; echo $#) out+=(" $USERWALLPAPER (${userwallp}),nitrogen --random ${user_wallpapers_dir} --set-scaled --save;colorizer -s") fi out+=("^sep()") out+=("$WALLPAPERS,^checkout(wallpapersettings)") #fi if [[ "$gradient_obtheme" == "yes" || "$gradient_menu" == "yes" ]];then [[ "$gradient_obtheme" == "yes" ]] && OBGRAD="OB" || OBGRAD="" [[ "$gradient_menu" == "yes" ]] && MENUGRAD="menus" || MENUGRAD="" out+=("^sep($GRADIENTS $OBGRAD $MENUGRAD)") out+=(" $PRE_GRADIENTS,^pipe(mbgrad)") fi ### RESET ACTIONS (replaced by Randomizer) #out+=("^sep($RESET_COLORS)") #out+=("$RESET_CHOOSE,^checkout(resetroot)") #out2+=("^tag(resetroot)") #out2+=("^sep($RESET_SEP)") #out2+=("$RES_OB_WD,obtctl resetMBcolors;colorizer -s") #out2+=("$RES_MENU,jgctl reset;colorizer -s") #out2+=("$RES_CONKY,conkyctl resetcolorsall;colorizer -s") #out2+=("^sep()") #out2+=("\"\"\"$RES_ALL\"\"\",obtctl resetMBcolors;conkyctl resetcolorsall;jgctl reset;colorizer -s") if [[ "$related_tools" == "show" ]];then out+=(". $CUSTOM_COMMANDS_FILE") fi ### FUTURE: SAVE AND RESTORE #out+=("^sep()") #out+=("Pin current colors to wallpaper") ### out2+=("^tag(settings)") out2+=("^sep($AUTOGEN_THEMES)") out2+=(" $AUTOGEN_THEMES [ ${wall2themes} ],^checkout(autogen)") out3+=("^tag(autogen") out3+=("^sep($GENERATETHEMES)") out3+=("$YES,mb-setvar wall2themes=yes $CNF_FILE;colorizer -s") out3+=("$NO,mb-setvar wall2themes=no $CNF_FILE;colorizer -s") out2+=("^sep()") out2+=("$OBTHEME [ ${wall2themes_ob} ],^checkout(ob)") out3+=("^tag(ob)") out3+=("^sep($GENOB)") out3+=("$NO,mb-setvar wall2themes_ob=none $CNF_FILE;colorizer -s") out3+=("^sep()") out3+=("$LIGHTBG,mb-setvar wall2themes_ob=light $CNF_FILE;colorizer -s") out3+=("$DARKBG,mb-setvar wall2themes_ob=dark $CNF_FILE;colorizer -s") out2+=("$MENUPANELS [ ${wall2themes_menu} ],^checkout(mp)") out3+=("^tag(mp)") out3+=("^sep($GENMENU)") out3+=("$NO,mb-setvar wall2themes_menu=none $CNF_FILE;colorizer -s") out3+=("^sep()") out3+=("$LIGHTBG,mb-setvar wall2themes_menu=light $CNF_FILE;colorizer -s") out3+=("$DARKBG,mb-setvar wall2themes_menu=dark $CNF_FILE;colorizer -s") out2+=("Conky [ ${wall2themes_conky} ],^checkout(conky)") out3+=("^tag(conky)") out3+=("^sep($GENCONKY)") out3+=("$NO,mb-setvar wall2themes_conky=none $CNF_FILE;colorizer -s") out3+=("^sep()") out3+=("$LIGHTBG,mb-setvar wall2themes_conky=light $CNF_FILE;colorizer -s") out3+=("$DARKBG,mb-setvar wall2themes_conky=dark $CNF_FILE;colorizer -s") #out2+=("$DIFF_CONKY_COLORS [ $conky_diff_colors ],^checkout(conkycolors)") #out3+=("^tag(conkycolors)") #out3+=("^sep($DIFF_CONKY_COLORS)") #out3+=("$YES,mb-setvar conky_diff_colors=yes $CNF_FILE;colorizer -s") #out3+=("$NO,mb-setvar conky_diff_colors=no $CNF_FILE;colorizer -s") out2+=("PyRadio [ ${wall2themes_pyradio} ],^checkout(pyradio)") out3+=("^tag(pyradio)") out3+=("^sep($GENPYRADIO)") out3+=("$NO,mb-setvar wall2themes_pyradio=none $CNF_FILE;colorizer -s") out3+=("^sep()") out3+=("$LIGHTBG,mb-setvar wall2themes_pyradio=light $CNF_FILE;colorizer -s") out3+=("$DARKBG,mb-setvar wall2themes_pyradio=dark $CNF_FILE;colorizer -s") #out2+=("^sep()") #out2+=("$WALLPAPERS,^checkout(wallpapersettings)") out3+=("^tag(wallpapersettings)") out3+=("^sep($SYSWALLPAPER ($syswallp))") out3+=("^sep(/usr/share/backgrounds)") out3+=(" $OPENDIR,xdg-open /usr/share/backgrounds") out3+=(" $OPENDIR_VIEWNIOR,viewnior /usr/share/backgrounds") out3+=(" $SETRANDOM,nitrogen --random /usr/share/backgrounds --set-scaled --save;colorizer -s") out3+=("^sep($USERWALLPAPER ($userwallp))") if [[ -d "${user_wallpapers_dir}" ]]; then # dir exist out3+=("^sep(${user_wallpapers_dir})") out3+=(" $OPENDIR ,xdg-open ${user_wallpapers_dir}") out3+=(" $OPENDIR_VIEWNIOR ,viewnior ${user_wallpapers_dir}") out3+=(" $SETRANDOM,nitrogen --random ${user_wallpapers_dir} --set-scaled --save;colorizer -s") out3+=("^sep()") out3+=(" $CHANGE ($EDITCONF),xdg-open $CNF_FILE") else # dir not exist out3+=("^sep(${user_wallpapers_dir} - $USERDIR_NOT_EXIST") out3+=(" $CREATE_USERDIR,mkdir -p ${user_wallpapers_dir};colorizer -s") out3+=(" $CHANGE ($EDITCONF),xdg-open $CNF_FILE") fi out2+=("^sep($GRADIENTS)") out2+=("$GRAD_OB [ ${gradient_obtheme} ],^checkout(grad_ob)") out3+=("^tag(grad_ob") out3+=("^sep($GRAD_OB)") out3+=("$YES,mb-setvar gradient_obtheme=yes $CNF_FILE;colorizer -s") out3+=("$NO,mb-setvar gradient_obtheme=no $CNF_FILE;colorizer -s") out2+=("$GRAD_MENU [ ${gradient_menu} ],^checkout(grad_menu)") out3+=("^tag(grad_menu") out3+=("^sep($GRAD_MENU)") out3+=("$YES,mb-setvar gradient_menu=yes $CNF_FILE;colorizer -s") out3+=("$NO,mb-setvar gradient_menu=no $CNF_FILE;colorizer -s") out2+=("$GRAD_CONKY [ ${gradient_conkies} ],^checkout(grad_conky)") #out3+=("^tag(grad_conky") #out3+=("^sep($GRAD_CONKY)") #out3+=("$YES,mb-setvar gradient_conkies=yes $CNF_FILE;colorizer -s") #out3+=("$NO,mb-setvar gradient_conkies=no $CNF_FILE;colorizer -s") out2+=("^sep($OTHER_SETTINGS)") #out2+=("^sep($COLORIZER_SETTINGS)") #if [[ -f "$HOME/.config/tint2/launcherapps/colorizer.desktop" ]]; then #out2+=("$DELETELAUNCHER,rm ~/.config/tint2/launcherapps/colorizer.desktop;killall -SIGUSR1 tint2;colorizer -s") #else #out2+=("$ADDLAUNCHER,cp /usr/share/applications/colorizer.desktop ~/.config/tint2/launcherapps/;killall -SIGUSR1 tint2;colorizer -s") #fi out2+=("$ROOTMENU_COLORS_ACTION [ $rootcolors ],^checkout(rootcolors)") out3+=("^tag(rootcolors)") out3+=("^sep($ROOTMENU_COLORS_ACTION)") out3+=("$ACCENT,mb-setvar rootcolors=accent $CNF_FILE;colorizer -s") out3+=("$SELECT,mb-setvar rootcolors=select $CNF_FILE;colorizer -s") out2+=("$HEIGHT [ ${colorizer_size} ],^checkout(csize)") out3+=("^tag(csize)") out3+=("^sep($HEIGHT)") out3+=("$FULL,mb-setvar colorizer_size=full $CNF_FILE;colorizer -s") out3+=("$COMPACT,mb-setvar colorizer_size=compact $CNF_FILE;colorizer -s") out2+=("$SHOW_RELATED [ ${related_tools} ],^checkout(related)") out3+=("^tag(related)") out3+=("^sep($SHOW_RELATED)") out3+=("$SHOW,mb-setvar related_tools=show $CNF_FILE;colorizer -s") out3+=("$HIDE,mb-setvar related_tools=hide $CNF_FILE;colorizer -s") out3+=("^sep()") out3+=(" $EDIT_RELATED,xdg-open $CUSTOM_COMMANDS_FILE") out3+=(" $RESET_RELATED,rm $CUSTOM_COMMANDS_FILE;colorizer -s") out2+=("^sep()") out2+=(" $EDITCONF,xdg-open $CNF_FILE") out2+=(" $RESET,rm $CNF_FILE;colorizer -s") ### RUN if [[ "$1" == "-s" ]]; then . /usr/share/mb-jgtools/pipemenu-standalone.cfg . $HOME/.config/mabox/mabox.conf 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 [ $(pidof picom) ] && MENU_RADIUS=$jgtools_radius [ -z $jgmenu_use_borders ] && menu_border=0 JGWIDTH=$((jgtools_padding + 278 + jgtools_padding)) MENU_PADDING_TOP=$((jgtools_padding + 158)) THUMBDIR="$HOME/.cache/colorizer/thumbs" mkdir -p ${THUMBDIR} THUMB="${THUMBDIR}/${NAME}.png" if [[ ! -f "$THUMB" ]] then convert ${WALLPATH} -resize 270x150^ -gravity center -extent 270x150 ${THUMB} fi # colors n=0 m=0 X=$((jgtools_padding + 12)) Y=$((jgtools_padding + 104)) for i in "${w[@]}" do if [[ "$n" -lt "10" ]];then dots+=("@rect,,$((X + 25*n)),$((Y)),22,22,1,left,top,#FFFFFF 60,${i} 100,") else dots+=("@rect,,$((X + 25*m)),$((Y+24)),22,22,1,left,top,#FFFFFF 80,${i} 100,") ((m=m+1)) fi ((n=n+1)) done mkconfigfile #THUMB="$(DISPLAY=:0 scrot -t 220x100 -o $HOME/.config/mabox/colorizer.png -e 'echo $m')" case "$LANG" in pl*) THGEN="generuj motywy:";; *) THGEN="auto theming:";; esac if [ "$wall2themes" = "yes" ]; then FGCOL="limegreen" case "$LANG" in pl*) STATE="on";; *) STATE="on";; esac else FGCOL="red" case "$LANG" in pl*) STATE="off";; *) STATE="off";; esac fi cat < ${MENU_ITEMS} @icon,,$((jgtools_padding + 4)),$((jgtools_padding + 4)),270,150,4,left,top,,,${THUMB} @rect,,$((jgtools_padding + 4)),$((jgtools_padding + 8)),270,20,0,left,top,#222222 20,#222222 70, @rect,,$((jgtools_padding + 4)),$((jgtools_padding + 120)),270,34,0,left,top,#222222 20,#222222 70, @text,,$((jgtools_padding + 12)),$((jgtools_padding + 2)),270,30,0,left,top,#FFFFFF ,${WINCLR}, ${THGEN} $STATE @text,,$((jgtools_padding + 198)),$((jgtools_padding + 124)),120,30,0,left,top,#FFFFFF ,${WINCLR},Colorizer $(printf '%s\n' "${dots[@]}") #@icon,,$((jgtools_padding + 4)),$((jgtools_padding + 34)),270,120,4,left,top,,,/usr/share/mabox-colorizer/img/colorizer.png $(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[@]}"