376 lines
14 KiB
Bash
Executable File
376 lines
14 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
MBCOLORSDIR="$HOME"/.themes/MBcolors/openbox-3/
|
|
|
|
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*)
|
|
OBTHEME_LBL="Motyw OpenBox"
|
|
TITLEBAR="Pasek tytułowy"
|
|
ACTIVE_BG="Tło aktywnego okna"
|
|
INACTIVE_BG="Tło nieaktywnego okna"
|
|
TITLEBAR_TEXT="Tekst paska tytułowego"
|
|
FONT="Czcionka"
|
|
TEXTALIGN="Wyrównanie tekstu"
|
|
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="Podniesiony czy płaski"
|
|
FLAT="płaski - flat"
|
|
RAISED="podniesiony - raised"
|
|
BUTTONS="Przyciski"
|
|
GRADIENT_TYPE="Typ Gradientu"
|
|
SOLID_COLOR="Jednolity kolor (brak 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 (px)"
|
|
ACTIVE_BORDER="Obramowanie aktywnego okna"
|
|
INACTIVE_BORDER="Obramowanie nieaktywnego 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"
|
|
SWITCH_TO_MBCOLORS="Przełącz na MBColors"
|
|
;;
|
|
*)
|
|
OBTHEME_LBL="OpenBox theme"
|
|
TITLEBAR="Title Bar"
|
|
ACTIVE_BG="Active Background"
|
|
INACTIVE_BG="Inactive Background"
|
|
TITLEBAR_TEXT="Title Bar Text"
|
|
FONT="Font"
|
|
TEXTALIGN="Text 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="Raised or Flat"
|
|
FLAT="flat"
|
|
RAISED="raised"
|
|
BUTTONS="Buttons"
|
|
GRADIENT_TYPE="Gradient type"
|
|
SPLITVERTICAL="SplitVertical"
|
|
MIRRORHORIZONTAL="MirrorHorizontal"
|
|
DIAGONAL="Diagonal"
|
|
CROSSDIAGONAL="CrossDiagonal"
|
|
PYRAMID="Pyramid"
|
|
SOLID_COLOR="Solid color (no gradient)"
|
|
VERTICAL=""
|
|
ACTIVE_BG_TO="Active Background to"
|
|
INACTIVE_BG_TO="Inactive Background to"
|
|
BORDER="Border (px)"
|
|
ACTIVE_BORDER="Active Border"
|
|
INACTIVE_BORDER="Inactiva 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="OpenBox theme not supported"
|
|
SWITCH_TO_MBCOLORS="Switch to MBColors"
|
|
;;
|
|
esac
|
|
|
|
|
|
|
|
if [ -f "$THEMERC" ]; 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 () {
|
|
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 WINRAISED REST <<< "$(grep .title.bg: ${THEMERC} | cut -d':' -f2)"
|
|
read AHBG <<< "$(grep .active.handle.bg.color: ${THEMERC} | cut -d':' -f2)"
|
|
if [ "$ABG" == "$AHBG" ];then
|
|
AHANDLE="yes"
|
|
else
|
|
AHANDLE="no"
|
|
fi
|
|
}
|
|
getvalues
|
|
|
|
out+=("^sep($OBTHEME_LBL: <i>$OBTHEME</i>)")
|
|
out+=("^sep($TITLEBAR)")
|
|
out+=("<tt><span bgcolor='$ABG'> </span></tt> $ACTIVE_BG,^pipe(mbclr '$ABG' obtctl clractivebg '${ACTIVE_BG}' '$me')")
|
|
out+=("<tt><span bgcolor='$NBG'> </span></tt> $INACTIVE_BG,^pipe(mbclr '$NBG' obtctl clrnormalbg '${INACTIVE_BG}' '$me')")
|
|
out+=("<tt><span bgcolor='$ABG' fgcolor='$AFG'> <b>AbCd</b> </span></tt> $TITLEBAR_TEXT,^checkout(titletext)")
|
|
|
|
out+=("$PADDING [ <b>$PHEIGHT $PWIDTH</b> ],^checkout(padding)")
|
|
out+=("$RAISED_OR_FLAT? [ <b>$WINRAISED</b> ],^checkout(raised)")
|
|
out+=("^sep()")
|
|
out+=("$BUTTONS,^checkout(tbuttons)")
|
|
out+=("^sep(Gradient)")
|
|
out+=("$GRADIENT_TYPE [ <b>${REST##* }</b> ],^checkout(gradient)")
|
|
[[ ! -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')")
|
|
[[ ! -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+=("^sep($BORDER)")
|
|
out+=("<tt><span bgcolor='$ALINE'> </span></tt> $ACTIVE_BORDER,^pipe(mbclr '$ALINE' obtctl activeborderColor '${ACTIVE_BORDER_COLOR}' '$me')")
|
|
out+=("<tt><span bgcolor='$NLINE'> </span></tt> $INACTIVE_BORDER,^pipe(mbclr '$NLINE' obtctl inactiveborderColor '${INACTIVE_BORDER_COLOR}' '$me')")
|
|
out+=("$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,obctl reset;$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)")
|
|
out2+=("Tiny,obtctl buttons tiny;$me")
|
|
out2+=("Normal,obtctl buttons normal;$me")
|
|
out2+=("Bold,obtctl buttons bold;$me")
|
|
out2+=("Dots,obtctl buttons dots;$me")
|
|
#TEXT
|
|
out2+=("^tag(titletext)")
|
|
out2+=("^sep($TITLEBAR_TEXT)")
|
|
out2+=("$FONT...,mb-setfont obtitle;$me")
|
|
out2+=("$TEXTALIGN [ <b>$TXTJUST</b> ],^checkout(talign)")
|
|
out2+=("$SHADOW,^checkout(shadow)")
|
|
out2+=("^sep()")
|
|
out2+=("<tt><span bgcolor='$AFG'> </span></tt> $ACTIVE_FG,^pipe(mbclr '$AFG' obtctl activetextcolor '${TEXT} ${ACTIVE_FG}' '$me')")
|
|
out2+=("<tt><span bgcolor='$NFG'> </span></tt> $INACTIVE_FG,^pipe(mbclr '$NFG' obtctl inactivetextcolor '${TEXT} ${INACTIVE_FG}' '$me')")
|
|
#TEXTALIGN
|
|
out2+=("^tag(talign)")
|
|
out2+=("^sep($TEXTALIGN)")
|
|
out2+=(" $LEFT,obtctl textjustify left;$me")
|
|
out2+=(" $CENTER,obtctl textjustify center;$me")
|
|
out2+=(" $RIGHT,obtctl textjustify right;$me")
|
|
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)")
|
|
out2+=("0,obtctl paddingHeight 0;$me")
|
|
out2+=("^sep()")
|
|
out2+=("1,obtctl paddingHeight 1;$me")
|
|
out2+=("2,obtctl paddingHeight 2;$me")
|
|
out2+=("3,obtctl paddingHeight 3;$me")
|
|
out2+=("4,obtctl paddingHeight 4;$me")
|
|
out2+=("5,obtctl paddingHeight 5;$me")
|
|
out2+=("6,obtctl paddingHeight 6;$me")
|
|
out2+=("7,obtctl paddingHeight 7;$me")
|
|
out2+=("8,obtctl paddingHeight 8;$me")
|
|
out2+=("10,obtctl paddingHeight 10;$me")
|
|
out2+=("^sep($HORIZONTAL)")
|
|
out2+=("0,obtctl paddingWidth 0;$me")
|
|
out2+=("^sep()")
|
|
out2+=("1,obtctl paddingWidth 1;$me")
|
|
out2+=("2,obtctl paddingWidth 2;$me")
|
|
out2+=("3,obtctl paddingWidth 3;$me")
|
|
out2+=("4,obtctl paddingWidth 4;$me")
|
|
out2+=("5,obtctl paddingWidth 5;$me")
|
|
#BORDER
|
|
out2+=("^tag(border)")
|
|
out2+=("^sep($BORDER)")
|
|
out2+=("0,obtctl borderWidth 0;$me")
|
|
out2+=("^sep()")
|
|
out2+=("1,obtctl borderWidth 1;$me")
|
|
out2+=("2,obtctl borderWidth 2;$me")
|
|
out2+=("3,obtctl borderWidth 3;$me")
|
|
out2+=("4,obtctl borderWidth 4;$me")
|
|
out2+=("5,obtctl borderWidth 5;$me")
|
|
#RAISED
|
|
out2+=("^tag(raised)")
|
|
out2+=("^sep($RAISED_OR_FLAT?)")
|
|
out2+=("0 ($FLAT),obtctl raised 0;$me")
|
|
out2+=("1 ($RAISED),obtctl raised 1;$me")
|
|
#GRADIENT
|
|
out2+=("^tag(gradient)")
|
|
out2+=("^sep($GRADIENT_TYPE)")
|
|
out2+=("$SOLID_COLOR,obtctl gradient solid;$me")
|
|
out2+=("^sep()")
|
|
out2+=("$VERTICAL,obtctl gradient vertical;$me")
|
|
out2+=("$HORIZONTAL,obtctl gradient horizontal;$me")
|
|
out2+=("$MIRRORHORIZONTAL,obtctl gradient mirrorhorizontal;$me")
|
|
out2+=("$SPLITVERTICAL,obtctl gradient splitvertical;$me")
|
|
out2+=("$DIAGONAL,obtctl gradient diagonal;$me")
|
|
out2+=("$CROSSDIAGONAL,obtctl gradient crossdiagonal;$me")
|
|
out2+=("$PYRAMID,obtctl gradient 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
|
|
out2+=("^tag(handlewidth)")
|
|
out2+=("^sep($HANDLEWIDTH)")
|
|
out2+=("0,obtctl handlewidth 0;$me")
|
|
out2+=("^sep()")
|
|
out2+=("2,obtctl handlewidth 2;$me")
|
|
out2+=("3,obtctl handlewidth 3;$me")
|
|
out2+=("4,obtctl handlewidth 4;$me")
|
|
out2+=("6,obtctl handlewidth 6;$me")
|
|
out2+=("8,obtctl handlewidth 8;$me")
|
|
out2+=("10,obtctl handlewidth 10;$me")
|
|
|
|
else
|
|
out+=("^sep($NOT_SUPORTED_OBTHEME)")
|
|
out+=("$SWITCH_TO_MBCOLORS,obtctl theme MBcolors;$me")
|
|
#for i in $(ls $HOME/.themes);do
|
|
#if [ -f "$HOME/.themes/${i}/openbox-3/themerc" ]; then
|
|
#out+=("$i,obtctl theme $i;$me")
|
|
#fi
|
|
#done
|
|
fi
|
|
|
|
### RUN
|
|
if [[ "$1" == "-s" ]]; then
|
|
. /usr/share/mb-jgtools/pipemenu-standalone.cfg
|
|
. $HOME/.config/mabox/mabox.conf
|
|
source $HOME/.config/colorizer/colorizer.conf
|
|
|
|
out+=("^sep()")
|
|
out+=(" ⮜⮜⮜ Colorizer,colorizer -s")
|
|
|
|
|
|
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
|
|
JGWIDTH=40
|
|
|
|
[ $(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))
|
|
|
|
# WALLPAPER IMAGE
|
|
read WALLPATH<<< $(grep file "$HOME"/.config/nitrogen/bg-saved.cfg | cut -d'=' -f2)
|
|
WALLPAPER=${WALLPATH##*/}
|
|
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
|
|
|
|
mkconfigfile
|
|
|
|
cat <<EOF > ${MENU_ITEMS}
|
|
@icon,,$((jgtools_padding + 4)),$((jgtools_padding + 4)),270,150,4,left,top,,,${THUMB}
|
|
@icon,,$((jgtools_padding + 4)),$((jgtools_padding + 4)),270,150,4,left,top,,,/usr/share/mabox-colorizer/img/colorizer-ob.png
|
|
|
|
$(printf '%s\n' "${out[@]}")
|
|
$(printf '%s\n' "${out2[@]}")
|
|
EOF
|
|
|
|
jgmenu --config-file=${CONFIG_FILE} --csv-file=${MENU_ITEMS} 2>/dev/null
|
|
|
|
exit 0
|
|
|
|
fi
|
|
printf '%s\n' "${out[@]}"
|
|
printf '%s\n' "${out2[@]}"
|