#!/bin/bash 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 # 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=compact EOF # Copy new nitrogen wrapper cp -a /usr/share/mabox/common/wrappers/nitrogen ~/.local/bin/ fi source "$CNF_FILE" case "$LANG" in pl*) REGENERATE="Regeneruj..." REGENERATEALL="Regeneruj wszystko" ASCONFIGURED="wg konfiguracji" REVERSE="odwrotnie" CURRENTCONF="Obecna konfiguracja" MODULES="Moduły" OBTHEME="Motyw Openbox" MENUPANELS="Menu i Panele" TERMINALTHEME="Motyw terminala" WALLCOLORS="Kolory z tapety" ACCENTINFO="ustaw kolor akcentu" ACCENT_COLORS="Popularne kolory akcentu" EDIT_PALETTE="Edytuj paletę kolorów" RANDWALL="Ustaw losową tapetę" SYSWALLPAPER="Tapety systemowe" USERWALLPAPER="Tapety użytkownika" SETTINGS_AND_HELP="Pomoc i Ustawienia" SETTINGS="Ustawienia" COLORIZER_SETTINGS="Ustawienia Colorizera" AUTOGEN_THEMES="Autogenerowanie motywów?" 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" HELP="Pomoc" ;; *) REGENERATE="Regenerate..." REGENERATEALL="Regenerate all" ASCONFIGURED="as configured" REVERSE="reverse" CURRENTCONF="Current configuration" MODULES="Modules" OBTHEME="Openbox Theme" MENUPANELS="Menus/Panels" TERMINALTHEME="Terminal color scheme" WALLCOLORS="Wallpaper Colors" ACCENTINFO="click to set accent color" ACCENT_COLORS="Popular accent colors" EDIT_PALETTE="Edit color palette" RANDWALL="Set random wallpaper" SYSWALLPAPER="System Wallpapers" USERWALLPAPER="User Wallpapers" SETTINGS_AND_HELP="Settings and Help" SETTINGS="Settings" COLORIZER_SETTINGS="Colorizer Settings" AUTOGEN_THEMES="Autogenerate themes?" 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" HELP="About and Help" ;; 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/.config/colormenu/palettes/wallp" mkdir -p "$WALLPALDIR" read WALLPATH<<< $(grep file "$HOME"/.config/nitrogen/bg-saved.cfg | cut -d'=' -f2) WALLPAPER=${WALLPATH##*/} if [ ! -f "$WALLPALDIR/$WALLPAPER.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/$WALLPAPER.clr" fi mapfile -t w < "$WALLPALDIR/$WALLPAPER.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+=("$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)") out+=("^sep($MODULES)") out+=("$OBTHEME,^pipe(colorizer-ob)") out+=("$MENUPANELS,^pipe(colorizer-menus)") #out+=("TINT2,^pipe(colorizer-tint2)") out+=("Conky,^pipe(colorizer-conky)") #out+=("Systray HW monitor,^pipe(colorizer-phwmon)") out+=("^sep()") out+=("PyRadio,^pipe(colorizer-pyradio)") #out+=("GTKTHEME,^pipe(colorizer-gtktheme)") out+=("^sep($WALLCOLORS)") out+=("^sep($ACCENTINFO)") for i in "${w[@]}" do out+=("$i ,w2theme accent '${i}';colorizer -s") done out+=("^sep()") out+=("$ACCENT_COLORS,^checkout(acccolors)") out2+=("^tag(acccolors)") out2+=("^sep(Ubuntu)") for i in ${ubuntu[@]};do out2+=("$i ,w2theme accent '${i}';colorizer -s");done out2+=("^sep(Mint)") for i in ${mint[@]};do out2+=("$i ,w2theme accent '${i}';colorizer -s");done out2+=("^sep(Plasma)") for i in ${plasma[@]};do out2+=("$i ,w2theme accent '${i}';colorizer -s");done out+=("^sep()") out+=("$EDIT_PALETTE,xdg-open $WALLPALDIR/$WALLPAPER.clr") 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 fi if [[ "$related_tools" == "show" ]];then out+=(". $CUSTOM_COMMANDS_FILE") fi ### FUTURE: SAVE AND RESTORE #out+=("^sep()") #out+=("Pin current colors to wallpaper") ### out+=("^sep($SETTINGS_AND_HELP)") out+=("$SETTINGS,^checkout(settings)") out2+=("^tag(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+=("$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+=("^sep($AUTOGEN_THEMES)") out2+=("$AUTOGEN_THEMES [ ${wall2themes} ],^checkout(autogen)") out3+=("^tag(autogen") out3+=("^sep(GENERATE THEMES ON WALLPAPER CHANGE?)") out3+=("$YES,mb-setvar wall2themes=yes $CNF_FILE;colorizer -s") out3+=("$NO,mb-setvar wall2themes=no $CNF_FILE;colorizer -s") out2+=("^sep()") 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+=("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($OTHER_SETTINGS)") 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)") 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 nit 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+=("$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") 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 Help - Colorizer'") else out+=("$HELP,yhtml /usr/share/mabox-colorizer/help/en.html 'Mabox Help - Colorizer'") fi ### 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 MENU_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/.config/mabox/wallthumbs" mkdir -p ${THUMBDIR} THUMB="${THUMBDIR}/${WALLPAPER}.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')" cat < ${MENU_ITEMS} @icon,,$((jgtools_padding + 4)),$((jgtools_padding + 4)),270,150,4,left,top,,,${THUMB} @rect,,$((jgtools_padding + 4)),$((jgtools_padding + 100)),270,54,0,left,top,#222222 20,#222222 70, @text,,$((jgtools_padding + 168)),$((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[@]}"