#!/bin/bash
#
#    colorizer - set of tools for Mabox (auto)theming
#    Copyright (C) 2022-2026 Daniel Napora    <danieln@maboxlinux.org>
#
#    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 <http://www.gnu.org/licenses/>.

. /usr/share/mb-jgtools/jgtools.inc


MBCOLORSDIR="$HOME"/.themes/MBcolors/openbox-3/
GRADIENT_FILE="$HOME"/.config/colorizer/gradients_all.inc
MORE_GRADIENT_FILE="$HOME"/.config/colorizer/gradients_menu.inc

SYSTHEMES="/usr/share/mabox-colorizer/colorschemes/ob.csv"
USERTHEMES="$HOME/.config/colorizer/openbox/userthemes.csv"

### Wallpaper colors
WALLPALDIR="$HOME/.cache/colorizer/palettes"
mkdir -p "$WALLPALDIR"
read WALLPATH<<< $(grep file "$HOME"/.config/nitrogen/bg-saved.cfg | tail -1 | 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 [ ! -f "$GRADIENT_FILE" ]; then
cp /usr/share/mabox-colorizer/gradients.inc "$GRADIENT_FILE"
fi

if [ ! -d "$MBCOLORSDIR" ]; then
mkdir -p ${MBCOLORSDIR}
rsync -a /usr/share/mabox-colorizer/themes/MBcolors/openbox-3/* ${MBCOLORSDIR}/
fi

OBTHEME=$(awk '/<theme>/ {while (getline n) {if (match(n, /<name>/))
          {l=n; exit}}} END {split(l, a, "[<>]"); print a[3]}' "$HOME/.config/openbox/rc.xml")

THEMERC="$HOME/.themes/$OBTHEME/openbox-3/themerc"
me="colorizer-ob -s"

case "$LANG" in
    pl*)
    QUICK_TWEAKS="Ustawienia główne"
    OVERALL_STYLE="Ogólny styl"
    THEMES="Motywy"
    SYSTEM_THEMES="Systemowe"
    YOUR_THEMES="Moje motywy"
    SAVE_CURRTHEME="Zapisz aktualną kobfigurację jako..."
    OPEN_THEMEFILE="Odwórz plik z motywami w edytorze"
    THEME="Motyw"
    APPLY="Zastosuj"
    APPLY_THEME="Pełny motyw (kolory, czcionki i rozmiar)"
    APPLY_SCHEME="Tylko kolory"
    DELETE="Usuń"
    DELETE_THEME="Usuń motyw"
    OBTHEME_LBL="Motyw OpenBox"
    MONOCHROMATIC="Monochromatyczny"
    CHOOSE_AND_PICK="Wybierz wariant i pobierz kolor..."
    GENERATEFROMWP="Generuj z kolorów tapety..."
    LIGHTBG=" Jasne tło"
    DARKBG="Ciemne tło"
    RANDOMIZE="Generuj losowo"
    TITLEBAR="Pasek tytułowy"
    ACTIVE_WINDOW="Aktywne okno"
    INACTIVE_WINDOW="Nieaktywne okno"
    TITLEBAR_FONT="Czcionka"
    ACTIVE_BG="Tło aktywnego okna"
    INACTIVE_BG="Tło nieaktywnego okna"
    TEXT_COLOR="Kolor tekstu"
    TITLEBAR_TEXT="Tekst paska tytułowego"
    FONT="Czcionka"
    FONTSIZE="Rozmiar czcionki"
    _INCREASE="Powiększ do"
    _DECREASE="Pomniejsz do"
    FONTFAMILY="Czcionka (rodzina)"
    BOLD="Pogrubienie"
    ITALIC="Kursywa"
    TEXTALIGN="Wyrównanie tytułu"
    LEFT="do lewej"
    CENTER="po środku"
    RIGHT="do prawej"
    SHADOW="Cień"
    NOSHADOW="bez cienia"
    DARK="Ciemny"
    LIGHT="Jasny"
    TEXT="Tekst"
    ACTIVE_FG="w aktywnym oknie"
    INACTIVE_FG="w nieaktywnym oknie"
    PADDING="Odstęp"
    VERTICAL="W pionie"
    HORIZONTAL="W poziomie"
    RAISED_OR_FLAT="Płaski, Uniesiony, Wklęsły"
    FLAT="płaski - <b>flat</b>"
    RAISED="uniesiony - <b>raised</b>"
    SUNKEN="wklęsły - <b>sunken</b>"
    BUTTONS_LBL="Przyciski"
    BUTTONS_LAYOUT="Układ przycisków"
    LEGEND="Legenda"
    GRADIENT_TYPE="Typ Gradientu"
    SOLID_COLOR="Jednolity kolor (brak gradientu)"
    PRE_GRADIENTS="Gotowe gradienty"
    GRADIENT_REVERSE="Odwróć kolory Gradientu"
    SPLITVERTICAL="Podział w pionie"
    MIRRORHORIZONTAL="LustroPoziome"
    DIAGONAL="Przekątna"
    CROSSDIAGONAL="Przekątna krzyżowa"
    PYRAMID="Piramida"
    ACTIVE_BG_TO="Tło aktywnego okna 2"
    INACTIVE_BG_TO="Tło nieaktywnego okna 2"
    BORDER="Obramowanie okna"
    BORDER_PX="Obramowanie (px)"
    ACTIVE_BORDER="Obramowanie akt. okna"
    INACTIVE_BORDER="Obramowanie nieakt. okna"
    HANDLEWIDTH="Uchwyt - rozmiar"
    ACTIVEHANDLE="Aktywny Uchwyt"
    YES="Tak"
    NO="Nie"
    GRIPONLY="Tylko chwyt (po bokach)"
    RESET="Resetuj"
    RESET_THEME="Resetuj motyw"
    AREYOUSURE="Czy aby na pewno?"
    NOT_SUPORTED_OBTHEME="Nie wspierany motyw"
    UNLOCK="odblokuj swoją kreatywność..."
    SWITCH_TO_MBCOLORS="Przełącz na <b>MBColors</b>"
    _COLORIZER_ROOT="<b>Colorizer</b> - menu główne"
    _LEFTSIDEPANEL="Lewy panel boczny"
    ;;
    *)
    QUICK_TWEAKS="Global Settings/Quick Tweaks"
    OVERALL_STYLE="Overall style"
    THEMES="Themes"
    SYSTEM_THEMES="System themes"
    YOUR_THEMES="My Themes"
    SAVE_CURRTHEME="Save current setup as..."
    OPEN_THEMEFILE="Open themes file in editor"
    THEME="Theme"
    APPLY="Apply"
    APPLY_THEME="Full theme (colors,fonts and sizing)"
    APPLY_SCHEME="Colors only"
    DELETE="Delete"
    DELETE_THEME="Delete theme"
    OBTHEME_LBL="OpenBox theme"
    MONOCHROMATIC="Monochromatic"
    CHOOSE_AND_PICK="Choose variant and pick color..."
    GENERATEFROMWP="Generate from wallpaper colors..."
    LIGHTBG="Light Background"
    DARKBG="Dark Background"
    RANDOMIZE="Generate randomly"
    TITLEBAR="Title Bar"
    ACTIVE_WINDOW="Active Window"
    INACTIVE_WINDOW="Inactive Window"
    ACTIVE_BG="Active Background"
    INACTIVE_BG="Inactive Background"
    TEXT_COLOR="Text color"
    TITLEBAR_TEXT="Title Bar Text"
    TITLEBAR_FONT="Title Bar Font"
    FONT="Font"
    FONTSIZE="font size"
    _INCREASE="Increase to"
    _DECREASE="Decrease to"
    FONTFAMILY="font family"
    BOLD="Bold"
    ITALIC="Italic"
    TEXTALIGN="Title align"
    LEFT="left"
    CENTER="center"
    RIGHT="right"
    SHADOW="Shadow"
    NOSHADOW="no shadow"
    DARK="Dark"
    LIGHT="Light"
    TEXT="Text"
    ACTIVE_FG="in active window"
    INACTIVE_FG="in inactive window"
    PADDING="Padding"
    VERTICAL="Vertical"
    HORIZONTAL="Horizontal"
    RAISED_OR_FLAT="Flat, Raised or Sunken"
    FLAT="flat"
    RAISED="raised"
    SUNKEN="sunken"
    BUTTONS_LBL="Buttons"
    BUTTONS_LAYOUT="Buttons Layout"
    LEGEND="Legend"
    GRADIENT_TYPE="Gradient type"
    SPLITVERTICAL="SplitVertical"
    MIRRORHORIZONTAL="MirrorHorizontal"
    DIAGONAL="Diagonal"
    CROSSDIAGONAL="CrossDiagonal"
    PYRAMID="Pyramid"
    SOLID_COLOR="Solid color (no gradient)"
    PRE_GRADIENTS="Predefined gradients"
    GRADIENT_REVERSE="Reverse Gradient Colors"
    ACTIVE_BG_TO="Active Background to"
    INACTIVE_BG_TO="Inactive Background to"
    BORDER="Window Border"
    BORDER_PX="Border (px)"
    ACTIVE_BORDER="Active Border"
    INACTIVE_BORDER="Inactive Border"
    HANDLEWIDTH="Handle Width"
    ACTIVEHANDLE="Active Handle"
    YES="Yes"
    NO="No"
    GRIPONLY="Grip only"
    RESET="Reset"
    RESET_THEME="Reset theme to default"
    AREYOUSURE="Are you sure?"
    NOT_SUPORTED_OBTHEME="Theme not supported"
    UNLOCK="Unlock your creativity..."
    SWITCH_TO_MBCOLORS="Switch to <b>MBColors</b>"
    _COLORIZER_ROOT="<b>Colorizer</b> rootmenu"
    _LEFTSIDEPANEL="Left Sidepanel"
    ;;
esac

getvalues () {
    read ABG <<< "$(grep .active.title.bg.color: ${THEMERC} | cut -d':' -f2)"
    read ABGTO <<< "$(grep .active.title.bg.colorTo ${THEMERC} | cut -d':' -f2)"
    read NBG <<< "$(grep .inactive.title.bg.color: ${THEMERC} | cut -d':' -f2)"
    read NBGTO <<< "$(grep .inactive.title.bg.colorTo ${THEMERC} | cut -d':' -f2)"
    read AFG <<< "$(grep .active.label.text.color ${THEMERC} | cut -d':' -f2)"
    read NFG <<< "$(grep .inactive.label.text.color ${THEMERC} | cut -d':' -f2)"
    read ALINE <<< "$(grep .active.border.color ${THEMERC} | cut -d':' -f2)"
    read NLINE <<< "$(grep inactive.border.color ${THEMERC} | cut -d':' -f2)"
    read PHEIGHT <<< "$(grep ^padding.height: ${THEMERC} | cut -d':' -f2)"
    read PWIDTH <<< "$(grep ^padding.width: ${THEMERC} | cut -d':' -f2)"
    read TXTJUST <<< "$(grep text.justify ${THEMERC} | cut -d':' -f2)"
    read HANDLE <<< "$(grep handle.width ${THEMERC} | cut -d':' -f2)"
    read BORD <<< "$(grep border.width ${THEMERC} | cut -d':' -f2)"
    #read BEVEL REST <<< "$(grep .title.bg: ${THEMERC} | cut -d':' -f2)"
    read TITLEBG <<< "$(grep .title.bg: ${THEMERC} | cut -d':' -f2)"
    case "${TITLEBG,,}" in
        *flat*) BEVEL="flat";;
        *raised*) BEVEL="raised";;
        *sunken*) BEVEL="sunken";;
    esac
    case "${TITLEBG,,}" in
        *solid*) GRAD=Solid;;
        *splitvertical*) GRAD=SplitVertical;;
        *vertical*) GRAD=Vertical;;
        *mirrorhorizontal*) GRAD=MirrorHorizontal;;
        *horizontal*) GRAD=Horizontal;;
        *crossdiagonal*) GRAD=CrossDiagonal;;
        *diagonal*) GRAD=Diagonal;;
        *pyramid*) GRAD=Pyramid;;
    
    esac
    but=$(<"$MBCOLORSDIR/.buttons")
    BUTTONS=${but:-tiny}
    #notify-send.sh "Buttons" "$BUTTONS"
    read AHBG <<< "$(grep .active.handle.bg.color: ${THEMERC} | cut -d':' -f2)"
    if [ "$ABG" == "$AHBG" ];then
    AHANDLE="yes"
    else
    AHANDLE="no"
    fi

}
getvaluesrc() {
#from RC.xml
    nspace="http://openbox.org/3.4/rc"
    cfg="$HOME/.config/openbox/rc.xml"
    
    FSIZE=$(xmlstarlet sel -N a="$nspace" -t -v '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:size'  "$cfg")
    FNAME=$(xmlstarlet sel -N a="$nspace" -t -v '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:name'  "$cfg")
    NDSLIMC=$(xmlstarlet sel -N a="$nspace" -t -v '/a:openbox_config/a:theme/a:titleLayout'  "$cfg")
    WEIGHT=$(xmlstarlet sel -N a="$nspace" -t -v '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:weight'  "$cfg")
    WEIGHT_INACT=$(xmlstarlet sel -N a="$nspace" -t -v '/a:openbox_config/a:theme/a:font[@place="InactiveWindow"]/a:weight'  "$cfg")
    SLANT=$(xmlstarlet sel -N a="$nspace" -t -v '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:slant'  "$cfg")
    SLANT_INACT=$(xmlstarlet sel -N a="$nspace" -t -v '/a:openbox_config/a:theme/a:font[@place="InactiveWindow"]/a:slant'  "$cfg")
}


if [[ -f "$THEMERC" ]] && [[ "$OBTHEME" = "MBcolor"* ]]; then
    if [ ! -f "${THEMERC}.bak" ]; then
        cp ${THEMERC} ${THEMERC}.bak
        #check if lines, and add missing
        # colorTo
        # handle
        # grip
        # text.justify
        # window.active.label.text.font:shadow=n:shadowtint=70:shadowoffset=1
        #grep -qF -- "$LINE" "$FILE" || echo "$LINE" >> "$FILE"
        grep ^[^#] "$THEMERC" | grep -qiF -- .active.title.bg.colorTo  || echo "window.active.title.bg.colorTo: #222222" >> "$THEMERC"
        grep ^[^#] "$THEMERC" | grep -qiF -- .inactive.title.bg.colorTo || echo "window.inactive.title.bg.colorTo: #222222" >> "$THEMERC"
        
        grep ^[^#] "$THEMERC" | grep -qiF -- handle.width: || echo "window.handle.width: 0" >> "$THEMERC"
        grep ^[^#] "$THEMERC" | grep -qiF -- .handle.bg: || echo "window.*.handle.bg: parentrelative" >> "$THEMERC"
        ################################################################################################################################## Kolory poniżej obliczyć
        grep ^[^#] "$THEMERC" | grep -qiF -- .active.handle.bg.color: || echo "window.active.handle.bg.color: #222222" >> "$THEMERC"
        grep ^[^#] "$THEMERC" | grep -qiF -- .active.handle.bg.colorTo: || echo "window.active.handle.bg.colorTo: #222222" >> "$THEMERC"
        grep ^[^#] "$THEMERC" | grep -qiF -- .inactive.handle.bg.color: || echo "window.inactive.handle.bg.color: #222222" >> "$THEMERC"
        grep ^[^#] "$THEMERC" | grep -qiF -- .inactive.handle.bg.colorTo: || echo "window.inactive.handle.bg.colorTo: #222222" >> "$THEMERC"
        grep ^[^#] "$THEMERC" | grep -qiF -- .grip.bg: || echo "window.*.grip.bg: parentrelative" >> "$THEMERC"
        grep ^[^#] "$THEMERC" | grep -qiF -- .active.grip.bg.color: || echo "window.active.grip.bg.color: #222222" >> "$THEMERC"
        grep ^[^#] "$THEMERC" | grep -qiF -- .active.grip.bg.colorTo: || echo "window.active.grip.bg.colorTo: #222222" >> "$THEMERC"
        grep ^[^#] "$THEMERC" | grep -qiF -- .inactive.grip.bg.color: || echo "window.inactive.grip.bg.color: #222222" >> "$THEMERC"
        grep ^[^#] "$THEMERC" | grep -qiF -- .inactive.grip.bg.colorTo: || echo "window.inactive.grip.bg.colorTo: #222222" >> "$THEMERC"
        
        grep ^[^#] "$THEMERC" | grep -qiF -- .text.justify: || echo "window.*.text.justify: center" >> "$THEMERC"
        grep ^[^#] "$THEMERC" | grep -qiF -- .text.font: || echo "window.*.text.font: shadow=n:shadowtint=70:shadowoffset=1" >> "$THEMERC"
    fi



getvalues
getvaluesrc

currvalues=("${ABG}|${ABGTO}|${AFG}|${ALINE}|${NBG}|${NBGTO}|${NFG}|${NLINE}|${GRAD,,}|${TXTJUST}|${PHEIGHT}|${PWIDTH}|${HANDLE}|${BORD}|${BEVEL}|${BUTTONS}|${FSIZE}|${FNAME}|${NDSLIMC}|${WEIGHT}|${SLANT}|")

#notify-send.sh "$BEVEL" "${currvalues}"

if [ ! -f "$USERTHEMES" ]; then
    mkdir -p "$HOME/.config/colorizer/openbox/"
    echo "  ABG  | ABGTO |  AFG  | ALINE |  NBG  | NBGTO |  NFG  | NLINE |  GRAD  |TXTJUST|PHEIGHT|PWIDTH|HANDLE|BORD|BEVEL|BUTTONS|FSIZE|FNAME|NDSLIMC|WEIGHT|SLANT|scheme_name" > "$USERTHEMES"
fi

#out+=("^sep($OBTHEME_LBL: <i>$OBTHEME</i>)")

out+=("<big></big>   $QUICK_TWEAKS,^checkout(tweaks)")

    out2+=("^tag(tweaks)")
    out2+=("^sep(Overall style)")
    out2+=("Large,obtctl tweak large;$me")
    out2+=("Big,obtctl tweak big;$me")
    out2+=("Normal,obtctl tweak normal;$me")
    out2+=("Small,obtctl tweak small;$me")
    out2+=("Tiny,obtctl tweak tiny;$me")
    out2+=("^sep()")
    out2+=("<big></big>   $RANDOMIZE,obtctl randomizer;$me")
    out2+=("\"\"\"^sep($RAISED_OR_FLAT?)\"\"\"")
    [[ "$BEVEL" == "flat" ]] && out2+=("<big>${ron}</big>  $FLAT,obtctl raised 0;$me") || out2+=("<big>${roff}</big>  $FLAT,obtctl raised 0;$me") 
    [[ "$BEVEL" == "raised" ]] && out2+=("<big>${ron}</big>  $RAISED,obtctl raised 1;$me") || out2+=("<big>${roff}</big>  $RAISED,obtctl raised 1;$me")
    [[ "$BEVEL" == "sunken" ]] && out2+=("<big>${ron}</big>  $SUNKEN,obtctl raised 2;$me") || out2+=("<big>${roff}</big>  $SUNKEN,obtctl raised 2;$me")
    out2+=("^sep($GRADIENT_TYPE)")
    [[ "$GRAD" == Solid ]] && out2+=("<big>${ron}</big>  $SOLID_COLOR,obtctl gradient_type solid;$me") || out2+=("<big>${roff}</big>  $SOLID_COLOR,obtctl gradient_type solid;$me")
    out2+=("^sep()")
    [[ "$GRAD" == Vertical ]] && out2+=("<big>${ron}</big>  $VERTICAL,obtctl gradient_type vertical;$me") || out2+=("<big>${roff}</big>  $VERTICAL,obtctl gradient_type vertical;$me")
    [[ "$GRAD" == Horizontal ]] && out2+=("<big>${ron}</big>  $HORIZONTAL,obtctl gradient_type horizontal;$me") || out2+=("<big>${roff}</big>  $HORIZONTAL,obtctl gradient_type horizontal;$me")
    [[ "$GRAD" == MirrorHorizontal ]] && out2+=("<big>${ron}</big>  $MIRRORHORIZONTAL,obtctl gradient_type mirrorhorizontal;$me") || out2+=("<big>${roff}</big>  $MIRRORHORIZONTAL,obtctl gradient_type mirrorhorizontal;$me")
    [[ "$GRAD" == SplitVertical ]] && out2+=("<big>${ron}</big>  $SPLITVERTICAL,obtctl gradient_type splitvertical;$me") || out2+=("<big>${roff}</big>  $SPLITVERTICAL,obtctl gradient_type splitvertical;$me")
    [[ "$GRAD" == Diagonal ]] && out2+=("<big>${ron}</big>  $DIAGONAL,obtctl gradient_type diagonal;$me") || out2+=("<big>${roff}</big>  $DIAGONAL,obtctl gradient_type diagonal;$me")
    [[ "$GRAD" == CrossDiagonal ]] && out2+=("<big>${ron}</big>  $CROSSDIAGONAL,obtctl gradient_type crossdiagonal;$me") || out2+=("<big>${roff}</big>  $CROSSDIAGONAL,obtctl gradient_type crossdiagonal;$me")
    [[ "$GRAD" == Pyramid ]] && out2+=("<big>${ron}</big>  $PYRAMID,obtctl gradient_type pyramid;$me") || out2+=("<big>${roff}</big>  $PYRAMID,obtctl gradient_type pyramid;$me")

#### COLOR SCHEMES  
out+=("<big><span fgcolor='${ABGTO}'></span> <span fgcolor='${ABG}'></span> <span fgcolor='${ABGTO}'></span></big> $THEMES,^checkout(schemes)")
    out2+=("^tag(schemes)")
    out2+=("^sep($THEMES)")
    out2+=("^sep($MONOCHROMATIC)")
    out2+=("^sep(<i>$CHOOSE_AND_PICK</i>)")
    out2+=("<big></big>   $LIGHTBG...,obtctl mono pick light col")
    out2+=("<big></big>   $DARKBG...,obtctl mono pick dark col")
    out2+=("^sep(<i>$GENERATEFROMWP</i>)")
    out2+=("<big><span bgcolor='${w[-2]}' fgcolor='#222222'>  <span bgcolor='${w[-4]}'>   </span>  $LIGHTBG  <span bgcolor='${w[-4]}'>   </span>  </span></big>,w2theme ob light;$me")
    out2+=("<big><span bgcolor='${w[2]}' fgcolor='#E5E5E5'>  <span bgcolor='${w[4]}'>   </span>  $DARKBG   <span bgcolor='${w[4]}'>   </span>  </span></big>,w2theme ob dark;$me")
    out2+=("^sep()")
    out2+=("<big></big>   $RANDOMIZE,obtctl randomizer;$me")
    
    out2+=("^sep($SYSTEM_THEMES)")
    n=1
    while IFS="|" read -r abg abgto afg aline nbg nbgto nfg nline grad txtjust pheight pwidth handle bord bevel buttons fsize fname ndslimc weight slant scheme_name
    do
    ((n=n+1))
    out2+=("<big><span bgcolor='${abg}' fgcolor='${afg}'><span bgcolor='${abgto}'>   </span><small>   <tt>$(printf '%-20s' "${scheme_name}")</tt>   </small><span bgcolor='${abgto}'>   </span></span> <span bgcolor='${nbgto}'>  </span><span bgcolor='${nbg}' fgcolor='${nfg}'><small>  <tt><i>inactive</i></tt>  </small></span><span bgcolor='${nbgto}'>  </span></big>,^checkout(schsys${n})")
    out3+=("^tag(schsys${n}")
    out3+=("^sep($THEME: ${scheme_name})")
    out3+=("^sep($APPLY)")
    out3+=("\"\"\"<big></big>   $APPLY_THEME\"\"\",obtctl applytheme sys ${n};$me")
    out3+=("^sep()")
    out3+=("<big></big>   $APPLY_SCHEME    <big><span bgcolor='${abgto}'>   </span><span bgcolor='${abg}'>             </span><span bgcolor='${abgto}'>   </span></big>,obtctl applyscheme sys ${n};$me")
    done < <(tail -n +2 "$SYSTHEMES")
    out2+=("^sep($YOUR_THEMES)")
    out2+=("<big></big>   $SAVE_CURRTHEME,obtctl savetheme '${currvalues}';$me")
    out2+=("<big></big>   $OPEN_THEMEFILE,xdg-open $USERTHEMES")
    out2+=("^sep()")
    n=1
    while IFS="|" read -r abg abgto afg aline nbg nbgto nfg nline grad txtjust pheight pwidth handle bord bevel buttons fsize fname ndslimc weight slant scheme_name
    do
    ((n=n+1))
    out2+=("<big><span bgcolor='${abg}' fgcolor='${afg}'><span bgcolor='${abgto}'>   </span><small>   <tt>$(printf '%-20s' "${scheme_name}")</tt>   </small><span bgcolor='${abgto}'>   </span></span> <span bgcolor='${nbgto}'>  </span><span bgcolor='${nbg}' fgcolor='${nfg}'><small>  <tt><i>inactive</i></tt>  </small></span><span bgcolor='${nbgto}'>  </span></big>,^checkout(sch${n})")
    out3+=("^tag(sch${n}")
    out3+=("^sep($THEME: ${scheme_name})")
    out3+=("^sep($APPLY)")
    out3+=("\"\"\"<big></big>   $APPLY_THEME\"\"\",obtctl applytheme usr ${n};$me")
    out3+=("^sep()")
    out3+=("<big></big>   $APPLY_SCHEME    <big><span bgcolor='${abgto}'>   </span><span bgcolor='${abg}'>             </span><span bgcolor='${abgto}'>   </span></big>,obtctl applyscheme usr ${n};$me")
    out3+=("^sep($DELETE)")
    out3+=("<big>󰗨</big>    $DELETE_THEME: <i>${scheme_name}</i>,obtctl delscheme ${n};$me")
    done < <(tail -n +2 "$USERTHEMES")
    


out+=("^sep($TITLEBAR)")
out+=("<big>󰛖</big>   $TITLEBAR_FONT [ <b> ${FNAME} ${FSIZE} </b> ],^checkout(titletext)")
out+=("<big>󰧈</big>   $PADDING [ <b>$PHEIGHT $PWIDTH</b> ],^checkout(padding)")
out+=("<tt><span bgcolor='$ABG' fgcolor='$AFG'><small>     </small></span></tt>   $BUTTONS_LBL,^checkout(tbuttons)")
out+=("^sep($ACTIVE_WINDOW)")
out+=("<tt><span bgcolor='$ABG'>      </span></tt>   $ACTIVE_BG,^pipe(mbclr '$ABG' obtctl clractivebg '${ACTIVE_BG}' '$me')")
[[ ! -z "$ABGTO" ]] && out+=("<tt><span bgcolor='$ABG'>  </span><span bgcolor='$ABGTO'>    </span></tt>   $ACTIVE_BG_TO,^pipe(mbclr '$ABGTO' obtctl clractivebgto '${ACTIVE_BG_TO}' '$me')")
out+=("<tt><span bgcolor='$ABG' fgcolor='$AFG'>  <b>title</b>  </span></tt>   $TEXT_COLOR,^pipe(mbclr '$AFG' obtctl activetextcolor '${TEXT} ${ACTIVE_FG}' '$me')")
out+=("^sep($INACTIVE_WINDOW)")
out+=("<tt><span bgcolor='$NBG'>      </span></tt>   $INACTIVE_BG,^pipe(mbclr '$NBG' obtctl clrnormalbg '${INACTIVE_BG}' '$me')")
[[ ! -z "$ABGTO" ]] && out+=("<tt><span bgcolor='$NBG'>  </span><span bgcolor='$NBGTO'>    </span></tt>   $INACTIVE_BG_TO,^pipe(mbclr '$NBGTO' obtctl clrnormalbgto '${INACTIVE_BG_TO}' '$me')")
out+=("<tt><span bgcolor='$NBG' fgcolor='$NFG'>  <b>title</b>  </span></tt>   $TEXT_COLOR,^pipe(mbclr '$NFG' obtctl inactivetextcolor '${TEXT} ${INACTIVE_FG}' '$me')")
out+=("^sep()")
[[ "$WEIGHT_INACT" =~ .*"old" ]] && out+=("<big>${cbon}</big>   <b>$BOLD</b>,obtctl fontweight_inactive Normal;$me") || out+=("<big>${cboff}</big>   <b>$BOLD</b>,obtctl fontweight_inactive Bold;$me")
[[ "$SLANT_INACT" =~ .*"talic" ]] && out+=("<big>${cbon}</big>   <i>$ITALIC</i>,obtctl fontslant_inactive Normal;$me") || out+=("<big>${cboff}</big>   <i>$ITALIC</i>,obtctl fontslant_inactive Italic;$me")

out+=("^sep(Gradient)")
out+=("<big>󰹸</big>   $GRADIENT_TYPE [ <b>${GRAD}</b> ],^checkout(gradient)")
out+=("<tt><span bgcolor='#16a084'> </span><span bgcolor='#43a480'> </span><span bgcolor='#5da97b'> </span><span bgcolor='#72ad77'> </span><span bgcolor='#84b171'> </span><span bgcolor='#95b66c'> </span><span bgcolor='#a5ba66'> </span><span bgcolor='#b5be61'> </span><span bgcolor='#c3c15a'> </span><span bgcolor='#d1c753'> </span><span bgcolor='#dfc94c'> </span><span bgcolor='#edce44'> </span><span bgcolor='#f4d03f'> </span></tt>  $PRE_GRADIENTS,^pipe(mbgrad ob)")
[[ "${GRAD}" != "Solid" ]] && out+=("<big></big>   $GRADIENT_REVERSE,obtctl activegradient '${ABGTO}' '${ABG}';$me")

out+=("^sep($BORDER)")
out+=("<tt><span bgcolor='$ALINE'>      </span></tt>   $ACTIVE_BORDER,^pipe(mbclr '$ALINE' obtctl activeborderColor '${ACTIVE_BORDER}' '$me')")
out+=("<tt><span bgcolor='$NLINE'>      </span></tt>   $INACTIVE_BORDER,^pipe(mbclr '$NLINE' obtctl inactiveborderColor '${INACTIVE_BORDER}' '$me')")
out+=("<big>󰝣</big>   $BORDER [ <b>$BORD</b> ],^checkout(border)")
out+=("$HANDLEWIDTH [ <b>$HANDLE</b> ],^checkout(handlewidth)")
#out+=("$ACTIVEHANDLE? [ <b>$AHANDLE</b> ],^checkout(handle)")




if [ -f "${THEMERC}.bak" ]; then

out+=("^sep($RESET)")
out+=("󰁯  $RESET_THEME,^checkout(resettheme)")
    out2+=("^tag(resettheme)")
    out2+=("^sep($AREYOUSURE)")
    out2+=("$YES,obtctl resetMBcolors;$me")
fi
#out+=("Edit...,xdg-open ${THEMERC}")

#out2+=("^tag(themes)")
#out2+=("^sep(themes)")
#for i in $(ls $HOME/.themes);do
#    if [ -f "$HOME/.themes/${i}/openbox-3/themerc" ]; then
#    out2+=("$i,obtctl theme $i;$me")
#    fi
#done
#TBUTTONS
out2+=("^tag(tbuttons)")
out2+=("^sep($BUTTONS_LBL)")
out2+=("Tiny,obtctl buttons tiny;$me")
out2+=("Normal,obtctl buttons normal;$me")
out2+=("Bold,obtctl buttons bold;$me")
out2+=("Dots,obtctl buttons dots;$me")
out2+=("^sep()")
out2+=("Big 12px,obtctl buttons big-12;$me")
out2+=("Big 14px,obtctl buttons big-14;$me")
out2+=("^sep($TEXTALIGN)")
[[ "$TXTJUST" = left ]] && out2+=("<big>${ron}  </big>  <b>$LEFT</b>,obtctl textjustify left;$me")||out2+=("<big>${roff}  </big>  $LEFT,obtctl textjustify left;$me")
[[ "$TXTJUST" = center ]] && out2+=("<big>${ron}  </big>     <b>$CENTER</b>,obtctl textjustify center;$me")||out2+=("<big>${roff}  </big>     $CENTER,obtctl textjustify center;$me")
[[ "$TXTJUST" = right ]] && out2+=("<big>${ron}  </big>         <b>$RIGHT</b>,obtctl textjustify right;$me")||out2+=("<big>${roff}  </big>         $RIGHT,obtctl textjustify right;$me")

out2+=("^sep($BUTTONS_LAYOUT)")
[[ "$NDSLIMC" == NDSLIMC ]] && out2+=("<big>${ron}</big>  <tt>full          </tt> <b>NDSLIMC</b> (default),obtctl ndslimc NDSLIMC;$me") || out2+=("<big>${roff}</big>  <tt>full          </tt> <b>NDSLIMC</b> (default),obtctl ndslimc NDSLIMC;$me")
[[ "$NDSLIMC" == DSLIMC ]] && out2+=("<big>${ron}</big>  <tt>full (no icon)</tt> <b>DSLIMC</b>,obtctl ndslimc DSLIMC;$me") || out2+=("<big>${roff}</big>  <tt>full (no icon)</tt> <b>DSLIMC</b>,obtctl ndslimc DSLIMC;$me")
[[ "$NDSLIMC" == NLIMC ]] && out2+=("<big>${ron}</big>  <tt>mini          </tt> <b>NLIMC</b>,obtctl ndslimc NLIMC;$me") || out2+=("<big>${roff}</big>  <tt>mini          </tt> <b>NLIMC</b>,obtctl ndslimc NLIMC;$me")
[[ "$NDSLIMC" == LIMC ]] && out2+=("<big>${ron}</big>  <tt>mini (no icon)</tt> <b>LIMC</b>,obtctl ndslimc LIMC;$me") || out2+=("<big>${roff}</big>  <tt>mini (no icon)</tt> <b>LIMC</b>,obtctl ndslimc LIMC;$me")
[[ "$NDSLIMC" == CMIL ]] && out2+=("<big>${ron}</big>  <tt>crazy         </tt> <b>CMIL</b>,obtctl ndslimc CMIL;$me") || out2+=("<big>${roff}</big>  <tt>crazy         </tt> <b>CMIL</b>,obtctl ndslimc CMIL;$me")
out2+=("^sep(<small>$LEGEND</small>)")
out2+=("^sep(N:<small> Window icon</small>)")
out2+=("^sep(L:<small> Window label (Title)</small>)")
out2+=("^sep(I:<small> Iconify (Minimize)</small>)")
out2+=("^sep(M:<small> Maximize</small>)")
out2+=("^sep(C:<small> Close</small>)")
out2+=("^sep(S:<small> Shade (Roll up)</small>)")
out2+=("^sep(D:<small> Omnipresent (On all desktops)</small>)")

#TEXT
out2+=("^tag(titletext)")
out2+=("^sep($TITLEBAR_FONT)")
out2+=("$FONT... [ <b> ${FNAME} ${FSIZE} </b> ],mb-setfont obtitle;$me")
out2+=("^sep($FONTSIZE)")
out2+=("<big>󰧴</big>   $_INCREASE <b>$((FSIZE+1)) px</b>,fontctl ob_fontsize inc;$me")
out2+=("<big>󰧳</big>   $_DECREASE <b>$((FSIZE-1)) px</b>,fontctl ob_fontsize dec;$me")
out2+=("^sep()")
sizes=(16 15 14 13 12 11 10 9 8)
for i in "${sizes[@]}"
do
[[ "$FSIZE" == "$i" ]] && out2+=("<big>${ron}</big>  <b>$i px</b>,obtctl fontsize $i;$me") || out2+=("<big>${roff}</big>  $i px,obtctl fontsize $i;$me")
done

out2+=("^sep($FONTFAMILY)")

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
    for fon in "${favfonts[@]}";do
    [[ "${FNAME}" == "$fon" ]] && out2+=("<big>${ron}</big>  <span font_family=\"${fon}\">${fon}</span>,$me") || out2+=("<big>${roff}</big>  <span font_family=\"${fon}\">${fon}</span>,obtctl fontfamily \"${fon}\";$me")
    done
fi


out2+=("^sep()")
[[ "$WEIGHT" =~ .*"old" ]] && out2+=("<big>${cbon}</big>   <b>$BOLD</b>,obtctl fontweight Normal;$me") || out2+=("<big>${cboff}</big>   <b>$BOLD</b>,obtctl fontweight Bold;$me")
[[ "$SLANT" =~ .*"talic" ]] && out2+=("<big>${cbon}</big>   <i>$ITALIC</i>,obtctl fontslant Normal;$me") || out2+=("<big>${cboff}</big>   <i>$ITALIC</i>,obtctl fontslant Italic;$me")

#SHADOW
out2+=("^sep($TEXTALIGN)")
[[ "$TXTJUST" = left ]] && out2+=("<big>${ron}  </big>  <b>$LEFT</b>,obtctl textjustify left;$me")||out2+=("<big>${roff}  </big>  $LEFT,obtctl textjustify left;$me")
[[ "$TXTJUST" = center ]] && out2+=("<big>${ron}  </big>     <b>$CENTER</b>,obtctl textjustify center;$me")||out2+=("<big>${roff}  </big>     $CENTER,obtctl textjustify center;$me")
[[ "$TXTJUST" = right ]] && out2+=("<big>${ron}  </big>         <b>$RIGHT</b>,obtctl textjustify right;$me")||out2+=("<big>${roff}  </big>         $RIGHT,obtctl textjustify right;$me")
out2+=("^sep()")
out2+=("$SHADOW,^checkout(shadow)")
out2+=("^tag(shadow)")
out2+=("^sep($SHADOW)")
out2+=("$NOSHADOW,obtctl shadow 0;$me")
out2+=("^sep()")
out2+=("$DARK,obtctl shadow 1;$me")
out2+=("$LIGHT,obtctl shadow 2;$me")
#PADDING
out2+=("^tag(padding)")
out2+=("^sep($VERTICAL)")
[[ "${PHEIGHT}" == 0 ]] && out2+=("<big>${ron}</big>   <b>0 px</b>,obtctl paddingHeight 0;$me") || out2+=("<big>${roff}</big>   0 px,obtctl paddingHeight 0;$me")
out2+=("^sep()")
for ph in 1 2 3 4 5 6 8 10 12 16 20
do
[[ "${PHEIGHT}" == "${ph}" ]] && out2+=("<big>${ron}</big>   <b>$ph px</b>,obtctl paddingHeight ${ph};$me") || out2+=("<big>${roff}</big>   ${ph} px,obtctl paddingHeight ${ph};$me")
done

out2+=("^sep($HORIZONTAL)")
[[ "${PWIDTH}" == 0 ]] && out2+=("<big>${ron}</big>   <b>0 px</b>,obtctl paddingWidth 0;$me") || out2+=("<big>${roff}</big>   0 px,obtctl paddingWidth 0;$me")
out2+=("^sep()")
for pw in 1 2 3 4 5 6 8 10 12 16 20
do
[[ "${PWIDTH}" == "${pw}" ]] && out2+=("<big>${ron}</big>   <b>$pw px</b>,obtctl paddingWidth ${pw};$me") || out2+=("<big>${roff}</big>   ${pw} px,obtctl paddingWidth ${pw};$me")
done
#BORDER
out2+=("^tag(border)")
out2+=("^sep($BORDER)")
[[ "${BORD}" == 0 ]] && out2+=("<big>${ron}</big>   <b>0 px</b>,obtctl borderWidth 0;$me") || out2+=("<big>${roff}</big>   0 px,obtctl borderWidth 0;$me")
out2+=("^sep()")
for bor in 1 2 3 4 5 6 8 10 12 16 20
do
[[ "${BORD}" == "${bor}" ]] && out2+=("<big>${ron}</big>   <b>${bor} px</b>,obtctl borderWidth ${bor};$me") || out2+=("<big>${roff}</big>   ${bor} px,obtctl borderWidth ${bor};$me")
done

#GRADIENT
out2+=("^tag(gradient)")
out2+=("^sep($GRADIENT_TYPE)")
[[ "$GRAD" == Solid ]] && out2+=("<big>${ron}</big>  <b>$SOLID_COLOR</b>,obtctl gradient_type solid;$me") || out2+=("<big>${roff}</big>  $SOLID_COLOR,obtctl gradient_type solid;$me")
out2+=("^sep()")
[[ "$GRAD" == Vertical ]] && out2+=("<big>${ron}</big>  <b>$VERTICAL</b>,obtctl gradient_type vertical;$me") || out2+=("<big>${roff}</big>  $VERTICAL,obtctl gradient_type vertical;$me")
[[ "$GRAD" == Horizontal ]] && out2+=("<big>${ron}</big>  <b>$HORIZONTAL</b>,obtctl gradient_type horizontal;$me") || out2+=("<big>${roff}</big>  $HORIZONTAL,obtctl gradient_type horizontal;$me")
[[ "$GRAD" == MirrorHorizontal ]] && out2+=("<big>${ron}</big>  <b>$MIRRORHORIZONTAL</b>,obtctl gradient_type mirrorhorizontal;$me") || out2+=("<big>${roff}</big>  $MIRRORHORIZONTAL,obtctl gradient_type mirrorhorizontal;$me")
[[ "$GRAD" == SplitVertical ]] && out2+=("<big>${ron}</big>  <b>$SPLITVERTICAL</b>,obtctl gradient_type splitvertical;$me") || out2+=("<big>${roff}</big>  $SPLITVERTICAL,obtctl gradient_type splitvertical;$me")
[[ "$GRAD" == Diagonal ]] && out2+=("<big>${ron}</big>  <b>$DIAGONAL</b>,obtctl gradient_type diagonal;$me") || out2+=("<big>${roff}</big>  $DIAGONAL,obtctl gradient_type diagonal;$me")
[[ "$GRAD" == CrossDiagonal ]] && out2+=("<big>${ron}</big>  <b>$CROSSDIAGONAL</b>,obtctl gradient_type crossdiagonal;$me") || out2+=("<big>${roff}</big>  $CROSSDIAGONAL,obtctl gradient_type crossdiagonal;$me")
[[ "$GRAD" == Pyramid ]] && out2+=("<big>${ron}</big>  <b>$PYRAMID</b>,obtctl gradient_type pyramid;$me") || out2+=("<big>${roff}</big>  $PYRAMID,obtctl gradient_type pyramid;$me")

#HANDLE
#out2+=("^tag(handle)")
#out2+=("^sep($ACTIVEHANDLE)")
#out2+=("$NO,obtctl activehandle no;$me")
#out2+=("$YES,obtctl activehandle yes;$me")
#out2+=("$GRIPONLY,obtctl activehandle grip;$me")
#HANDLE WIDTH
out2+=("^tag(handlewidth)")
out2+=("^sep($HANDLEWIDTH)")
[[ "${HANDLE}" == 0 ]] && out2+=("<big>${ron}</big>   <b>0 px</b>,obtctl handlewidth 0;$me") || out2+=("<big>${roff}</big>   0 px,obtctl handlewidth 0;$me")
out2+=("^sep()")
for hdl in 1 2 3 4 6 8 10
do
[[ "${HANDLE}" == "${hdl}" ]] && out2+=("<big>${ron}</big>   <b>${hdl} px</b>,obtctl handlewidth ${hdl};$me") || out2+=("<big>${roff}</big>   ${hdl} px,obtctl handlewidth ${hdl};$me")
done

else # Theme other than MBColors, we can only edit rc.xml
getvaluesrc
out+=("^sep($NOT_SUPORTED_OBTHEME)")
out+=("^sep(<small>$UNLOCK</small>)")
out+=("$SWITCH_TO_MBCOLORS,obtctl theme MBcolors;$me")
out+=("^sep($TITLEBAR_FONT)")
out+=("$FONT... [ <b> ${FNAME} ${FSIZE} </b> ],mb-setfont obtitle;$me")
out+=("^sep(font family)")


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
    for fon in "${favfonts[@]}";do
    [[ "${FNAME}" == "$fon" ]] && out+=("<big>${ron}</big>  <span font_family=\"${fon}\">${fon}</span>,$me") || out+=("<big>${roff}</big>  <span font_family=\"${fon}\">${fon}</span>,obtctl fontfamily \"${fon}\";$me")
    done
fi
        
out+=("^sep()")
[[ "$WEIGHT" =~ .*"old" ]] && out+=("<big>${cbon}</big>   <b>$BOLD</b>,obtctl fontweight Normal;$me") || out+=("<big>${cboff}</big>   <b>$BOLD</b>,obtctl fontweight Bold;$me")
[[ "$SLANT" =~ .*"talic" ]] && out+=("<big>${cbon}</big>   <i>$ITALIC</i>,obtctl fontslant Normal;$me") || out+=("<big>${cboff}</big>   <i>$ITALIC</i>,obtctl fontslant Italic;$me")
out+=("^sep()")
out+=("$FONTSIZE [ <b>$FSIZE px</b> ],^checkout(obfsize)")
out2+=("^tag(obfsize)")
out2+=("^sep($FONTSIZE)")
sizes=(16 15 14 13 12 11 10 9 8)
for i in "${sizes[@]}"
do
[[ "$FSIZE" == "$i" ]] && out2+=("<big>${ron}</big>  <b>$i px</b>,obtctl fontsize $i;$me") || out2+=("<big>${roff}</big>  $i px,obtctl fontsize $i;$me")
done

out+=("^sep($BUTTONS_LAYOUT)")
[[ "$NDSLIMC" == NDSLIMC ]] && out+=("<big>${ron}</big>  <tt>full          </tt> <b>NDSLIMC</b> (default),obtctl ndslimc NDSLIMC;$me") || out+=("<big>${roff}</big>  <tt>full          </tt> <b>NDSLIMC</b> (default),obtctl ndslimc NDSLIMC;$me")
[[ "$NDSLIMC" == NLIMC ]] && out+=("<big>${ron}</big>  <tt>mini          </tt> <b>NLIMC</b>,obtctl ndslimc NLIMC;$me") || out+=("<big>${roff}</big>  <tt>mini          </tt> <b>NLIMC</b>,obtctl ndslimc NLIMC;$me")
[[ "$NDSLIMC" == LIMC ]] && out+=("<big>${ron}</big>  <tt>mini (no icon)</tt> <b>LIMC</b>,obtctl ndslimc LIMC;$me") || out+=("<big>${roff}</big>  <tt>mini (no icon)</tt> <b>LIMC</b>,obtctl ndslimc LIMC;$me")
[[ "$NDSLIMC" == CMIL ]] && out+=("<big>${ron}</big>  <tt>crazy         </tt> <b>CMIL</b>,obtctl ndslimc CMIL;$me") || out+=("<big>${roff}</big>  <tt>crazy         </tt> <b>CMIL</b>,obtctl ndslimc CMIL;$me")
out+=("^sep(<small>$LEGEND</small>)")
out+=("^sep(N:<small> Window icon</small>)")
out+=("^sep(L:<small> Window label (Title)</small>)")
out+=("^sep(I:<small> Iconify (Minimize)</small>)")
out+=("^sep(M:<small> Maximize</small>)")
out+=("^sep(C:<small> Close</small>)")
out+=("^sep(S:<small> Shade (Roll up)</small>)")
out+=("^sep(D:<small> Omnipresent (On all desktops)</small>)")
fi

### RUN
if [[ "$1" == "-s" ]]; then

source $HOME/.config/colorizer/colorizer.conf

out+=("^sep()")
out+=(" ${arrow_string_left}    $_COLORIZER_ROOT,colorizer -s")
out+=(" ${arrow_string_left} ${arrow_string_left}    $_LEFTSIDEPANEL,mb-jgtools places")


    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 + 152))
    
# WALLPAPER IMAGE
read WALLPATH<<< $(grep file "$HOME"/.config/nitrogen/bg-saved.cfg |  tail -1 | 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 <<EOF > ${MENU_ITEMS}
@icon,,$((jgtools_padding)),$((jgtools_padding)),270,150,4,left,top,,,${THUMB}
@icon,,$((jgtools_padding+8)),$((jgtools_padding)),270,150,4,left,top,,,/usr/share/mabox-colorizer/img/colorizer-ob.png
@rect,,$((jgtools_padding+4)),$((jgtools_padding + 124)),262,22,0,left,top,#222222 20,#222222 70,
@text,,$((jgtools_padding + 138)),$((jgtools_padding + 120)),130,30,0,left,top,#FFFFFF ,${WINCLR},<span size='10400' font_family='Ubuntu'><b>Colorizer</b> Openbox</span>
$(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[@]}"
