Compare commits

...

48 Commits

Author SHA1 Message Date
Daniel Napora 89f905268f add monocolor 2024-02-22 14:24:51 +01:00
Daniel Napora ca2dd9bc5d fix cava 2000 px height :) 2024-02-01 18:55:17 +01:00
Daniel Napora b1168d4552 small fix 2024-02-01 14:05:01 +01:00
Daniel Napora 3b545c0f7e cosmetic changes 2024-02-01 14:01:44 +01:00
Daniel Napora da6b90b78d css, terminal, wp 2024-01-28 11:31:19 +01:00
Daniel Napora fbdfcc7efa Main window improvements 2024-01-25 13:01:29 +01:00
Daniel Napora e52e4c06b5 Help window cleaning 2024-01-17 22:41:38 +01:00
Daniel Napora 59d2cc5b49 really fix glyphicons in main window 2024-01-15 00:02:48 +01:00
Daniel Napora d49ea58107 fix nerd symbols 2024-01-14 22:05:04 +01:00
Daniel Napora 0a09781aa3 upd 2023-09-28 11:41:04 +02:00
Daniel Napora 3d2c5eefb1 cleaning rootmenu and help 2023-09-28 10:30:45 +02:00
Daniel Napora dfc7192e8a small improvements 2023-09-25 13:37:33 +02:00
Daniel Napora 05a80516b6 Openbox save/restore theme/colorscheme 2023-09-23 13:57:32 +02:00
Daniel Napora 106b6909d9 Conky and mbclr improvements 2023-09-11 18:59:49 +02:00
Daniel Napora 33550720c2 colorizer-menus reorder 2023-09-09 16:01:49 +02:00
Daniel Napora 51f6143a1b GTK colors added to color submenu 2023-09-09 09:18:19 +02:00
Daniel Napora f726918df8 upd 2023-09-08 13:17:36 +02:00
Daniel Napora 176034c8a6 fix apply system scheme to one Conky 2023-09-08 12:47:31 +02:00
Daniel Napora 835004602a polising conky module 2023-09-08 12:34:28 +02:00
Daniel Napora 0640f531a0 polishing 2023-09-06 16:13:11 +02:00
Daniel Napora f7f4329633 upd 2023-09-05 18:43:04 +02:00
Daniel Napora 02ed297f4d menu schemes, readable colors pairs 2023-09-05 18:38:53 +02:00
Daniel Napora 2c3c0e0ce9 remove unneeded script 2023-09-05 17:31:56 +02:00
Daniel Napora 6482e8ddfc save/restore menus 2023-09-05 17:18:04 +02:00
Daniel Napora 082d27f52e one place to configure fonts 2023-08-30 14:00:09 +02:00
Daniel Napora 7c0bd902af fonts handling improvements 2023-08-20 09:07:52 +02:00
Daniel Napora 3158254a39 font list comment 2023-08-17 17:41:11 +02:00
Daniel Napora cbd8694212 fonts and colors lists 2023-08-17 17:39:19 +02:00
Daniel Napora d4fd63c54b OB title font color only black and white 2023-08-03 01:28:41 +02:00
Daniel Napora 3a7535cc1e upd 2023-08-02 01:34:04 +02:00
Daniel Napora 07d4274ac3 handle OB rc.xml font and button layout other OB themes 2023-08-01 15:03:46 +02:00
Daniel Napora 6523ccd67a [Openbox module] title text and buttons handling improvements 2023-07-31 01:14:59 +02:00
Daniel Napora 69f0299723 bigger buttons for OB theme 2023-07-28 17:07:31 +02:00
Daniel Napora 7a636dcfc6 fix obtctl 2023-07-25 14:23:08 +02:00
Daniel Napora 91fb852719 randomizer fix,conky bars 2023-07-25 00:21:05 +02:00
Daniel Napora 257972dd44 remove tint2 - not ready yet 2023-06-01 12:03:25 +02:00
Daniel Napora 6169c64f39 fix glyphicons 2023-06-01 11:13:09 +02:00
Daniel Napora 96ed5973d8 conky menu,pcmanwp 2023-05-29 21:16:10 +02:00
Daniel Napora f0e8f8d509 PyRadio module is back 2023-05-17 00:04:59 +02:00
Daniel Napora 4a3eab634e do not allow to edit other themes than MBcolors in ~/.themes 2023-05-14 23:35:12 +02:00
Daniel Napora ab0f7815d2 cava mod upd, pyradio disabled for now 2023-05-14 14:34:17 +02:00
Daniel Napora 5a594efb44 lot of polishing 2023-05-10 23:50:21 +02:00
Daniel Napora 9f859f2187 upd 2023-05-09 16:45:54 +02:00
Daniel Napora 876c236e88 Cava module 2023-05-09 14:14:23 +02:00
Daniel Napora 19b950ea05 modules launchers exposed in sidebar of main window 2023-05-03 16:00:14 +02:00
Daniel Napora e7773f0dba mbclr improvements, conkyctl fix 2023-04-22 20:49:26 +02:00
Daniel Napora aad57c20d0 w2theme use correct palette 2023-01-25 21:17:32 +01:00
Daniel Napora 0fa2536dac cache_dir for thumbs and palletes changed 2023-01-18 23:58:47 +01:00
74 changed files with 5459 additions and 2282 deletions

106
bin/cavactl 100755
View File

@ -0,0 +1,106 @@
#!/bin/bash
# cavactl - cava script for Mabox
CFGFILE=~/.config/cava/config
reload_config() {
pkill -USR1 cava
}
reload_colors() {
pkill -USR2 cava > /dev/null 2>&1
}
mode() {
case "$1" in
solid) sd ".*gradient .*" "gradient = 0" ${CFGFILE};;
gradient) sd ".*gradient .*" "gradient = 1" ${CFGFILE};;
esac
reload_colors
}
foregroundcolor(){
sd ".*foreground .*" "foreground = '${1}'" ${CFGFILE}
}
foreground() {
sd ".*foreground .*" "foreground = '${1}'" ${CFGFILE}
sd ".*gradient .*" "gradient = 0" ${CFGFILE}
reload_colors
}
gradientcolors() {
n=1
for i in $(pastel gradient -n 8 ${1} ${2}|pastel format hex)
do
sd ".*gradient_color_${n}.*" "gradient_color_${n} = '${i}'" ${CFGFILE}
((n++))
done
}
gradient() {
n=1
for i in $(pastel gradient -n 8 ${1} ${2}|pastel format hex)
do
sd ".*gradient_color_${n}.*" "gradient_color_${n} = '${i}'" ${CFGFILE}
((n++))
done
sd ".*gradient .*" "gradient = 1" ${CFGFILE}
sd ".*gradient_count .*" "gradient_count = 8" ${CFGFILE}
reload_colors
}
grad_from() {
read GR_TO <<< "$(grep '.*gradient_color_8 ' ${CFGFILE} | cut -d"'" -f2)"
gradient "$1" "${GR_TO}"
}
grad_to() {
read GR_FROM <<< "$(grep '.*gradient_color_1 ' ${CFGFILE} | cut -d"'" -f2)"
gradient "${GR_FROM}" "$1"
}
bar_width () {
sd ".*bar_width .*" "bar_width = ${1}" ${CFGFILE}
reload_config
}
bar_spacing() {
sd ".*bar_spacing .*" "bar_spacing = ${1}" ${CFGFILE}
reload_config
}
info () {
case "$LANG" in
pl*)
INFO_HEAD="Porady dla Cava"
INFO_TXT="\nCava jest uruchomiona w przezroczystym oknie...\n\
Możesz je więc <b>przesuwać</b> lub <b>zmieniać rozmiar</b> tak jak każde inne okno\n\
<i>Przesuwanie</i>: przytrzymaj <b>Alt</b> i przeciągnij\n\
<i>Zmiana rozmiaru</i>: przytrzymaj <b>Alt</b> i przeciągnij prawym przyciskiem myszy\n\n \
Użyj strzałek <b> </b>, aby zmienić szerokość słupków"
;;
*)
INFO_HEAD="Cava tips & tricks"
INFO_TXT="\nCava runs inside transparent window...\n\
So you can <b>move</b> or <b>resize</b> it like any other window\n\
<i>Move</i>: hold <b>Alt</b> and drag\n\
<i>Resize</i>: hold <b>Alt</b> and drag with right mouse button\n\n \
Use arrows <b> </b> to change bar width"
;;
esac
notify-send.sh -i amarok_playcount -u critical "$INFO_HEAD" "$INFO_TXT"
}
case "$1" in
mode) mode "$2";;
foregroundcolor) foregroundcolor "$2";;
foreground) foreground "$2";;
gradientcolors) gradientcolors "$2" "$3";;
gradient) gradient "$2" "$3";;
grad_from) grad_from "$2";;
grad_to) grad_to "$2";;
reload) reload_config;;
reload_colors)reload_colors;;
bar_width)bar_width "$2";;
bar_spacing)bar_spacing "$2";;
info) info;;
*):;;
esac

View File

@ -7,6 +7,8 @@
CNF_DIR="$HOME/.config/colorizer/conky"
CNF_FILE="$CNF_DIR/conky.cfg"
source <(grep = $CNF_FILE)
PKGS=$(checkupdates | wc -l)
mb-setvar updates=${PKGS}
case "$LANG" in
pl*)
@ -49,7 +51,7 @@ esac
if [ -f /tmp/"$CONKYPID" ]; then
PKGS=$(pamac checkupdates --no-aur -q| wc -l)
PKGS=$(checkupdates | wc -l)
if [ "$PKGS" != "0" ]; then
if [[ "$update_notifications" == "true" ]];then
notify-send.sh -u critical -i mbcc "$AVAIL_UPDATES" "$PKGS_TO_UPDATE $PKGS" -o "$YAY_UPD:terminator -T '$YAY_UPD' -e yay" \

View File

@ -1,7 +1,7 @@
#!/bin/bash
#
# colorizer - set of tools for Mabox theming
# Copyright (C) 2022 Daniel Napora <napcok@gmail.com>
# colorizer - set of tools for Mabox (auto)theming
# Copyright (C) 2022-2023 Daniel Napora <napcok@gmail.com>
#
# 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
@ -23,35 +23,17 @@ CUSTOM_COMMANDS_FILE="$CNF_DIR/custom.csv"
if [ ! -f $CNF_FILE ]; then
cat <<EOF > ${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
# Copy new nitrogen wrapper
cp -a /usr/share/mabox/common/wrappers/nitrogen ~/.local/bin/
fi
source "$CNF_FILE"
@ -64,34 +46,12 @@ case "$LANG" in
REVERSE="odwrotnie"
CURRENTCONF="Obecna konfiguracja"
MODULES="Moduły"
OBTHEME="Motyw Openbox"
MENUPANELS="Menu i Panele"
FONTS="Konfiguruj <b>Czcionki</b>"
OBTHEME="Motyw <b>Openbox</b>"
MENUPANELS="<b>Menu</b> i Panele boczne"
COLORIZER_CONKY="<b>Conky</b> Manager i Colorizer"
CAVA="Cava - wizualizacja dźwięku"
TERMINALTHEME="Motyw terminala"
WALLCOLORS="Kolory z tapety"
ACCENTINFO="<i>ustaw kolor akcentu...</i>"
SELECT_ACTION="<i>wybierz działanie...</i>"
COLOR="Kolor"
SETACCENT="Ustaw kolor akcentu"
ACTIVE_WIN="<i>aktywne okno...</i>"
OB_ACTIVE_BG="Tło paska tytułowego"
OB_ACTIVE_BGTO="Tło paska tytułowego 2 <i>(dla gradientu)</i>"
OB_ACTIVE_TEXT="Tytuł aktywnego okna"
OB_ACTIVE_BORDER="Obramowanie"
INACTIVE_WIN="<i>nieaktywne okno...</i>"
OB_INACTIVE_BG="Tło paska tytułowego"
OB_INACTIVE_BGTO="Tło paska tytułowego 2 <i>(dla gradientu)</i>"
OB_INACTIVE_TEXT="Tytuł nieaktywnego okna"
OB_INACTIVE_BORDER="Obramowanie"
CONKY_BGCOLOR_ALL="Kolor tła (wszystkie)"
RUNNING_CONKYS="<i>działające Conky...</i>"
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 <b>systemowe</b>"
@ -104,12 +64,7 @@ case "$LANG" in
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?"
GRADIENTS_ACT="Działanie gradientów w menu gł."
EDITCONF="Edytuj plik konfiguracyjny"
RESET="Resetuj ustawienia Colorizera"
YES="Tak"
@ -137,10 +92,6 @@ case "$LANG" in
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="<b>accent</b> - zmień kolor akcentu"
SELECT="<b>select</b> - wybierz akcję..."
DIFF_CONKY_COLORS="Różne kolory dla Conky"
HELP="Okno główne i Pomoc"
RESET_COLORS="Resetuj kolory"
RESET_CHOOSE="Resetuj..."
@ -149,7 +100,7 @@ case "$LANG" in
RES_CONKY="Conky"
RES_MENU="Menu i Paneli"
RES_ALL="Wszystko <i>(OB, menu, conky)</i>"
COLORIZE="Pokoloruj..."
COLORIZE="Szybko Pokoloruj lub Resetuj..."
;;
*)
REGENERATE="(Re)Generate from wallpaper colors..."
@ -158,34 +109,12 @@ case "$LANG" in
REVERSE="reverse"
CURRENTCONF="Current configuration"
MODULES="Modules"
OBTHEME="Openbox Theme"
MENUPANELS="Menus/Panels"
FONTS="Configure <b>Fonts</b>"
OBTHEME="<b>Openbox</b> Theme"
MENUPANELS="<b>Menus/SidePanels</b>"
COLORIZER_CONKY="<b>Conky</b> Manager &amp; Colorizer"
CAVA="Cava - Audio Visualizer"
TERMINALTHEME="Terminal color scheme"
WALLCOLORS="Wallpaper Colors"
ACCENTINFO="<i>click to set accent color</i>"
SELECT_ACTION="<i>select action...</i>"
COLOR="Color"
SETACCENT="Set accent color"
ACTIVE_WIN="<i>active window...</i>"
OB_ACTIVE_BG="Background"
OB_ACTIVE_BGTO="Background 2 <i>(for gradients)</i>"
OB_ACTIVE_TEXT="Title text color"
OB_ACTIVE_BORDER="Border"
INACTIVE_WIN="<i>inactive window...</i>"
OB_INACTIVE_BG="Background"
OB_INACTIVE_BGTO="Background 2 <i>(for gradients)</i>"
OB_INACTIVE_TEXT="Title text color"
OB_INACTIVE_BORDER="Border"
CONKY_BGCOLOR_ALL="Background color (all)"
RUNNING_CONKYS="<i>running Conkys...</i>"
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="<b>System</b> Wallpapers"
USERWALLPAPER="<b>User</b> Wallpapers"
@ -197,12 +126,7 @@ case "$LANG" in
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?"
GRADIENTS_ACT="Gradients in Rootmenu actions"
EDITCONF="Edit config file"
RESET="Reset to defaults"
YES="Yes"
@ -220,7 +144,7 @@ case "$LANG" in
SHOW="show"
HIDE="hide"
EDIT_RELATED="Edit related tools"
RESET_RELATED="Restet related tools"
RESET_RELATED="Reset related tools"
LXAPPEARANCE="GTK theme and icons"
THEMEMANAGER="Theme manager"
WALLPAPERS="Wallpapers directories"
@ -230,9 +154,6 @@ case "$LANG" in
CHANGE="Change"
USERDIR_NOT_EXIST="directory does not exist"
CREATE_USERDIR="Create directory"
ROOTMENU_COLORS_ACTION="Rootmenu Colors Action"
ACCENT="<b>accent</b> - chenge accent color"
SELECT="<b>select</b> - select action"
DIFF_CONKY_COLORS="Different colors for each Conky"
HELP="Main Window and Help"
RESET_COLORS="Reset Colors"
@ -242,7 +163,7 @@ case "$LANG" in
RES_CONKY="Conkies"
RES_MENU="Menus / Panels"
RES_ALL="All <i>(OB, menus, conky)</i>"
COLORIZE="Colorize..."
COLORIZE="Quickly Colorize or Reset..."
;;
esac
@ -258,14 +179,24 @@ Color Menu,colormenu
EOF
fi
WALLPALDIR="$HOME/.config/colormenu/palettes/wallp"
WALLPALDIR="$HOME/.cache/colorizer/palettes"
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"
NAME=${WALLPATH////_}
if [[ "${NAME}" =~ ^_home_.* ]]; then
n=${#HOME}
((n++))
NAME=${NAME:${n}}
fi
mapfile -t w < "$WALLPALDIR/$WALLPAPER.clr"
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
@ -277,6 +208,55 @@ mint+=("#6cabcd" "#5b73c4" "#aa876a" "#9d9d9d" "#db9d61" "#c76199" "#8c6ec9" "#c
out+=("^sep(Mabox Colorizer)")
out+=(" $COLORIZE,^pipe(randomizer c)")
out+=("^sep($MODULES)")
out+=("<big></big> $FONTS,colorizer-fonts -s")
out+=("^sep()")
out+=("$OBTHEME,colorizer-ob -s")
#out+=("TINT2,^pipe(colorizer-tint2)")
out+=("$MENUPANELS,colorizer-menus -s")
out+=("$COLORIZER_CONKY,colorizer-conky -s")
out+=("^sep()")
#out+=("Systray HW monitor,^pipe(colorizer-phwmon)")
#if pgrep -f pyradio >/dev/null ;then
# out+=("^sep()")
out+=("PyRadio,colorizer-pyradio -s")
#fi
#if pgrep -f cava >/dev/null ;then
# out+=("^sep()")
out+=("$CAVA,colorizer-cava -s")
#fi
### 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")
out+=("^sep($RANDWALL)")
syswallp=$(shopt -s nullglob ; set -- /usr/share/backgrounds/*.{jpg,JPG,jpeg,JPEG,png,PNG} ; echo $#)
out+=(" $SYSWALLPAPER (<small>${syswallp}</small>),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 (<small>${userwallp}</small>),nitrogen --random ${user_wallpapers_dir} --set-scaled --save;colorizer -s")
fi
out+=("^sep()")
out+=("$WALLPAPERS,^checkout(wallpapersettings)")
if [[ "$gradient_obtheme" == "yes" || "$gradient_menu" == "yes" ]];then
[[ "$gradient_obtheme" == "yes" ]] && OBGRAD="OB" || OBGRAD=""
[[ "$gradient_menu" == "yes" ]] && MENUGRAD="menus" || MENUGRAD=""
out+=("^sep($GRADIENTS <small>$OBGRAD $MENUGRAD</small>)")
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)")
fi
out+=("^sep($SETTINGS)")
out+=(" $SETTINGS,^checkout(settings)")
LNG=${LANG:0:2}
if [[ -f "/usr/share/mabox-colorizer/help/$LNG.html" ]];then
@ -284,242 +264,7 @@ out+=(" $HELP,yhtml /usr/share/mabox-colorizer/help/$LNG.html 'Mabox Coloriz
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
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 [ <b>${wall2themes_menu}</b> ],^checkout(mp)")
#out2+=("Conky [ <b>${wall2themes_conky}</b> ],^checkout(conky)")
#out2+=("PyRadio [ <b>${wall2themes_pyradio}</b> ],^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+=("<tt><small>$i</small> <span bgcolor='$i'> </span></tt>,^checkout(${i:1}${n}")
out2+=("^tag(${i:1}${n})")
out2+=("^sep(<tt>$COLOR <span bgcolor='$i'> </span> <small>$i</small> <span bgcolor='$i'> </span></tt>)")
out2+=("$SETACCENT,w2theme accent '${i}';colorizer -s")
out2+=("^sep(<big>OpenBox</big>)")
out2+=("^sep(<small>$ACTIVE_WIN</small>)")
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(<small>$INACTIVE_WIN</small>)")
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(<big>$MENUPANELS</big>)")
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(<big>Conky</big>)")
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(<small>$RUNNING_CONKYS</small>)")
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+=("<tt><small>$i</small> <span bgcolor='$i'> </span></tt>,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+=("<tt><small>$i</small> <span bgcolor='$i'> </span></tt>,^checkout(${i:1}${n}")
out3+=("^tag(${i:1}${n})")
out3+=("^sep(<tt>$COLOR <span bgcolor='$i'> </span> <small>$i</small> <span bgcolor='$i'> </span></tt>)")
out3+=("$SETACCENT,w2theme accent '${i}';colorizer -s")
out3+=("^sep(<big>OpenBox</big>)")
out3+=("^sep(<small>$ACTIVE_WIN</small>)")
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(<small>$INACTIVE_WIN</small>)")
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(<big>$MENUPANELS</big>)")
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(<big>Conky</big>)")
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(<small>$RUNNING_CONKYS</small>)")
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+=("<tt><small>$i</small> <span bgcolor='$i'> </span></tt>,w2theme accent '${i}';colorizer -s")
fi
done
out2+=("^sep(Mint)")
for i in ${mint[@]};do
if [ $rootcolors = select ];then
((n+=1))
out2+=("<tt><small>$i</small> <span bgcolor='$i'> </span></tt>,^checkout(${i:1}${n}")
out3+=("^tag(${i:1}${n})")
out3+=("^sep(<tt>$COLOR <span bgcolor='$i'> </span> <small>$i</small> <span bgcolor='$i'> </span></tt>)")
out3+=("$SETACCENT,w2theme accent '${i}';colorizer -s")
out3+=("^sep(<big>OpenBox</big>)")
out3+=("^sep(<small>$ACTIVE_WIN</small>)")
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(<small>$INACTIVE_WIN</small>)")
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(<big>$MENUPANELS</big>)")
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(<big>Conky</big>)")
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(<small>$RUNNING_CONKYS</small>)")
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+=("<tt><small>$i</small> <span bgcolor='$i'> </span></tt>,w2theme accent '${i}';colorizer -s")
fi
done
out2+=("^sep(Plasma)")
for i in ${plasma[@]};do
if [ $rootcolors = select ];then
((n+=1))
out2+=("<tt><small>$i</small> <span bgcolor='$i'> </span></tt>,^checkout(${i:1}${n}")
out3+=("^tag(${i:1}${n})")
out3+=("^sep(<tt>$COLOR <span bgcolor='$i'> </span> <small>$i</small> <span bgcolor='$i'> </span></tt>)")
out3+=("$SETACCENT,w2theme accent '${i}';colorizer -s")
out3+=("^sep(<big>OpenBox</big>)")
out3+=("^sep(<small>$ACTIVE_WIN</small>)")
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(<small>$INACTIVE_WIN</small>)")
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(<big>$MENUPANELS</big>)")
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(<big>Conky</big>)")
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(<small>$RUNNING_CONKYS</small>)")
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+=("<tt><small>$i</small> <span bgcolor='$i'> </span></tt>,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 (<small>${syswallp}</small>),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 (<small>${userwallp}</small>),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 <small>$OBGRAD $MENUGRAD</small>)")
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)")
fi
### RESET ACTIONS (replaced by Randomizer)
#out+=("^sep($RESET_COLORS)")
#out+=("$RESET_CHOOSE,^checkout(resetroot)")
@ -540,54 +285,7 @@ fi
###
out2+=("^tag(settings)")
out2+=("^sep($AUTOGEN_THEMES)")
out2+=(" $AUTOGEN_THEMES [ <b>${wall2themes}</b> ],^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 [ <b>${wall2themes_ob}</b> ],^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 [ <b>${wall2themes_menu}</b> ],^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 [ <b>${wall2themes_conky}</b> ],^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 [ <b>$conky_diff_colors</b> ],^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 [ <b>${wall2themes_pyradio}</b> ],^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)")
@ -611,18 +309,21 @@ out3+=("^sep(<i>${user_wallpapers_dir} - $USERDIR_NOT_EXIST</i>")
out3+=(" $CREATE_USERDIR,mkdir -p ${user_wallpapers_dir};colorizer -s")
out3+=(" $CHANGE ($EDITCONF),xdg-open $CNF_FILE")
fi
out2+=("^sep($GRADIENTS)")
out2+=("$GRAD_OB [ <b>${gradient_obtheme}</b> ],^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 [ <b>${gradient_menu}</b> ],^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 [ <b>${gradient_conkies}</b> ],^checkout(grad_conky)")
out2+=("^sep($GRADIENTS_ACT)")
[[ "$gradient_obtheme" == "yes" ]] && out2+=("<big></big> $GRAD_OB,mb-setvar gradient_obtheme=no $CNF_FILE;colorizer -s") || out2+=("<big></big> $GRAD_OB,mb-setvar gradient_obtheme=yes $CNF_FILE;colorizer -s")
#out2+=("$GRAD_OB [ <b>${gradient_obtheme}</b> ],^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")
[[ "$gradient_menu" == "yes" ]] && out2+=("<big></big> $GRAD_MENU,mb-setvar gradient_menu=no $CNF_FILE;colorizer -s") || out2+=("<big></big> $GRAD_MENU,mb-setvar gradient_menu=yes $CNF_FILE;colorizer -s")
#out2+=("$GRAD_MENU [ <b>${gradient_menu}</b> ],^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 [ <b>${gradient_conkies}</b> ],^checkout(grad_conky)")
#out3+=("^tag(grad_conky")
#out3+=("^sep($GRAD_CONKY)")
#out3+=("$YES,mb-setvar gradient_conkies=yes $CNF_FILE;colorizer -s")
@ -636,27 +337,21 @@ out2+=("^sep($OTHER_SETTINGS)")
#out2+=("$ADDLAUNCHER,cp /usr/share/applications/colorizer.desktop ~/.config/tint2/launcherapps/;killall -SIGUSR1 tint2;colorizer -s")
#fi
out2+=("$ROOTMENU_COLORS_ACTION [ <b>$rootcolors</b> ],^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 [ <b>${colorizer_size}</b> ],^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 [ <b>${related_tools}</b> ],^checkout(related)")
[[ "$related_tools" == "show" ]] && out2+=("<big></big> $SHOW_RELATED,^checkout(related)") || out2+=("<big></big> $SHOW_RELATED,^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")
[[ "$related_tools" == "show" ]] && out3+=("<big>綠</big> $SHOW,colorizer -s" "<big>祿</big> $HIDE,mb-setvar related_tools=hide $CNF_FILE;colorizer -s") || out3+=("<big>祿</big> $SHOW,mb-setvar related_tools=show $CNF_FILE;colorizer -s" "<big>綠</big> $HIDE,colorizer -s")
out3+=("^sep()")
out3+=(" $EDIT_RELATED,xdg-open $CUSTOM_COMMANDS_FILE")
out3+=(" $RESET_RELATED,rm $CUSTOM_COMMANDS_FILE;colorizer -s")
out3+=("󰁯 $RESET_RELATED,rm $CUSTOM_COMMANDS_FILE;colorizer -s")
out2+=("^sep()")
out2+=(" $EDITCONF,xdg-open $CNF_FILE")
out2+=(" $RESET,rm $CNF_FILE;colorizer -s")
out2+=("󰁯 $RESET,rm $CNF_FILE;colorizer -s")
### RUN
@ -678,15 +373,16 @@ if [[ "$1" == "-s" ]]; then
MENU_PADDING_TOP=${jgtools_padding:-0}
MENU_HALIGN="left"
jgmenu_icon_size=0
TABS=180
[ $(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))
JGWIDTH=$((jgtools_padding + 270 + jgtools_padding))
MENU_PADDING_TOP=$((jgtools_padding + 150))
THUMBDIR="$HOME/.config/mabox/wallthumbs"
THUMBDIR="$HOME/.cache/colorizer/thumbs"
mkdir -p ${THUMBDIR}
THUMB="${THUMBDIR}/${WALLPAPER}.png"
THUMB="${THUMBDIR}/${NAME}.png"
if [[ ! -f "$THUMB" ]]
then
convert ${WALLPATH} -resize 270x150^ -gravity center -extent 270x150 ${THUMB}
@ -694,8 +390,8 @@ if [[ "$1" == "-s" ]]; then
# colors
n=0
m=0
X=$((jgtools_padding + 12))
Y=$((jgtools_padding + 104))
X=$((jgtools_padding + 4))
Y=$((jgtools_padding + 96))
for i in "${w[@]}"
do
if [[ "$n" -lt "10" ]];then
@ -710,29 +406,12 @@ if [[ "$1" == "-s" ]]; then
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 <<EOF > ${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}, <span size='10400' font_family='Ubuntu'><small>${THGEN}</small> <span fgcolor='$FGCOL'><b>$STATE</b></span></span>
@text,,$((jgtools_padding + 198)),$((jgtools_padding + 124)),120,30,0,left,top,#FFFFFF ,${WINCLR},<span size='10400' font_family='Ubuntu'><b>Colorizer</b></span>
@icon,,$((jgtools_padding)),$((jgtools_padding)),270,150,4,left,top,,,${THUMB}
@rect,,$((jgtools_padding)),$((jgtools_padding + 114)),270,32,0,left,top,#222222 20,#222222 70,
@text,,$((jgtools_padding + 168)),$((jgtools_padding + 116)),120,30,0,left,top,#FFFFFF ,${WINCLR},<span size='10400' font_family='Ubuntu'><b>Colorizer</b></span>
$(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[@]}")

236
bin/colorizer-cava 100755
View File

@ -0,0 +1,236 @@
#!/bin/bash
#
# colorizer - set of tools for Mabox (auto)theming
# Copyright (C) 2022-2023 Daniel Napora <napcok@gmail.com>
#
# 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/>.
wmctrl -R cavatransparent
me="colorizer-cava -s"
CFGFILE=~/.config/cava/config
# get wallpaper color palette
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
case "$LANG" in
pl*)
INFO="Cava porady"
COLORIZE_CAVA="Pokoloruj Cava"
COLOR="Jednolity kolor"
REVERSE_GRADIENT="Odwróć kolory gradientu"
START_CAVA="Uruchom Cava"
STOP_CAVA="Zakończ Cava"
GENERATEFROMWP="Generuj z kolorów tapety..."
LIGHTBG="Jasne do ciemnego"
DARKBG="Ciemne do jesnego"
BARS="Słupki"
BAR_WIDTH="Szerokość słupków"
BAR_SPACING="Odstęp między słupkami"
COLOR_MODE="Tryb kolorowania"
SOLID_COLOR="Jednolity kolor"
GRADIENT="Gradient"
PREGRADIENT="Zastosuj gotowy gradient"
MODGRAD_FROM="Gradient kolor 1"
MODGRAD_TO="Gradient kolor 2"
EDITCONF="Edytuj plik konfiguracyjny"
RELOAD="Przeładuj konfigurację"
RELOAD_COLORS="Przeładuj kolory"
_COLORIZER_ROOT="<b>Colorizer</b> - menu główne"
;;
*)
INFO="CaVa tips &amp; tricks"
COLORIZE_CAVA="Colorize Cava"
COLOR="Solid Color"
REVERSE_GRADIENT="Reverse gradient's colors"
START_CAVA="Start Cava"
STOP_CAVA="Stop Cava"
GENERATEFROMWP="Generate from wallpaper colors..."
LIGHTBG="Light to Dark"
DARKBG="Dark to Light"
BARS="Bars"
BAR_WIDTH="Bar width"
BAR_SPACING="Bar spacing"
COLOR_MODE="Color mode"
SOLID_COLOR="Solid color"
GRADIENT="Gradient"
PREGRADIENT="Apply predefined gradient"
MODGRAD_FROM="Modify Gradient From"
MODGRAD_TO="Modify Gradient To"
EDITCONF="Edit config file"
RELOAD="Reload config"
RELOAD_COLORS="Reload colors only"
_COLORIZER_ROOT="<b>Colorizer</b> rootmenu"
;;
esac
getvalues () {
read FG <<< "$(grep '.*foreground ' ${CFGFILE} | cut -d"'" -f2)"
read BW <<< "$(grep '.*bar_width ' ${CFGFILE} | cut -d"=" -f2)"
read BS <<< "$(grep '.*bar_spacing ' ${CFGFILE} | cut -d"=" -f2)"
read GR <<< "$(grep '.*gradient ' ${CFGFILE} | cut -d"=" -f2)"
read GR_FROM <<< "$(grep '.*gradient_color_1 ' ${CFGFILE} | cut -d"'" -f2)"
read GR_TO <<< "$(grep '.*gradient_color_8 ' ${CFGFILE} | cut -d"'" -f2)"
if [ ${#FG} != 7 ];then
FGC="#59cc33"
else
FGC=${FG}
fi
FGT=$(pastel textcolor ${FGC}|pastel format hex)
}
getvalues
pgrep -f cavatransparent > /dev/null && out+=("<big>󰺢</big> $STOP_CAVA,mb-music cavakill;$me") || out+=("<big>󰺢</big> $START_CAVA,mb-music cavastart;$me")
out+=("^sep($COLORIZE_CAVA)")
out+=("<tt><span bgcolor='$FGC' fgcolor='$FGT'> ${FGC} </span></tt> $COLOR,^pipe(mbclr '$FGC' cavactl foreground Cava_Bar_Color '$me')")
out+=("^sep($GRADIENT)")
out+=("<span bgcolor='$GR_FROM'> </span><span bgcolor='$GR_TO'> </span> $PREGRADIENT,^pipe(mbgrad cava)")
out+=("<span bgcolor='$GR_TO'> </span><span bgcolor='$GR_FROM'> </span> $REVERSE_GRADIENT,cavactl gradient '${GR_TO}' '${GR_FROM}';$me")
out+=("^sep()")
out+=("<tt><span bgcolor='$GR_FROM'> </span></tt> $MODGRAD_FROM,^pipe(mbclr '$GR_FROM' cavactl grad_from Cava_Grad_From_Color '$me')")
out+=("<tt><span bgcolor='$GR_TO'> </span></tt> $MODGRAD_TO,^pipe(mbclr '$GR_TO' cavactl grad_to Cava_Grad_To_Color '$me')")
out+=("^sep($COLOR_MODE)")
[[ "$GR" == "0" ]] && out+=("<big>綠</big> $SOLID_COLOR,cavactl mode solid;$me" "<big>󰝦</big> $GRADIENT,cavactl mode gradient;$me") || out+=("<big>󰝦</big> $SOLID_COLOR,cavactl mode solid;$me" "<big>綠</big> $GRADIENT,cavactl mode gradient;$me")
out+=("^sep(<i>$GENERATEFROMWP</i>)")
out+=("<span bgcolor='${w[-3]}'> </span><span bgcolor='${w[3]}'> </span> $LIGHTBG,w2theme cava light;$me")
out+=("<span bgcolor='${w[3]}'> </span><span bgcolor='${w[-3]}'> </span> $DARKBG,w2theme cava dark;$me")
out+=("^sep($BARS)")
out+=("$BAR_WIDTH [ <b>$BW</b> ],^checkout(barwidth)")
out2+=("^tag(barwidth)")
out2+=("^sep($BAR_WIDTH)")
for i in 1 2 3 4 5 6 8 10
do
out2+=("$i,cavactl bar_width $i;$me")
done
out+=("$BAR_SPACING [ <b>$BS</b> ],^checkout(barspacing)")
out2+=("^tag(barspacing)")
out2+=("^sep($BAR_SPACING)")
for i in 0 1 2 3 4 5 6 8 10
do
out2+=("$i,cavactl bar_spacing $i;$me")
done
out+=("^sep()")
out+=(" $EDITCONF,xdg-open ~/.config/cava/config")
out+=("󰑓 $RELOAD,cavactl reload;$me")
out+=("󰑓 $RELOAD_COLORS,cavactl reload_colors;$me")
out+=("^sep()")
out+=(" $INFO,cavactl info")
### 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_HALIGN="left"
jgmenu_icon_size=0
[ $(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
[[ "$GR" == "1" ]] && clr=${GR_FROM} || clr=${FG}
cat <<EOF > ${MENU_ITEMS}
@icon,,$((jgtools_padding)),$((jgtools_padding)),270,150,4,left,top,,,${THUMB}
#@icon,,$((jgtools_padding + 4)),$((jgtools_padding + 4)),270,150,4,left,top,,,/usr/share/mabox-colorizer/img/colorizer-conky.png
@rect,,$((jgtools_padding)),$((jgtools_padding+100)),12,50,0,left,top,,${clr} 100,
@rect,,$((jgtools_padding+20)),$((jgtools_padding+115)),12,35,0,left,top,,${clr} 100,
@rect,,$((jgtools_padding+40)),$((jgtools_padding+124)),12,26,0,left,top,,${clr} 100,
@rect,,$((jgtools_padding+60)),$((jgtools_padding+114)),12,36,0,left,top,,${clr} 100,
@rect,,$((jgtools_padding+80)),$((jgtools_padding+100)),12,50,0,left,top,,${clr} 100,
@rect,,$((jgtools_padding+100)),$((jgtools_padding+96)),12,54,0,left,top,,${clr} 100,
@rect,,$((jgtools_padding+120)),$((jgtools_padding+74)),12,76,0,left,top,,${clr} 100,
@rect,,$((jgtools_padding+140)),$((jgtools_padding+64)),12,86,0,left,top,,${clr} 100,
@rect,,$((jgtools_padding+160)),$((jgtools_padding+76)),12,74,0,left,top,,${clr} 100,
@rect,,$((jgtools_padding+180)),$((jgtools_padding+94)),12,56,0,left,top,,${clr} 100,
@rect,,$((jgtools_padding+200)),$((jgtools_padding+114)),12,36,0,left,top,,${clr} 100,
@rect,,$((jgtools_padding+220)),$((jgtools_padding+129)),12,21,0,left,top,,${clr} 100,
@rect,,$((jgtools_padding+240)),$((jgtools_padding+119)),12,31,0,left,top,,${clr} 100,
@rect,,$((jgtools_padding+260)),$((jgtools_padding+110)),10,40,0,left,top,,${clr} 100,
@rect,,${jgtools_padding},$((jgtools_padding + 120)),270,28,0,left,top,#222222 20,#222222 70,
@text,,$((jgtools_padding + 108)),$((jgtools_padding + 120)),120,28,0,left,top,#FFFFFF ,${WINCLR},<span size='10400' font_family='Ubuntu'><b>Colorizer</b> Cava</span>
$(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[@]}"

View File

@ -1,10 +1,32 @@
#!/bin/bash
#
# colorizer - set of tools for Mabox (auto)theming
# Copyright (C) 2022-2024 Daniel Napora <napcok@gmail.com>
#
# 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/>.
SYSSCHEMES="/usr/share/mabox-colorizer/colorschemes/conky.csv"
USERSCHEMES="$HOME/.config/colorizer/conky/c_userschemes.csv"
me="colorizer-conky -s"
CONKYDIR="$HOME/.config/conky"
BASECONKY="$CONKYDIR/sysinfo_mbcolor.conkyrc"
COLORIZERDIR="$HOME/.config/colorizer"
CONKYTHEMEDIR="$COLORIZERDIR/conky/themes"
if [ ! -d "$CONKYTHEMEDIR" ];then
mkdir -p "$CONKYTHEMEDIR"
@ -28,6 +50,23 @@ update_notifications=true
EOF
fi
### 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"
case "$LANG" in
pl*)
COLORIZECONKY="Conky Manager"
@ -37,25 +76,38 @@ case "$LANG" in
NOT_FULLY_SUPPORTED="Częściowo wspierane..."
UNSUPPORTED="Conky - częściowo wspierane"
UNSUPPORTED_START="kliknij aby uruchomić"
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"
MONOCHROMATIC="Monochromatyczny"
CHOOSE_AND_PICK="Wybierz wariant i pobierz kolor..."
GENERATEFROMWP="Generuj z kolorów tapety"
LIGHTBG="Jasne tło"
DARKBG="Ciemne tło"
GLOBALSETTINGS="Ustawienia globalne <small>(dla wszystkich)</small>"
REGENERATE="Motywy kolorów"
OPENTHEMEDIR="Otwórz katalog motywów"
APPLY_THEME="Zastosuj motyw"
DEFCOLOR="Domyślny kolor <small>(tekst i ramka)</small>"
COLOR_0="Kolor 0 <small>(tekst2)</small>"
COLOR_1="Kolor 1 <small>(większy tekst)</small>"
COLOR_2="Kolor 2 <small>(pasek/graf)</small>"
BACKGROUND="Kolor tła"
TRANSPARENT="Przezroczyste?"
TRANSPARENT="Przezroczyste tło?"
YES="Tak"
NO="Nie"
FONTS="Czcionka"
SELECTFONT="Wybierz czcionkę..."
INCREASE="Powiększ"
DECREASE="Pomniejsz"
FONTFAMILY_LBL="czcionka"
_EDIT_FAVFONTS="Edytuj ulubione czcionki"
FONTSIZE_LBL="rozmiar czcionki"
INCREASE="Powiększ do"
DECREASE="Pomniejsz do"
OLINE="Obrys"
SHADOW="Cień"
DRAW="Rysuj"
@ -71,6 +123,7 @@ case "$LANG" in
RESETALL="Resetuj wszystkie"
RESETCOLORS="Przywróć domyślne kolory"
AREYOUSURE="Czy aby napewno?"
_COLORIZER_ROOT="<b>Colorizer</b> - menu główne"
;;
*)
COLORIZECONKY="Conky Manager"
@ -80,25 +133,38 @@ case "$LANG" in
NOT_FULLY_SUPPORTED="Partially supported"
UNSUPPORTED="partially supported Conkies"
UNSUPPORTED_START="click to start"
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"
MONOCHROMATIC="Monochromatic"
CHOOSE_AND_PICK="Choose variant and pick color..."
GENERATEFROMWP="Generate from wallpaper colors"
LIGHTBG="Light Background"
DARKBG="Dark Background"
GLOBALSETTINGS="Global settings <small>(apply to all)</small>"
REGENERATE="Color schemes"
OPENTHEMEDIR="Open schemes dir"
APPLY_THEME="Apply colorscheme"
DEFCOLOR="Default color <small>(text and border)</small>"
COLOR_0="Color 0 <small>(text2)</small>"
COLOR_1="Color 1 <small>(bigger text)</small>"
COLOR_2="Color 2 <small>(bars/graphs)</small>"
BACKGROUND="Background color"
TRANSPARENT="Transparent?"
TRANSPARENT="Transparent background?"
YES="Yes"
NO="No"
FONTS="Font"
SELECTFONT="Select Font..."
INCREASE="Increase"
DECREASE="Decrease"
FONTFAMILY_LBL="font family"
_EDIT_FAVFONTS="Edit favorite fonts list"
FONTSIZE_LBL="font size"
INCREASE="Increase to"
DECREASE="Decrease to"
OLINE="Outline"
SHADOW="Shadow"
DRAW="Draw"
@ -114,6 +180,7 @@ case "$LANG" in
RESETALL="Reset all to defaults"
RESETCOLORS="Restore default colors"
AREYOUSURE="Are you sure?"
_COLORIZER_ROOT="<b>Colorizer</b> rootmenu"
;;
esac
@ -141,15 +208,26 @@ getvalues () {
read BORD <<< "$(grep draw_borders ${BASECONKY} | cut -d'=' -f2 | cut -d"," -f1)"
read STIP <<< "$(grep stippled_borders ${BASECONKY} | cut -d'=' -f2 | cut -d"," -f1)"
#currcolors="${WINCLR}|${CLR}|${CLR0}|${CLR1}|${CLR2}|"
cursettings="${WINCLR}|${CLR}|${CLR0}|${CLR1}|${CLR2}|${WINTRANS}|${OUTLINE}|${SHADES}|${BORD}|${STIP}|"
}
if pgrep -af "conky.*mbcolor" >/dev/null; then
if pgrep -u $USER -af "conky.*mbcolor" >/dev/null; then
getvalues
if [ ! -f "$USERSCHEMES" ]; then
mkdir -p "$HOME/.config/colorizer/conky/"
echo "WINCLR | CLR | CLR0 | CLR1 | CLR2 |WINTRANS|OUTLINE|SHADES | BORD | STIP |scheme_name" > "$USERSCHEMES"
fi
[[ "$WINTRANS" == false ]] && BG="bgcolor='$WINCLR'" || BG=""
out+=("^sep($COLORIZECONKY)")
out+=(" $MOVEABLEALL,conkyctl makemoveableall")
#out+=("^sep($COLORIZECONKY)")
#while read -r pid b c confpath
#do
@ -159,7 +237,7 @@ if pgrep -af "conky.*mbcolor" >/dev/null; then
#done < <(pgrep -af "conky.*mbcolor")
# array with running conkies - only filenames with full path
readarray -t running < <(pgrep -af "conky -c " | cut -d' ' -f4)
readarray -t running < <(pgrep -u $USER -af "conky -c " | cut -d' ' -f4)
#array with all conkies found
#for i in "$CONKYDIR"/*.con* "$CONKYDIR"/**/*.con*; do
@ -195,7 +273,7 @@ if pgrep -af "conky.*mbcolor" >/dev/null; then
fi
if [[ ${#notstarted[@]} > 0 ]];then
out+=("^sep($MORECONKIES)")
if [[ "$ALLSUPP" < 15 ]];then
if [[ "$ALLSUPP" < 12 ]];then
out+=("^sep(<small><i>$CLICKTOSTART</i></small>)")
for c in ${notstarted[@]};do
filename=${c##*/}
@ -207,7 +285,7 @@ if pgrep -af "conky.*mbcolor" >/dev/null; then
out+=("^sep()")
out+=("$STARTALL (${#notstarted[@]}),conkyctl startall;$me")
fi
else # too many conkies - not started go to submenu
else # too many conkies not started -> show them in submenu
out+=("$CLICKTOSTART (${#notstarted[@]}),^checkout(nstarted)")
out2+=("^tag(nstarted)")
for c in ${notstarted[@]};do
@ -239,77 +317,130 @@ if pgrep -af "conky.*mbcolor" >/dev/null; then
#GLOBAL START
out+=("^sep($GLOBALSETTINGS)")
out+=("<span bgcolor='#282828'> <span fgcolor='#ebdbb2'></span> <span fgcolor='#98971a'></span> <span fgcolor='#d79921'></span> <span fgcolor='#cc241d'></span> </span> $REGENERATE,^checkout(regenconky)")
out+=(" $MOVEABLEALL,conkyctl makemoveableall")
out+=("^sep()")
[[ "$WINTRANS" = true ]] && bga=1 || bga=100
out+=("<big><span bgcolor='$WINCLR' bgalpha='${bga}%'> <span fgcolor='$CLR'></span> <span fgcolor='$CLR0'></span> <span fgcolor='$CLR1'></span> <span fgcolor='$CLR2'></span> </span></big> $REGENERATE,^checkout(regenconky)")
out2+=("^tag(regenconky)")
out2+=("^sep($REGENERATE)")
out2+=("^sep($GENERATEFROMWP)")
out2+=("$LIGHTBG,w2theme conky light;$me")
out2+=("$DARKBG,w2theme conky dark;$me")
out2+=("^sep($APPLY_THEME)")
for i in "${COLORIZERDIR}"/conky/themes/*.colors
do
source "${i}"
themefilename=${i##*/}
themename=${themefilename%%.col*}
out2+=("<span bgcolor='$own_window_colour'> <span fgcolor='$default_color'></span> <span fgcolor='$color0'></span> <span fgcolor='$color1'></span> <span fgcolor='$color2'></span> </span> $themename,conkyctl settheme_all $themefilename;$me")
done
out2+=("^sep()")
out2+=(" $OPENTHEMEDIR,xdg-open ${COLORIZERDIR}/conky/themes/")
out+=("^sep()")
out2+=("^sep($MONOCHROMATIC)")
out2+=("^sep(<i>$CHOOSE_AND_PICK</i>)")
out2+=("<big></big> $DARKBG...,conkyctl mono pick dark")
out2+=("<big></big> $LIGHTBG...,conkyctl mono pick light")
if [ "$WINTRANS" == false ];then
out+=("<small><span bgcolor='$WINCLR'> </span><span weight='bold' ${BG} fgcolor='$WINCLR'> AbCd </span></small> $BACKGROUND,^pipe(mbclr '$WINCLR' conkyctl win_bgcolor_all '${BACKGROUND}' '$me')")
else
out+=("<small><span bgcolor='$WINCLR'> transparent </span></small> $BACKGROUND,^pipe(mbclr '$WINCLR' conkyctl win_bgcolor_all '${BACKGROUND}' '$me')")
fi
out+=("$TRANSPARENT [ <b>$WINTRANS</b> ],^checkout(trans)")
out2+=("^sep($GENERATEFROMWP)")
out2+=("<big><span bgcolor='${w[-1]}' fgcolor='${w[0]}'> $LIGHTBG <span fgcolor='${w[4]}'></span> <span fgcolor='${w[5]}'></span> </span></big>,w2theme conky light;$me")
out2+=("<big><span bgcolor='${w[0]}' fgcolor='${w[-1]}'> $DARKBG <span fgcolor='${w[-4]}'></span> <span fgcolor='${w[-5]}'></span> </span></big>,w2theme conky dark;$me")
out2+=("^sep($SYSTEM_SCHEMES)")
n=1
while IFS="|" read -r winclr clr clr0 clr1 clr2 wintrans outline shades bord stip scheme_name
do
((n=n+1))
[[ "$wintrans" = true ]] && bga=1 || bga=100
out2+=("<tt>$(printf '%-20s' "${scheme_name}")</tt><big><span bgcolor='$winclr' bgalpha='${bga}%'> <span fgcolor='$clr'>󰯲</span> <span fgcolor='$clr0'>󰝥</span> <span fgcolor='$clr1'>󰲠</span> <span fgcolor='$clr2'>󰲢</span> </span></big>,conkyctl applyscheme_all sys ${n};$me")
done < <(tail -n +2 "$SYSSCHEMES")
out2+=("^sep($YOUR_SCHEMES)")
out2+=("<big></big> $SAVE_CURRSCHEME,conkyctl savescheme '${cursettings}';$me")
out2+=("<big></big> $OPEN_SCHEMEFILE,xdg-open $USERSCHEMES")
out2+=("^sep()")
n=1
while IFS="|" read -r winclr clr clr0 clr1 clr2 wintrans outline shades bord stip scheme_name
do
((n=n+1))
[[ "$wintrans" = true ]] && bga=1 || bga=100
out2+=("<tt>$(printf '%-20s' "${scheme_name}")</tt><big><span bgcolor='$winclr' bgalpha='${bga}%'> <span fgcolor='$clr'>󰯲</span> <span fgcolor='$clr0'>󰝥</span> <span fgcolor='$clr1'>󰲠</span> <span fgcolor='$clr2'>󰲢</span> </span></big>,^checkout(sch${n})")
#echo "${own_window_colour}|${default_color}|${color0}|${color1}|${color2}|${themename}" >> "$USERSCHEMES"
out3+=("^tag(sch${n}")
out3+=("^sep($COLORSCHEME: ${scheme_name})")
out3+=("<big></big> $APPLY_SCHEME <big><span bgcolor='$winclr' bgalpha='${bga}%'> <span fgcolor='$clr'>󰯲</span> <span fgcolor='$clr0'>󰝥</span> <span fgcolor='$clr1'>󰲠</span> <span fgcolor='$clr2'>󰲢</span> </span></big>,conkyctl applyscheme_all usr ${n};$me")
out3+=("^sep($DELETE)")
out3+=("<big>󰗨</big> $DELETE_SCHEME ${scheme_name},conkyctl delscheme ${n};$me")
done < <(tail -n +2 "$USERSCHEMES")
out+=("^sep()")
out+=("<small><span bgcolor='$CLR'> </span><span weight='bold' ${BG} fgcolor='$CLR'> AbCd </span></small> $DEFCOLOR,^pipe(mbclr '$CLR' conkyctl default_color_all '${DEFCOLOR}' '$me')")
out+=("<small><span bgcolor='$CLR0'> </span><span weight='bold' ${BG} fgcolor='$CLR0'> AbCd </span></small> $COLOR_0,^pipe(mbclr '$CLR0' conkyctl color0_all '${COLOR_0}' '$me')")
out+=("<small><span bgcolor='$CLR1'> </span><span weight='bold' ${BG} fgcolor='$CLR1'> AbCd </span></small> $COLOR_1,^pipe(mbclr '$CLR1' conkyctl color1_all '${COLOR_1}' '$me')")
out+=("<small><span bgcolor='$CLR2'> </span><span weight='bold' ${BG} fgcolor='$CLR2'> AbCd </span></small> $COLOR_2,^pipe(mbclr '$CLR2' conkyctl color2_all '${COLOR_2}' '$me')")
#out+=("^sep()")
out2+=("^tag(trans)")
out2+=("^sep($TRANSPARENT)")
out2+=("$YES,conkyctl transparent_all true;$me")
out2+=("$NO,conkyctl transparent_all false;$me")
out+=("^sep()")
out+=("$FONTS [ <b>$FONT $FONTSIZE</b> ],^checkout(font)")
out+=("<big>󰛖</big> $FONTS [ <b><span font_family=\"${FONT}\">$FONT</span> $FONTSIZE</b> ],^checkout(font)")
out2+=("^tag(font)")
out2+=("^sep($FONTS)")
out2+=("$SELECTFONT,mb-setfont conky_all;$me")
out2+=("<big>󰛖</big> $SELECTFONT [ <b><span font_family=\"${FONT}\">$FONT</span> $FONTSIZE</b> ],mb-setfont conky_all;$me")
out2+=("^sep($FONTSIZE_LBL)")
out2+=("<big>󰧴</big> $INCREASE <b>$((FONTSIZE+1)) px</b>,conkyctl basefont_inc_all;$me")
out2+=("<big>󰧳</big> $DECREASE <b>$((FONTSIZE-1)) px</b>,conkyctl basefont_dec_all;$me")
out2+=("^sep()")
out2+=("<tt>++</tt> $INCREASE,conkyctl basefont_inc_all;$me")
out2+=("<tt>--</tt> $DECREASE,conkyctl basefont_dec_all;$me")
out+=("$OLINE/$SHADOW [ <b>$SHADOWS</b> ],^checkout(outline)")
out2+=("^tag(outline)")
out2+=("^sep($DRAW $OLINE/$SHADOW?)")
out2+=("$NO,conkyctl shades_all no;$me")
out2+=("^sep()")
out2+=("$DRAW $SHADOW,conkyctl shades_all shadow;$me")
out2+=("$DRAW $OLINE,conkyctl shades_all outline;$me")
sizes=(14 13 12 11 10 9 8 7 6)
for i in "${sizes[@]}"
do
[[ "$FONTSIZE" == "$i" ]] && out2+=("<big>綠</big> <b>$i px</b>,conkyctl basefont_size_all $i;$me") || out2+=("<big>祿</big> $i px,conkyctl basefont_size_all $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
#notify-send.sh "Ile" "${#favfonts[@]}"
if [ "${#favfonts[@]}" -gt 0 ];then
out2+=("^sep($FONTFAMILY_LBL)")
for fon in "${favfonts[@]}";do
[[ "$FONT" == "$fon" ]] && out2+=("<big>綠</big> <span font_family=\"${fon}\">${fon}</span>,$me") || out2+=("<big>祿</big> <span font_family=\"${fon}\">${fon}</span>,conkyctl basefont_family_all \"${fon}\";$me")
done
fi
out2+=("^sep()")
out2+=("<small> $_EDIT_FAVFONTS</small>,geany ~/.config/mabox/fonts.list")
[[ "$SHADOWS" == "shadow" ]] && out+=("<big>󰄲</big> $SHADOW,conkyctl shades_all no;$me") || out+=("<big>󰄱</big> $SHADOW,conkyctl shades_all shadow;$me")
[[ "$SHADOWS" == "outline" ]] && out+=("<big>󰄲</big> $OLINE,conkyctl shades_all no;$me") || out+=("<big>󰄱</big> $OLINE,conkyctl shades_all outline;$me")
out+=("^sep()")
out+=("$BORDERS [ <b>$BORD $STIP</b> ],^checkout(border)")
[[ "$BORD" == false ]] && out+=("<big>󰄱</big> $BORDERS [ <b>$STIP</b> ],^checkout(border)") || out+=("<big>󰄲</big> $BORDERS [ <b>$STIP</b> ],^checkout(border)")
out2+=("^tag(border)")
out2+=("^sep($DRAW $BORDERS?)")
out2+=("$YES,conkyctl draw_borders_all true;$me")
out2+=("$NO,conkyctl draw_borders_all false;$me")
out2+=("^sep($STIPPLED_BORDERS?)")
out2+=("0 ($SOLID_LINE),conkyctl stippled_borders_all 0;$me")
out2+=("^sep()")
out2+=("1,conkyctl stippled_borders_all 1;$me")
out2+=("2,conkyctl stippled_borders_all 2;$me")
out2+=("3,conkyctl stippled_borders_all 3;$me")
out2+=("4,conkyctl stippled_borders_all 4;$me")
[[ "$BORD" == false ]] && out2+=("<big>祿</big> $YES,conkyctl draw_borders_all true;$me") || out2+=("<big>綠</big> $YES,conkyctl draw_borders_all false;$me")
[[ "$BORD" == false ]] && out2+=("<big>綠</big> $NO,conkyctl draw_borders_all true;$me") || out2+=("<big>祿</big> $NO,conkyctl draw_borders_all false;$me")
out+=("^sep($RESET)")
out+=(" $RESETCOLORS,^checkout(resetcolors)")
out2+=("^tag(resetcolors)")
out2+=("^sep($AREYOUSURE)")
out2+=("$YES,conkyctl resetcolorsall;$me")
out2+=("^sep($STIPPLED_BORDERS?)")
[[ "$STIP" == 0 ]] && out2+=("<big>綠</big> 0 ($SOLID_LINE),conkyctl stippled_borders_all 0;$me") || out2+=("<big>祿</big> 0 ($SOLID_LINE),conkyctl stippled_borders_all 0;$me")
out2+=("^sep()")
[[ "$STIP" == 1 ]] && out2+=("<big>綠</big> 1 px,conkyctl stippled_borders_all 1;$me") || out2+=("<big>祿</big> 1 px,conkyctl stippled_borders_all 1;$me")
[[ "$STIP" == 2 ]] && out2+=("<big>綠</big> 2 px,conkyctl stippled_borders_all 2;$me") || out2+=("<big>祿</big> 2 px,conkyctl stippled_borders_all 2;$me")
[[ "$STIP" == 3 ]] && out2+=("<big>綠</big> 3 px,conkyctl stippled_borders_all 3;$me") || out2+=("<big>祿</big> 3 px,conkyctl stippled_borders_all 3;$me")
[[ "$STIP" == 4 ]] && out2+=("<big>綠</big> 4 px,conkyctl stippled_borders_all 4;$me") || out2+=("<big>祿</big> 4 px,conkyctl stippled_borders_all 4;$me")
out+=("^sep()")
pgrep -af "conky/sysinfo_mbcolor" > /dev/null || out+=("<big><span bgcolor='red' fgcolor='white'>  README <small>(important info)</small>  </span></big>,conkyctl baseconky_info")
if [ "$WINTRANS" == false ];then
out+=("<span bgcolor='$WINCLR'> </span><span weight='bold' ${BG} fgcolor='$WINCLR'> AbCd </span> $BACKGROUND,^pipe(mbclr '$WINCLR' conkyctl win_bgcolor_all '${BACKGROUND}' '$me')")
else
out+=("<span> transparent </span> $BACKGROUND,^pipe(mbclr '$WINCLR' conkyctl win_bgcolor_all '${BACKGROUND}' '$me')")
fi
[[ "$WINTRANS" == false ]] && out+=("<big>󰄱</big> $TRANSPARENT,conkyctl transparent_all true;$me") || out+=("<big>󰄲</big> $TRANSPARENT,conkyctl transparent_all false;$me")
out+=("^sep()")
out+=("<span bgcolor='$CLR'> </span><span weight='bold' ${BG} fgcolor='$CLR'> AbCd </span> $DEFCOLOR,^pipe(mbclr '$CLR' conkyctl default_color_all '${DEFCOLOR}' '$me')")
out+=("<span bgcolor='$CLR0'> </span><span weight='bold' ${BG} fgcolor='$CLR0'> AbCd </span> $COLOR_0,^pipe(mbclr '$CLR0' conkyctl color0_all '${COLOR_0}' '$me')")
out+=("<span bgcolor='$CLR1'> </span><span weight='bold' ${BG} fgcolor='$CLR1'> AbCd </span> $COLOR_1,^pipe(mbclr '$CLR1' conkyctl color1_all '${COLOR_1}' '$me')")
out+=("<span bgcolor='$CLR2'> </span><span weight='bold' ${BG} fgcolor='$CLR2'> AbCd </span> $COLOR_2,^pipe(mbclr '$CLR2' conkyctl color2_all '${COLOR_2}' '$me')")
#out+=("^sep()")
#out+=("^sep($RESET)")
#out+=("󰁯 $RESETCOLORS,^checkout(resetcolors)")
#out2+=("^tag(resetcolors)")
#out2+=("^sep($AREYOUSURE)")
#out2+=("$YES,conkyctl resetcolorsall;$me")
#out+=(" $RESETALL,^checkout(resetall)") NOT SAFE!!!
#out2+=("^tag(resetall)")
#out2+=("^sep($AREYOUSURE)")
@ -345,7 +476,7 @@ if [[ "$1" == "-s" ]]; then
source $HOME/.config/colorizer/colorizer.conf
out+=("^sep()")
out+=(" ⮜⮜⮜ Colorizer,colorizer -s")
out+=(" ${arrow_string_left} $_COLORIZER_ROOT,colorizer -s")
if [[ "$colorizer_size" == "full" ]];then
eval $(xdotool getdisplaygeometry --shell)
@ -363,32 +494,38 @@ if [[ "$1" == "-s" ]]; then
[ $(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))
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)
WALLPAPER=${WALLPATH##*/}
THUMBDIR="$HOME/.config/mabox/wallthumbs"
THUMBDIR="$HOME/.cache/colorizer/thumbs"
mkdir -p ${THUMBDIR}
THUMB="${THUMBDIR}/${WALLPAPER}.png"
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}
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}
@rect,,$((jgtools_padding + 4)),$((jgtools_padding + 120)),270,34,0,left,top,#222222 20,#222222 70,
@icon,,$((jgtools_padding)),$((jgtools_padding)),270,150,4,left,top,,,${THUMB}
@rect,,$((jgtools_padding)),$((jgtools_padding + 116)),270,28,0,left,top,#222222 20,#222222 70,
#@icon,,$((jgtools_padding + 4)),$((jgtools_padding + 4)),270,150,4,left,top,,,/usr/share/mabox-colorizer/img/colorizer-conky.png
@text,,$((jgtools_padding + 158)),$((jgtools_padding + 124)),120,30,0,left,top,#FFFFFF ,${WINCLR},<span size='10400' font_family='Ubuntu'><b>Colorizer</b> Conky</span>
@rect,,$((jgtools_padding + 244)),$((jgtools_padding + 6)),29,60,0,left,top,#FFFFFF 30,${WINCLR} 60,
@rect,,$((jgtools_padding + 5)),$((jgtools_padding + 92)),29,60,0,left,top,#FFFFFF 30,${WINCLR} 60,
@rect,,$((jgtools_padding + 36)),$((jgtools_padding + 112)),29,40,0,left,top,#FFFFFF 30,${WINCLR} 60,
@text,,$((jgtools_padding + 80)),$((jgtools_padding + 116)),190,30,0,left,top,#FFFFFF ,${WINCLR},<span size='10400' font_family='Ubuntu'><b>Conky</b> Manager &amp; Colorizer</span>
@rect,,$((jgtools_padding + 239)),$((jgtools_padding + 2)),29,60,0,left,top,#FFFFFF 30,${WINCLR} 60,
@rect,,$((jgtools_padding + 2)),$((jgtools_padding + 88)),29,60,0,left,top,#FFFFFF 30,${WINCLR} 60,
@rect,,$((jgtools_padding + 34)),$((jgtools_padding + 108)),29,40,0,left,top,#FFFFFF 30,${WINCLR} 60,
$(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
@ -397,4 +534,5 @@ fi
printf '%s\n' "${out[@]}"
printf '%s\n' "${out2[@]}"
printf '%s\n' "${out3[@]}"

413
bin/colorizer-fonts 100755
View File

@ -0,0 +1,413 @@
#!/bin/bash
#
# colorizer - set of tools for Mabox (auto)theming
# Copyright (C) 2022-2023 Daniel Napora <napcok@gmail.com>
#
# 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/>.
. $HOME/.config/mabox/mabox.conf
me="colorizer-fonts -s"
CONKYDIR="$HOME/.config/conky"
BASECONKY="$CONKYDIR/sysinfo_mbcolor.conkyrc"
# Favorited fonts list
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
case "$LANG" in
pl*)
_INCREASE_ALL="Powiększ wszystkie"
_DECREASE_ALL="Pomniejsz wszystkie"
_RESET="Resetuj do domyślnych"
_ALL="Wszystko"
_OPENBOX_WM="Openbox"
_TITLEBAR_FONT="Czcionka tytułu"
_BOLD="Pogrubienie"
_ITALIC="Kursywa"
_TEXTALIGN="Wyrównanie"
_LEFT="Lewo"
_CENTER="Środek"
_RIGHT="Prowo"
_MENUS="Menu"
_MENU_TITLE="Nagłówek"
_MENU_ITEM="Element"
_MENU_TITLE_FONT="Czcionka nagłówka"
_MENU_ITEM_FONT="Czcionka elementu"
_FONT_CUSTOM="Wybierz czcionkę i rozmiar..."
_FONT_FAMILY="rodzina"
_EDIT_FAVFONTS="Edytuj ulubione czcionki"
_FONT_SIZE="rozmiar"
_INCREASE="Powiększ do"
_DECREASE="Pomniejsz do"
_CONKY="Conky"
_CONKYFONT="Czcionka dla Conky"
_CONKYBASEFONT="Czcionka podstawowa"
_C_EFFECTS="Efekty"
_SHADOW="Cień"
_OUTLINE="Poświata"
_PANEL="Panel tint2"
_GTK="GTK"
_FAVORITE_LBL="Ulubione czcionki"
_USE="Użyj czcionki"
_FOR="dla..."
_COLORIZER_ROOT="<b>Colorizer</b> - menu główne"
;;
*)
_INCREASE_ALL="Increase all"
_DECREASE_ALL="Decrease all"
_RESET="Reset to defaults..."
_ALL="All"
_OPENBOX_WM="Openbox"
_TITLEBAR_FONT="TitleBar Font"
_BOLD="Bold"
_ITALIC="Italic"
_TEXTALIGN="Text align"
_LEFT="Left"
_CENTER="Center"
_RIGHT="Right"
_MENUS="Menus"
_MENU_TITLE="Menu Title"
_MENU_ITEM="Menu Item"
_MENU_TITLE_FONT="Menu Title Font"
_MENU_ITEM_FONT="Menu Item Font"
_FONT_CUSTOM="Select custom font and size..."
_FONT_FAMILY="font family"
_EDIT_FAVFONTS="Edit favorite fonts list"
_FONT_SIZE="font size"
_INCREASE="Increase to"
_DECREASE="Decrease to"
_CONKY="Widgets (Conky)"
_CONKYFONT="Conky Font"
_CONKYBASEFONT="Base font"
_C_EFFECTS="Effects"
_SHADOW="Shadow"
_OUTLINE="Outline"
_PANEL="Panel Tint2"
_GTK="GTK Font"
_FAVORITE_LBL="Favorite Fonts"
_USE="Use"
_FOR="font for ..."
_COLORIZER_ROOT="<b>Colorizer</b> rootmenu"
;;
esac
getvalues () {
GTK2RC="$HOME"/.gtkrc-2.0
GTK_FONT=( $(grep "gtk-font-name" ${GTK2RC} | cut -d'"' -f2) )
GTK_FAMILY=${GTK_FONT[@]::${#GTK_FONT[@]}-1}
GTK_SIZE=${GTK_FONT[-1]}
nspace="http://openbox.org/3.4/rc"
obcfg="$HOME/.config/openbox/rc.xml"
OBFSIZE=$(xmlstarlet sel -N a="$nspace" -t -v '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:size' "$obcfg")
OBFNAME=$(xmlstarlet sel -N a="$nspace" -t -v '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:name' "$obcfg")
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' "$obcfg")
SLANT=$(xmlstarlet sel -N a="$nspace" -t -v '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:slant' "$obcfg")
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"
if [ -f "$THEMERC" ];then
read TXTJUST <<< "$(grep text.justify ${THEMERC} | cut -d':' -f2)"
else
:
fi
read FONTDEF <<< "$(grep "font .*=.*,$" ${BASECONKY} | cut -d'=' -f2,3 |cut -d"'" -f2)"
C_FONT=${FONTDEF%:*}
C_FONTSIZE=${FONTDEF#*=}
read OUTLINE <<< "$(grep draw_outline ${BASECONKY} | cut -d'=' -f2 | cut -d"," -f1)"
read SHADES <<< "$(grep draw_shades ${BASECONKY} | cut -d'=' -f2 | cut -d"," -f1)"
SHADOWS="no"
[[ "$OUTLINE" == "true" ]] && SHADOWS="outline"
[[ "$SHADES" == "true" ]] && SHADOWS="shadow"
}
getvalues
out+=("<big>󰧴</big> $_INCREASE_ALL,fontctl inc_all;$me")
out+=("<big>󰧳</big> $_DECREASE_ALL,fontctl dec_all;$me")
out+=("^sep()")
out+=("<big>󰑓</big> $_RESET,^checkout(reset)")
out2+=("^tag(reset)")
out2+=("^sep($_RESET)")
out2+=("$_ALL,fontctl resetall;$me")
out2+=("^sep()")
out2+=("$_TITLEBAR_FONT,fontctl resetob;$me")
out2+=("$_MENUS,fontctl resetmenus;$me")
out2+=("$_CONKY,fontctl resetconky;$me")
out2+=("$_GTK,fontctl resetgtk;$me")
out+=("^sep($_OPENBOX_WM)")
out+=("$_TITLEBAR_FONT [ <b><span font_family=\"$OBFNAME\">$OBFNAME $OBFSIZE</span></b> ],^checkout(obtitletext)")
out+=("^sep($_MENUS)")
out+=("$_MENU_TITLE [ <b><span font_family=\"$menu_sep_font_family\">$menu_sep_font_family $menu_sep_font_size</span></b> ],^checkout(mtitlefont)")
out+=("$_MENU_ITEM [ <b><span font_family=\"$menu_font_family\">$menu_font_family $menu_font_size</span></b> ],^checkout(mitemfont)")
out+=("^sep($_GTK)")
out+=("$_GTK [ <b>${GTK_FAMILY} ${GTK_SIZE}</b> ],^checkout(gtkfont)")
out+=("^sep($_CONKY)")
out+=("$_CONKYBASEFONT [ <b><span font_family=\"${C_FONT}\">$C_FONT</span> $C_FONTSIZE</b> ],^checkout(conkyfont)")
#out+=("^sep($_PANEL)")
#out+=("<i>(not implemented yet)</i>")
# FAV FONTS in rootmenu
if [ "${#favfonts[@]}" -gt 0 ];then
out+=("^sep($_FAVORITE_LBL)")
i=0
for fon in "${favfonts[@]}";do
out+=("<span> </span><span font_family=\"${fon}\">${fon}</span>,^checkout(favfont$i),$me")
out2+=("^tag(favfont$i)")
out2+=("^sep($_USE)")
out2+=("^sep(<span font_family=\"${fon}\">${fon}</span>)")
out2+=("^sep($_FOR)")
out2+=("$_TITLEBAR_FONT,obtctl fontfamily \"${fon}\";$me")
out2+=("$_MENU_TITLE,mb-setvar \"menu_sep_font_family='${fon}'\";$me")
out2+=("$_MENU_ITEM,mb-setvar \"menu_font_family='${fon}'\";$me")
out2+=("$_GTK,fontctl gtk_fontfamily \"${fon}\";$me")
out2+=("$_CONKY,conkyctl basefont_family_all \"${fon}\";$me")
i=$((i+1))
done
out+=("^sep()")
out+=("<small> $_EDIT_FAVFONTS </small>,geany ~/.config/mabox/fonts.list")
fi
#SUBMENUS
# OpenBox Title Font
out2+=("^tag(obtitletext)")
out2+=("^sep($_TITLEBAR_FONT)")
out2+=("^sep(<span font_family=\"$OBFNAME\">$OBFNAME $OBFSIZE</span>)")
out2+=("<big>󰛖</big> $_FONT_CUSTOM,mb-setfont obtitle;$me")
out2+=("^sep($_FONT_SIZE)")
out2+=("<big>󰧴</big> $_INCREASE <b>$((OBFSIZE+1)) px</b>,fontctl ob_fontsize inc;$me")
out2+=("<big>󰧳</big> $_DECREASE <b>$((OBFSIZE-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
[[ "$OBFSIZE" == "$i" ]] && out2+=("<big>綠</big> <b>$i px</b>,obtctl fontsize $i;$me") || out2+=("<big>祿</big> $i px,fontctl ob_fontsize $i;$me")
done
out2+=("^sep($_FONT_FAMILY)")
if [ "${#favfonts[@]}" -gt 0 ];then
for fon in "${favfonts[@]}";do
[[ "${OBFNAME}" == "$fon" ]] && out2+=("<big>綠</big> <span font_family=\"${fon}\">${fon}</span>,$me") || out2+=("<big>祿</big> <span font_family=\"${fon}\">${fon}</span>,obtctl fontfamily \"${fon}\";$me")
done
fi
out2+=("^sep()")
[[ "$WEIGHT" =~ .*"old" ]] && out2+=("<big></big> <b>$_BOLD</b>,obtctl fontweight Normal;$me") || out2+=("<big></big> <b>$_BOLD</b>,obtctl fontweight Bold;$me")
[[ "$SLANT" =~ .*"talic" ]] && out2+=("<big></big> <i>$_ITALIC</i>,obtctl fontslant Normal;$me") || out2+=("<big></big> <i>$_ITALIC</i>,obtctl fontslant Italic;$me")
#SHADOW
out2+=("^sep($_TEXTALIGN)")
[[ "$TXTJUST" = left ]] && out2+=("<big>綠 </big> $_LEFT,obtctl textjustify left;$me")||out2+=("<big>祿 </big> $_LEFT,obtctl textjustify left;$me")
[[ "$TXTJUST" = center ]] && out2+=("<big>綠 </big> $_CENTER,obtctl textjustify center;$me")||out2+=("<big>祿 </big> $_CENTER,obtctl textjustify center;$me")
[[ "$TXTJUST" = right ]] && out2+=("<big>綠 </big> $_RIGHT,obtctl textjustify right;$me")||out2+=("<big>祿 </big> $_RIGHT,obtctl textjustify right;$me")
# Menu Title Font
out2+=("^tag(mtitlefont)")
out2+=("^sep($_MENU_TITLE_FONT)")
out2+=("^sep(<span font_family=\"$menu_sep_font_family\">$menu_sep_font_family $menu_sep_font_size</span>)")
out2+=("<big>󰛖</big> $_FONT_CUSTOM,mb-setfont menu_sep;$me")
out2+=("^sep($_FONT_SIZE)")
out2+=("<big>󰧴</big> $_INCREASE <b>$((menu_sep_font_size+1)) px</b>,mb-setvar menu_sep_font_size=$((menu_sep_font_size+1));$me")
out2+=("<big>󰧳</big> $_DECREASE <b>$((menu_sep_font_size-1)) px</b>,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+=("<big>綠</big> <b>$i px</b>,$me") || out2+=("<big>祿</big> $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+=("<big>綠</big> <span font_family=\"${fon}\">${fon}</span>,$me") || out2+=("<big>祿</big> <span font_family=\"${fon}\">${fon}</span>,mb-setvar \"menu_sep_font_family='${fon}'\";$me")
done
fi
out2+=("^sep()")
out2+=("<small> $_EDIT_FAVFONTS </small>,geany ~/.config/mabox/fonts.list")
# Item font submenu
out2+=("^tag(mitemfont)")
out2+=("^sep($_MENU_ITEM_FONT)")
out2+=("^sep(<span font_family=\"$menu_font_family\">$menu_font_family $menu_font_size</span>)")
out2+=("<big>󰛖</big> $_FONT_CUSTOM,mb-setfont menu_item;$me")
out2+=("^sep($_FONT_SIZE)")
out2+=("<big>󰧴</big> $_INCREASE <b>$((menu_font_size+1)) px</b>,mb-setvar menu_font_size=$((menu_font_size+1));$me")
out2+=("<big>󰧳</big> $_DECREASE <b>$((menu_font_size-1)) px</b>,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+=("<big>綠</big> <b>$i px</b>,$me") || out2+=("<big>祿</big> $i px,mb-setvar menu_font_size=$i;$me")
done
if [ "${#favfonts[@]}" -gt 0 ];then
out2+=("^sep($_FONT_FAMILY)")
for fon in "${favfonts[@]}";do
[[ "$menu_font_family" == "$fon" ]] && out2+=("<big>綠</big> <span font_family=\"${fon}\">${fon}</span>,$me") || out2+=("<big>祿</big> <span font_family=\"${fon}\">${fon}</span>,mb-setvar \"menu_font_family='${fon}'\";$me")
done
fi
out2+=("^sep()")
out2+=("<small> $_EDIT_FAVFONTS</small>,geany ~/.config/mabox/fonts.list")
# Conky
out2+=("^tag(conkyfont)")
out2+=("^sep($_CONKYFONT)")
out2+=("^sep($C_FONT $C_FONTSIZE)")
out2+=("<big>󰛖</big> $_FONT_CUSTOM,mb-setfont conky_all;$me")
out2+=("^sep($_FONT_SIZE)")
out2+=("<big>󰧴</big> $_INCREASE <b>$((C_FONTSIZE+1)) px</b>,conkyctl basefont_inc_all;$me")
out2+=("<big>󰧳</big> $_DECREASE <b>$((C_FONTSIZE-1)) px</b>,conkyctl basefont_dec_all;$me")
out2+=("^sep()")
sizes=(14 13 12 11 10 9 8 7 6)
for i in "${sizes[@]}"
do
[[ "$C_FONTSIZE" == "$i" ]] && out2+=("<big>綠</big> <b>$i px</b>,conkyctl basefont_size_all $i;$me") || out2+=("<big>祿</big> $i px,conkyctl basefont_size_all $i;$me")
done
if [ "${#favfonts[@]}" -gt 0 ];then
out2+=("^sep($_FONT_FAMILY)")
for fon in "${favfonts[@]}";do
[[ "$C_FONT" == "$fon" ]] && out2+=("<big>綠</big> <span font_family=\"${fon}\">${fon}</span>,$me") || out2+=("<big>祿</big> <span font_family=\"${fon}\">${fon}</span>,conkyctl basefont_family_all \"${fon}\";$me")
done
fi
out2+=("^sep()")
out2+=("<small> $_EDIT_FAVFONTS</small>,geany ~/.config/mabox/fonts.list")
out2+=("^sep($_C_EFFCTS)")
[[ "$SHADOWS" == "shadow" ]] && out2+=("<big>󰄲</big> $_SHADOW,conkyctl shades_all no;$me") || out2+=("<big>󰄱</big> $_SHADOW,conkyctl shades_all shadow;$me")
[[ "$SHADOWS" == "outline" ]] && out2+=("<big>󰄲</big> $_OUTLINE,conkyctl shades_all no;$me") || out2+=("<big>󰄱</big> $_OUTLINE,conkyctl shades_all outline;$me")
# GTK 2/3 font
out2+=("^tag(gtkfont)")
out2+=("^sep($_GTK)")
out2+=("^sep(<span font_family=\"$menu_font_family\">$menu_font_family $menu_font_size</span>)")
out2+=("<big>󰛖</big> $_FONT_CUSTOM,mb-setfont gtk;$me")
out2+=("^sep($_FONT_SIZE)")
out2+=("<big>󰧴</big> $_INCREASE <b>$((GTK_SIZE+1)) px</b>,fontctl gtk_fontsize inc;$me")
out2+=("<big>󰧳</big> $_DECREASE <b>$((GTK_SIZE-1)) px</b>,fontctl gtk_fontsize dec;$me")
out2+=("^sep()")
sizes=(14 13 12 11 10 9 8)
for i in "${sizes[@]}"
do
[[ "$GTK_SIZE" == "$i" ]] && out2+=("<big>綠</big> <b>$i px</b>,$me") || out2+=("<big>祿</big> $i px,fontctl gtk_fontsize $i;$me")
done
if [ "${#favfonts[@]}" -gt 0 ];then
out2+=("^sep($_FONT_FAMILY)")
for fon in "${favfonts[@]}";do
[[ "$GTK_FAMILY" == "$fon" ]] && out2+=("<big>綠</big> <span font_family=\"${fon}\">${fon}</span>,$me") || out2+=("<big>祿</big> <span font_family=\"${fon}\">${fon}</span>,fontctl gtk_fontfamily \"${fon}\";$me")
done
fi
out2+=("^sep()")
out2+=("<small> $_EDIT_FAVFONTS</small>,geany ~/.config/mabox/fonts.list")
### RUN
if [[ "$1" == "-s" ]]; then
. /usr/share/mb-jgtools/pipemenu-standalone.cfg
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_HALIGN="left"
jgmenu_icon_size=0
[ $(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
[[ "$GR" == "1" ]] && clr=${GR_FROM} || clr=${FG}
cat <<EOF > ${MENU_ITEMS}
@icon,,$((jgtools_padding)),$((jgtools_padding)),270,150,4,left,top,,,${THUMB}
#@icon,,$((jgtools_padding + 4)),$((jgtools_padding + 4)),270,150,4,left,top,,,/usr/share/mabox-colorizer/img/colorizer-conky.png
@rect,,$((jgtools_padding)),$((jgtools_padding + 116)),270,28,0,left,top,#222222 20,#222222 70,
@text,,$((jgtools_padding + 10)),$((jgtools_padding + 106)),100,28,0,left,top,#FFFFFF ,${WINCLR},<span size='41600' font_family='Ubuntu'><big></big></span>
@text,,$((jgtools_padding + 128)),$((jgtools_padding + 116)),150,28,0,left,top,#FFFFFF ,${WINCLR},<span size='10400' font_family='Ubuntu'>Mabox <b>Fonts</b> config</span>
$(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[@]}"

View File

@ -1,4 +1,45 @@
#!/bin/bash
#
# colorizer - set of tools for Mabox (auto)theming
# Copyright (C) 2022-2023 Daniel Napora <napcok@gmail.com>
#
# 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/>.
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
@ -25,6 +66,31 @@ fi
case "$LANG" in
pl*)
MENU_THEME="Motyw menu"
QUICK_TWEAKS="Ustawienia główne"
OVERALL_STYLE="Ogólny styl"
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"
MONOCHROMATIC="Monochromatyczny"
CHOOSE_AND_PICK="Wybierz wariant i pobierz kolor..."
GENERATEFROMWP="<i>Generuj z kolorów tapety...</i>"
LIGHTBG="Jasne tło"
DARKBG="Ciemne tło"
@ -41,17 +107,30 @@ case "$LANG" in
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="Gotowe gradienty"
PRE_GRADIENTS="Zastosuj gradient"
GRADIENT_REVERSE="Odwróć kolory Gradientu"
ITEM="pozycja menu (element)"
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"
COLOR_SEL_BG="Tło aktywnej pozycji"
COLOR_SEL_FG="Tekst aktywnej pozycji"
COLOR_SEL_BORDER="Obramowanie akt. poz."
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"
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"
@ -65,16 +144,42 @@ case "$LANG" in
RESET="Resetuj motyw"
TO_DEFAULT=""
EDIT="Edytuj plik "
FILE=""
FILE="plik"
SET_RANDOM="Ustaw losowy motyw menu"
_COLORIZER_ROOT="<b>Colorizer</b> - menu główne"
;;
*)
MENU_THEME="Menu theme"
QUICK_TWEAKS="Global Settings/Quick Tweaks"
OVERALL_STYLE="Overall style"
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"
MONOCHROMATIC="Monochromatic"
CHOOSE_AND_PICK="Choose variant and pick color..."
GENERATEFROMWP="<i>Generate from wallpaper colors...</i>"
LIGHTBG="Light Background"
DARKBG="Dark Background"
COLOR_MENU_BG="Background"
COLOR_MENU_BG_TO="Background to (gradient)"
COLOR_MENU_BG="Background (BG)"
COLOR_MENU_BG_TO="BG to (gradient)"
COLOR_MENU_BORDER="Menu Border"
GRADIENT_POS="Gradient direction"
NONE="none"
@ -86,17 +191,30 @@ case "$LANG" in
TOP_RIGHT="top_right"
BOTTOM_LEFT="bottom_left"
BOTTOM_RIGHT="bottom_right"
PRE_GRADIENTS="Predefined gradients"
GRADIENT_REVERSE="Reverse Gradient"
ITEM="item"
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"
COLOR_SEL_BG="Selected Item Background"
COLOR_SEL_FG="Selected Item Text"
COLOR_SEL_BORDER="Selected Item Border"
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"
SEPARATOR_TITLE="Separator/Title"
TITLE="Title"
COLOR_TITLE_BG="Title Background"
COLOR_TITLE_FG="Title Foreground"
COLOR_TITLE_BORDER="Title Border color "
@ -112,6 +230,7 @@ case "$LANG" in
EDIT="Edit"
FILE="file"
SET_RANDOM="Set random menu theme"
_COLORIZER_ROOT="<b>Colorizer</b> rootmenu"
;;
esac
@ -139,42 +258,273 @@ getvalues () {
}
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: <i>${jgmenu_theme}</i>)")
out+=("^sep($GENERATEFROMWP)")
out+=("$LIGHTBG,w2theme menu light;$me")
out+=("$DARKBG,w2theme menu dark;$me")
out+=("^sep(menu)")
out+=("<big></big> $QUICK_TWEAKS,^checkout(tweaks)")
out2+=("^tag(tweaks)")
out2+=("^sep($OVERALL_STYLE)")
######
out2+=("$BORDER [ <b>${jgtools_border:-0}px</b> ],^checkout(mborder)")
out2+=("$PADDING [ <b>${jgtools_padding:-0}px</b> ],^checkout(mpadding)")
#out2+=("$RADIUS [ <b>${jgtools_radius:-0}</b> ],^checkout(mradius)")
out2+=("$SUBSPACING [ <b>${submenu_spacing:-0}px</b> ],^checkout(subspacing)")
out2+=("^sep()")
out2+=("$LINE_HEIGHT [ <b>$item_height_factor%</b> ],^checkout(lineheight)")
out2+=("^sep()")
out2+=("$ARROW_STRING [ <b>$arrow_string</b> ],^checkout(arrow)")
out2+=("$ARROW_STRING_LEFT [ <b>$arrow_string_left</b> ],^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+=("<big>綠</big> $(printf "<b><tt>%3s</tt></b>,%s" "$i" "jgctl border ${i}")") || out3+=("<big>祿</big> $(printf "<tt>%3s</tt>,%s" "$i" "jgctl border ${i}")");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+=("<big>綠</big> $(printf "<b><tt>%3s</tt></b>,%s" "$i" "jgctl padding ${i}")") || out3+=("<big>祿</big> $(printf "<tt>%3s</tt>,%s" "$i" "jgctl padding ${i}")");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+=("<big>綠</big> $(printf "<b><tt>%4s</tt></b>,%s" "$i" "mb-setvar submenu_spacing=${i};$me")") || out3+=("<big>祿</big> $(printf "<tt>%4s</tt>,%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+=("<big>綠</big> $(printf "<b><tt>%4s%%</tt></b>,%s" "$i" "mb-setvar item_height_factor=${i};$me")") || out3+=("<big>祿</big> $(printf "<tt>%4s%%</tt>,%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+=("<tt>&gt;&gt; </tt>$i<tt> &lt;&lt;</tt>,$me") || out3+=("<tt> </tt>$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+=("<tt>&gt;&gt; </tt>$i<tt> &lt;&lt;</tt>,$me") || out3+=("<tt> </tt>$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+=("<big><span bgcolor='${MBG}'> <span fgcolor='${TBG}'></span> <span fgcolor='${SFG}'></span> <span fgcolor='${SBG}'></span> </span></big> $SCHEMES,^checkout(schemes)")
out2+=("^tag(schemes)")
out2+=("^sep($SCHEMES)")
out2+=("^sep($MONOCHROMATIC)")
out2+=("^sep(<i>$CHOOSE_AND_PICK</i>)")
out2+=("<big></big> $LIGHTBG...,jgctl mono pick light")
out2+=("<big></big> $DARKBG...,jgctl mono pick dark")
out2+=("^sep($GENERATEFROMWP)")
out2+=("<big><span bgcolor='${w[-3]}'> <span bgcolor='${w[-5]}'> <span bgcolor='${w[-1]}' fgcolor='${w[1]}'> $LIGHTBG </span> </span> </span></big>,w2theme menu light;$me")
out2+=("<big><span bgcolor='${w[1]}'> <span bgcolor='${w[4]}'> <span bgcolor='${w[2]}' fgcolor='${w[-2]}'> $DARKBG </span> </span> </span></big>,w2theme menu dark;$me")
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+=("<tt>$(printf '%-20s' "${scheme_name}")</tt><big><span bgcolor='${mbg}' fgcolor='${nfg}'> <small>item</small> <span bgcolor='${tbg}' fgcolor='${tfg}'> <small><b>title</b></small> </span> <span bgcolor='${sbg}' fgcolor='${sfg}'> <small>[ sel ]</small> </span> <span bgcolor='${mbgt}'> <small>${icon}</small> </span></span></big>,jgctl applyscheme sys $n;$me")
done < <(tail -n +2 "$SYSSCHEMES")
out2+=("^sep($YOUR_SCHEMES)")
out2+=("<big></big> $SAVE_CURRSCHEME,jgctl savescheme '${currcolors}';$me")
out2+=("<big></big> $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+=("<tt>$(printf '%-20s' "${scheme_name}")</tt><big><span bgcolor='${mbg}' fgcolor='${nfg}'> <small>item</small> <span bgcolor='${tbg}' fgcolor='${tfg}'> <small><b>title</b></small> </span> <span bgcolor='${sbg}' fgcolor='${sfg}'> <small>[ sel ]</small> </span> <span bgcolor='${mbgt}'> <small>${icon}</small> </span></span></big>,^checkout(sch${n})")
out3+=("^tag(sch${n}")
out3+=("^sep($COLORSCHEME: ${scheme_name})")
out3+=("<big></big> $APPLY_SCHEME,jgctl applyscheme usr ${n};$me")
out3+=("^sep($DELETE)")
out3+=("<big>󰗨</big> $DELETE_SCHEME ${scheme_name},jgctl delscheme ${n};$me")
done < <(tail -n +2 "$USERSCHEMES")
out+=("^sep($FONTS)")
out+=("<big>󰛖</big> $TITLE [ <b>$menu_sep_font_family $menu_sep_font_size</b> ],^checkout(mtitlefont)")
out+=("<big>󰛖</big> $ITEM [ <b>$menu_font_family $menu_font_size</b> ],^checkout(mitemfont)")
# Item font submenu
out2+=("^tag(mitemfont)")
out2+=("^sep($ITEM_FONT)")
out2+=("<big>󰛖</big> $FONT_CUSTOM,mb-setfont menu_item;$me")
out2+=("^sep($FONT_SIZE)")
out2+=("<big>󰧴</big> $INCREASE <b>$((menu_font_size+1)) px</b>,mb-setvar menu_font_size=$((menu_font_size+1));$me")
out2+=("<big>󰧳</big> $DECREASE <b>$((menu_font_size-1)) px</b>,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+=("<big>綠</big> <b>$i px</b>,$me") || out2+=("<big>祿</big> $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+=("<big>綠</big> <span font_family=\"${fon}\">${fon}</span>,$me") || out2+=("<big>祿</big> <span font_family=\"${fon}\">${fon}</span>,mb-setvar \"menu_font_family='${fon}'\";$me")
done
fi
out2+=("^tag(mtitlefont)")
out2+=("^sep($TITLE_FONT)")
out2+=("<big>󰛖</big> $FONT_CUSTOM,mb-setfont menu_sep;$me")
out2+=("^sep($FONT_SIZE)")
out2+=("<big>󰧴</big> $INCREASE <b>$((menu_sep_font_size+1)) px</b>,mb-setvar menu_sep_font_size=$((menu_sep_font_size+1));$me")
out2+=("<big>󰧳</big> $DECREASE <b>$((menu_sep_font_size-1)) px</b>,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+=("<big>綠</big> <b>$i px</b>,$me") || out2+=("<big>祿</big> $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+=("<big>綠</big> <span font_family=\"${fon}\">${fon}</span>,$me") || out2+=("<big>祿</big> <span font_family=\"${fon}\">${fon}</span>,mb-setvar \"menu_sep_font_family='${fon}'\";$me")
done
fi
### MENU
out+=("^sep(Menu)")
out+=("<tt><small>$(printf '%3s' "$MBGA")</small> <span bgcolor='$MBG' bgalpha='${MBGA/#[0]/1}%'> </span><span bgcolor='$MBG'> </span></tt> $COLOR_MENU_BG,^pipe(mbclr '$MBG' jgctl color_menu_bg '${COLOR_MENU_BG}' '$me')")
out+=("<tt><small>$(printf '%3s' "$MBGTA")</small> <span bgcolor='$MBGT' bgalpha='${MBGTA/#[0]/1}%'> </span><span bgcolor='$MBGT'> </span></tt> $COLOR_MENU_BG_TO,^pipe(mbclr '$MBGT' jgctl color_menu_bg_to '${COLOR_MENU_BG_TO}' '$me')")
if [[ "$jgtools_border" != "0" ]];then
out+=("<tt><small>$(printf '%3s' "$MBORDERA")</small> <span bgcolor='$MBORDER' bgalpha='${MBORDERA/#[0]/1}%'> </span><span bgcolor='$MBORDER'> </span></tt> $COLOR_MENU_BORDER,^pipe(mbclr '$MBORDER' jgctl color_menu_border '${COLOR_MENU_BORDER}' '$me')")
fi
out+=("^sep()")
out+=("$GRADIENT_POS [ <b>$GRADIENT</b> ],^checkout(gradientpos)")
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+=("<big>$icon</big> $GRADIENT_POS [ <b>$GRADIENT</b> ],^checkout(gradientpos)")
out+=("<big></big> $GRADIENT_REVERSE,jgctl gradient '${MBGT}' '${MBG}';$me")
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 menu)")
out+=("凌 $GRADIENT_REVERSE,jgctl gradient '${MBGT}' '${MBG}';$me")
out+=("^sep($ITEM)")
out+=("<tt><small>$(printf '%3s' "$NFGA")</small> <span weight='bold' fgcolor='$NFG' fgalpha='${NFGA/#[0]/1}%'> AbCd </span></tt> $COLOR_NORM_FG,^pipe(mbclr '$NFG' jgctl color_norm_fg '${COLOR_NORM_FG}' '$me')")
out+=("$ITEM_BORDER [ <b>$IBORDER</b> ],^checkout(itemborder)")
out+=("$ITEM_RADIUS [ <b>$IRADIUS</b> ],^checkout(itemradius)")
out+=("<tt><small>$(printf '%3s' "$SBGA")</small> <span bgcolor='$SBG' bgalpha='${SBGA/#[0]/1}%'> </span><span bgcolor='$SBG'> </span></tt> $COLOR_SEL_BG,^pipe(mbclr '$SBG' jgctl color_sel_bg '${COLOR_SEL_BG}' '$me')")
out+=("<tt><small>$(printf '%3s' "$SFGA")</small> <span weight='bold' bgcolor='$SBG' bgalpha='${SBGA/#[0]/1}%' fgcolor='$SFG' fgalpha='${SFGA/#[0]/1}%'> AbCd </span></tt> $COLOR_SEL_FG,^pipe(mbclr '$SFG' jgctl color_sel_fg '${COLOR_SEL_FG}' '$me')")
out+=("<tt><small>$(printf '%3s' "$SBORDERA")</small> <span bgcolor='$SBORDER' bgalpha='${SBORDERA/#[0]/1}%'> </span><span bgcolor='$SBORDER'> </span></tt> $COLOR_SEL_BORDER,^pipe(mbclr '$SBORDER' jgctl color_sel_border '${COLOR_SEL_BORDER}' '$me')")
out+=("^sep()")
[[ ! -z "$NORMBG" ]] && out+=("<tt><small>$(printf '%3s' "$NORMBGA")</small> <span bgcolor='${NORMBG}' bgalpha='${NORMBGA/#[0]/1}%'> </span><span bgcolor='${NORMBG}'> </span></tt> $COLOR_NORM_BG,^pipe(mbclr '$NORMBG' jgctl color_norm_bg '${COLOR_NORM_BG}' '$me')")
### TITLE/SEPARATOR
out+=("^sep($SEPARATOR_TITLE)")
out+=("<tt><small>$(printf '%3s' "$TBGA")</small> <span bgcolor='$TBG' bgalpha='${TBGA}%'> </span><span bgcolor='$TBG'> </span></tt> $COLOR_TITLE_BG,^pipe(mbclr '$TBG' jgctl color_title_bg '${COLOR_TITLE_BG}' '$me')")
out+=("<tt><small>$(printf '%3s' "$TFGA")</small> <span weight='bold' bgcolor='$TBG' bgalpha='${TBGA/#[0]/1}%' fgcolor='$TFG' fgalpha='${TFGA}%'> AbCd </span></tt> $COLOR_TITLE_FG,^pipe(mbclr '$TFG' jgctl color_title_fg '${COLOR_TITLE_FG}' '$me')")
out+=("<tt><small>$(printf '%3s' "$TBORDERA")</small> <span bgcolor='$TBORDER' bgalpha='${TBORDERA/#[0]/1}%'> </span><span bgcolor='$TBORDER'> </span></tt> $COLOR_TITLE_BORDER,^pipe(mbclr '$TBORDER' jgctl color_title_border '${COLOR_TITLE_BORDER}' '$me')")
out+=("^sep()")
out+=("$SEP_HALIGN [ <b>$SEPHALIGN</b> ],^checkout(sephalign)")
case "$SEPHALIGN" in
left) icon="";;
center) icon="";;
right) icon="";;
esac
out+=("<big>$icon</big> $SEP_HALIGN [ <b>$SEPHALIGN</b> ],^checkout(sephalign)")
out+=("^sep()")
out+=("<tt><small>$(printf '%3s' "$SEPFGA")</small> <span fgcolor='$SEPFG' fgalpha='${SEPFGA/#[0]/1}%'>------</span></tt> ${COLOR_SEP_FG},^pipe(mbclr '$SEPFG' jgctl color_sep_fg '${COLOR_SEP_FG}' '$me')")
### SELECTED ITEM (ACCENT)
out+=("^sep($SEL_ITEM)")
out+=("<tt><small>$(printf '%3s' "$SBGA")</small> <span bgcolor='$SBG' bgalpha='${SBGA/#[0]/1}%'> </span><span bgcolor='$SBG'> </span></tt> $COLOR_SEL_BG,^pipe(mbclr '$SBG' jgctl color_sel_bg '${COLOR_SEL_BG}' '$me')")
out+=("<tt><small>$(printf '%3s' "$SFGA")</small> <span weight='bold' bgcolor='$SBG' bgalpha='${SBGA/#[0]/1}%' fgcolor='$SFG' fgalpha='${SFGA/#[0]/1}%'> AbCd </span></tt> $COLOR_SEL_FG,^pipe(mbclr '$SFG' jgctl color_sel_fg '${COLOR_SEL_FG}' '$me')")
if [[ "$IBORDER" != "0" ]];then
out+=("<tt><small>$(printf '%3s' "$SBORDERA")</small> <span bgcolor='$SBORDER' bgalpha='${SBORDERA/#[0]/1}%'> </span><span bgcolor='$SBORDER'> </span></tt> $COLOR_SEL_BORDER,^pipe(mbclr '$SBORDER' jgctl color_sel_border '${COLOR_SEL_BORDER}' '$me')")
fi
out+=("^sep()")
out+=("Apply <big><span bgcolor='${SBG}' fgcolor='${SFG}'> accent </span></big> 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+=("<big><span bgcolor='${FG}'> <span bgcolor='${BG}' fgcolor='${FG}'><small><tt>$(printf '%*s' 25 "${FGNAME} on ${BGNAME}")</tt></small> </span> </span></big>,jgctl accent '${BG}' '${FG}';$me")
out21+=("<big><span bgcolor='${BG}'> <span bgcolor='${FG}' fgcolor='${BG}'><small><tt>$(printf '%*s' 25 "${BGNAME} on ${FGNAME}")</tt></small> </span> </span></big>,jgctl accent '${FG}' '${BG}';$me")
done < <(tail -n +2 /usr/share/mabox-colorizer/readable_colors.csv)
out2+=("${out21[@]}")
### ITEM
out+=("^sep($ITEM)")
out+=("<tt><small>$(printf '%3s' "$NFGA")</small> <span weight='bold' fgcolor='$NFG' fgalpha='${NFGA/#[0]/1}%'> AbCd </span></tt> $COLOR_NORM_FG,^pipe(mbclr '$NFG' jgctl color_norm_fg '${COLOR_NORM_FG}' '$me')")
out+=("^sep()")
[[ ! -z "$NORMBG" ]] && out+=("<tt><small>$(printf '%3s' "$NORMBGA")</small> <span bgcolor='${NORMBG}' bgalpha='${NORMBGA/#[0]/1}%'> </span><span bgcolor='${NORMBG}'> </span></tt> $COLOR_NORM_BG,^pipe(mbclr '$NORMBG' jgctl color_norm_bg '${COLOR_NORM_BG}' '$me')" "^sep()")
out+=("$I_BORDER [ <b>$IBORDER</b> ] $I_RADIUS [ <b>$IRADIUS</b> ],^checkout(itemborder_radius)")
out2+=("^tag(gradientpos)")
out2+=("^sep($GRADIENT_POS <small>$GRADIENT</small>)")
out2+=("$NONE,jgctl menu_gradient_pos none;$me")
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")
@ -187,40 +537,31 @@ out2+=(" $BOTTOM_RIGHT,jgctl menu_gradient_pos bottom_right;$me")
out2+=("^tag(sephalign)")
out2+=("^sep($SEP_HALIGN)")
out2+=(" $H_LEFT,jgctl sep_halign left;$me")
out2+=(" $H_CENTER,jgctl sep_halign center;$me")
out2+=(" $H_RIGHT,jgctl sep_halign right;$me")
out2+=("^tag(itemborder)")
[[ "$SEPHALIGN" == "left" ]] && out2+=("<big>綠</big>  $H_LEFT,jgctl sep_halign left;$me") || out2+=("<big>祿</big>  $H_LEFT,jgctl sep_halign left;$me")
[[ "$SEPHALIGN" == "center" ]] && out2+=("<big>綠</big>  $H_CENTER,jgctl sep_halign center;$me") || out2+=("<big>祿</big>  $H_CENTER,jgctl sep_halign center;$me")
[[ "$SEPHALIGN" == "right" ]] && out2+=("<big>綠</big>  $H_RIGHT,jgctl sep_halign right;$me") || out2+=("<big>祿</big>  $H_RIGHT,jgctl sep_halign right;$me")
out2+=("^tag(itemborder_radius)")
out2+=("^sep($ITEM_BORDER)")
out2+=("0,jgctl item_border 0;$me")
[[ "$IBORDER" == 0 ]] && out2+=("<big>綠</big> 0 px,jgctl item_border 0;$me") || out2+=("<big>祿</big> 0 px,jgctl item_border 0;$me")
out2+=("^sep()")
out2+=("1,jgctl item_border 1;$me")
out2+=("2,jgctl item_border 2;$me")
out2+=("^tag(itemradius)")
[[ "$IBORDER" == 1 ]] && out2+=("<big>綠</big> 1 px,jgctl item_border 1;$me") || out2+=("<big>祿</big> 1 px,jgctl item_border 1;$me")
[[ "$IBORDER" == 2 ]] && out2+=("<big>綠</big> 2 px,jgctl item_border 2;$me") || out2+=("<big>祿</big> 2 px,jgctl item_border 2;$me")
out2+=("^sep($ITEM_RADIUS)")
out2+=("0,jgctl item_radius 0;$me")
[[ "$IRADIUS" == 0 ]] && out2+=("<big>綠</big> 0 px,jgctl item_radius 0;$me") || out2+=("<big>祿</big> 0 px,jgctl item_radius 0;$me")
out2+=("^sep()")
out2+=("1,jgctl item_radius 1;$me")
out2+=("2,jgctl item_radius 2;$me")
out2+=("3,jgctl item_radius 3;$me")
out2+=("4,jgctl item_radius 4;$me")
out2+=("5,jgctl item_radius 5;$me")
out2+=("6,jgctl item_radius 6;$me")
[[ "$IRADIUS" == 1 ]] && out2+=("<big>綠</big> 1 px,jgctl item_radius 1;$me") || out2+=("<big>祿</big> 1 px,jgctl item_radius 1;$me")
[[ "$IRADIUS" == 2 ]] && out2+=("<big>綠</big> 2 px,jgctl item_radius 2;$me") || out2+=("<big>祿</big> 2 px,jgctl item_radius 2;$me")
[[ "$IRADIUS" == 3 ]] && out2+=("<big>綠</big> 3 px,jgctl item_radius 3;$me") || out2+=("<big>祿</big> 3 px,jgctl item_radius 3;$me")
[[ "$IRADIUS" == 4 ]] && out2+=("<big>綠</big> 4 px,jgctl item_radius 4;$me") || out2+=("<big>祿</big> 4 px,jgctl item_radius 4;$me")
[[ "$IRADIUS" == 5 ]] && out2+=("<big>綠</big> 5 px,jgctl item_radius 5;$me") || out2+=("<big>祿</big> 5 px,jgctl item_radius 5;$me")
[[ "$IRADIUS" == 6 ]] && out2+=("<big>綠</big> 6 px,jgctl item_radius 6;$me") || out2+=("<big>祿</big> 6 px,jgctl item_radius 6;$me")
out+=("^sep($MORE_MENU_SETTINGS)")
out+=(" $GLOBAL_MENU_SETTINGS,jgmenusettings-pipe -c")
#out+=("^sep($MORE_MENU_SETTINGS)")
#out+=(" $GLOBAL_MENU_SETTINGS,jgmenusettings-pipe -c")
#out+=("$GLOBAL_MENU_SETTINGS,^pipe(jgmenusettings-pipe -r)")
out+=("^sep()")
if [ -f "${THEMERC}.bak" ]; then
out+=(" $RESET <i>${jgmenu_theme}</i> $TO_DEFAULT,jgctl reset;$me")
fi
out+=(" $EDIT <i>${jgmenu_theme}</i> $FILE,xdg-open $THEMERC")
### 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
@ -231,7 +572,7 @@ if [[ "$1" == "-s" ]]; then
source "$CNF_FILE"
out+=("^sep()")
out+=(" ⮜⮜⮜ Colorizer,colorizer -s")
out+=(" ${arrow_string_left} $_COLORIZER_ROOT,colorizer -s")
if [[ "$colorizer_size" == "full" ]];then
eval $(xdotool getdisplaygeometry --shell)
@ -251,27 +592,36 @@ if [[ "$1" == "-s" ]]; then
[ $(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))
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)
WALLPAPER=${WALLPATH##*/}
THUMBDIR="$HOME/.config/mabox/wallthumbs"
THUMBDIR="$HOME/.cache/colorizer/thumbs"
mkdir -p ${THUMBDIR}
THUMB="${THUMBDIR}/${WALLPAPER}.png"
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}
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}
@rect,,$((jgtools_padding + 4)),$((jgtools_padding + 120)),270,34,0,left,top,#222222 20,#222222 70,
@text,,$((jgtools_padding + 158)),$((jgtools_padding + 124)),120,30,0,left,top,#FFFFFF ,${WINCLR},<span size='10400' font_family='Ubuntu'><b>Colorizer</b> Menus</span>
@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},<span size='10400' font_family='Ubuntu'><b>Colorizer</b> Menus</span>
@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
@ -279,3 +629,4 @@ EOF
fi
printf '%s\n' "${out[@]}"
printf '%s\n' "${out2[@]}"
printf '%s\n' "${out3[@]}"

View File

@ -1,9 +1,45 @@
#!/bin/bash
#
# colorizer - set of tools for Mabox (auto)theming
# Copyright (C) 2022-2023 Daniel Napora <napcok@gmail.com>
#
# 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/>.
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 | 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
@ -21,16 +57,42 @@ 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"
DARKBG="Ciemne"
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"
TEXTALIGN="Wyrównanie tekstu"
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"
@ -48,7 +110,9 @@ case "$LANG" in
FLAT="płaski - <b>flat</b>"
RAISED="uniesiony - <b>raised</b>"
SUNKEN="wklęsły - <b>sunken</b>"
BUTTONS="Przyciski"
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"
@ -73,19 +137,47 @@ case "$LANG" in
RESET_THEME="Resetuj motyw"
AREYOUSURE="Czy aby na pewno?"
NOT_SUPORTED_OBTHEME="Nie wspierany motyw"
SWITCH_TO_MBCOLORS="Przełącz na MBColors"
UNLOCK="odblokuj swoją kreatywność..."
SWITCH_TO_MBCOLORS="Przełącz na <b>MBColors</b>"
_COLORIZER_ROOT="<b>Colorizer</b> - menu główne"
;;
*)
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"
DARKBG="Dark"
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"
TEXTALIGN="Text align"
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"
@ -103,7 +195,9 @@ case "$LANG" in
FLAT="flat"
RAISED="raised"
SUNKEN="sunken"
BUTTONS="Buttons"
BUTTONS_LBL="Buttons"
BUTTONS_LAYOUT="Buttons Layout"
LEGEND="Legend"
GRADIENT_TYPE="Gradient type"
SPLITVERTICAL="SplitVertical"
MIRRORHORIZONTAL="MirrorHorizontal"
@ -112,7 +206,7 @@ case "$LANG" in
PYRAMID="Pyramid"
SOLID_COLOR="Solid color (no gradient)"
PRE_GRADIENTS="Predefined gradients"
GRADIENT_REVERSE="Reverse Gradient"
GRADIENT_REVERSE="Reverse Gradient Colors"
ACTIVE_BG_TO="Active Background to"
INACTIVE_BG_TO="Inactive Background to"
BORDER="Window Border"
@ -127,14 +221,72 @@ case "$LANG" in
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"
NOT_SUPORTED_OBTHEME="Theme not supported"
UNLOCK="Unlock your creativity..."
SWITCH_TO_MBCOLORS="Switch to <b>MBColors</b>"
_COLORIZER_ROOT="<b>Colorizer</b> rootmenu"
;;
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" ]; then
if [[ -f "$THEMERC" ]] && [[ "$OBTHEME" = "MBcolor"* ]]; then
if [ ! -f "${THEMERC}.bak" ]; then
cp ${THEMERC} ${THEMERC}.bak
#check if lines, and add missing
@ -164,67 +316,134 @@ if [ -f "$THEMERC" ]; then
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
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>綠</big> $FLAT,obtctl raised 0;$me") || out2+=("<big>祿</big> $FLAT,obtctl raised 0;$me")
[[ "$BEVEL" == "raised" ]] && out2+=("<big>綠</big> $RAISED,obtctl raised 1;$me") || out2+=("<big>祿</big> $RAISED,obtctl raised 1;$me")
[[ "$BEVEL" == "sunken" ]] && out2+=("<big>綠</big> $SUNKEN,obtctl raised 2;$me") || out2+=("<big>祿</big> $SUNKEN,obtctl raised 2;$me")
out2+=("^sep($GRADIENT_TYPE)")
[[ "$GRAD" == Solid ]] && out2+=("<big>綠</big> $SOLID_COLOR,obtctl gradient_type solid;$me") || out2+=("<big>祿</big> $SOLID_COLOR,obtctl gradient_type solid;$me")
out2+=("^sep()")
[[ "$GRAD" == Vertical ]] && out2+=("<big>綠</big> $VERTICAL,obtctl gradient_type vertical;$me") || out2+=("<big>祿</big> $VERTICAL,obtctl gradient_type vertical;$me")
[[ "$GRAD" == Horizontal ]] && out2+=("<big>綠</big> $HORIZONTAL,obtctl gradient_type horizontal;$me") || out2+=("<big>祿</big> $HORIZONTAL,obtctl gradient_type horizontal;$me")
[[ "$GRAD" == MirrorHorizontal ]] && out2+=("<big>綠</big> $MIRRORHORIZONTAL,obtctl gradient_type mirrorhorizontal;$me") || out2+=("<big>祿</big> $MIRRORHORIZONTAL,obtctl gradient_type mirrorhorizontal;$me")
[[ "$GRAD" == SplitVertical ]] && out2+=("<big>綠</big> $SPLITVERTICAL,obtctl gradient_type splitvertical;$me") || out2+=("<big>祿</big> $SPLITVERTICAL,obtctl gradient_type splitvertical;$me")
[[ "$GRAD" == Diagonal ]] && out2+=("<big>綠</big> $DIAGONAL,obtctl gradient_type diagonal;$me") || out2+=("<big>祿</big> $DIAGONAL,obtctl gradient_type diagonal;$me")
[[ "$GRAD" == CrossDiagonal ]] && out2+=("<big>綠</big> $CROSSDIAGONAL,obtctl gradient_type crossdiagonal;$me") || out2+=("<big>祿</big> $CROSSDIAGONAL,obtctl gradient_type crossdiagonal;$me")
[[ "$GRAD" == Pyramid ]] && out2+=("<big>綠</big> $PYRAMID,obtctl gradient_type pyramid;$me") || out2+=("<big>祿</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")
out2+=("<big></big> $DARKBG...,obtctl mono pick dark")
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 $USERSCHEMES")
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($OBTHEME_LBL: <i>$OBTHEME</i>)")
out+=("^sep(<i>$GENERATEFROMWP</i>)")
out+=("$LIGHTBG,w2theme ob light;$me")
out+=("$DARKBG,w2theme ob dark;$me")
out+=("^sep($TITLEBAR)")
out+=("<tt><span bgcolor='$ABG'> </span></tt> $ACTIVE_BG,^pipe(mbclr '$ABG' obtctl clractivebg_only '${ACTIVE_BG}' '$me')")
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>AbCd</b> </span></tt> $TITLEBAR_TEXT,^checkout(titletext)")
out+=("^sep()")
out+=("<tt><span bgcolor='$NBG'> </span></tt> $INACTIVE_BG,^pipe(mbclr '$NBG' obtctl clrnormalbg_only '${INACTIVE_BG}' '$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></big> <b>$BOLD</b>,obtctl fontweight_inactive Normal;$me") || out+=("<big></big> <b>$BOLD</b>,obtctl fontweight_inactive Bold;$me")
[[ "$SLANT_INACT" =~ .*"talic" ]] && out+=("<big></big> <i>$ITALIC</i>,obtctl fontslant_inactive Normal;$me") || out+=("<big></big> <i>$ITALIC</i>,obtctl fontslant_inactive Italic;$me")
out+=("^sep()")
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)")
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)")
out+=("凌 $GRADIENT_REVERSE,obtctl activegradient '${ABGTO}' '${ABG}';$me")
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_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+=("<big>󰝣</big> $BORDER [ <b>$BORD</b> ],^checkout(border)")
out+=("$HANDLEWIDTH [ <b>$HANDLE</b> ],^checkout(handlewidth)")
out+=("$ACTIVEHANDLE? [ <b>$AHANDLE</b> ],^checkout(handle)")
#out+=("$ACTIVEHANDLE? [ <b>$AHANDLE</b> ],^checkout(handle)")
if [ -f "${THEMERC}.bak" ]; then
out+=("^sep($RESET)")
out+=(" $RESET_THEME,^checkout(resettheme)")
out+=("󰁯 $RESET_THEME,^checkout(resettheme)")
out2+=("^tag(resettheme)")
out2+=("^sep($AREYOUSURE)")
out2+=("$YES,obtctl reset;$me")
out2+=("$YES,obtctl resetMBcolors;$me")
fi
#out+=("Edit...,xdg-open ${THEMERC}")
@ -237,26 +456,73 @@ fi
#done
#TBUTTONS
out2+=("^tag(tbuttons)")
out2+=("^sep($BUTTONS)")
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>綠 </big> $LEFT,obtctl textjustify left;$me")||out2+=("<big>祿 </big> $LEFT,obtctl textjustify left;$me")
[[ "$TXTJUST" = center ]] && out2+=("<big>綠 </big> $CENTER,obtctl textjustify center;$me")||out2+=("<big>祿 </big> $CENTER,obtctl textjustify center;$me")
[[ "$TXTJUST" = right ]] && out2+=("<big>綠 </big> $RIGHT,obtctl textjustify right;$me")||out2+=("<big>祿 </big> $RIGHT,obtctl textjustify right;$me")
out2+=("^sep($BUTTONS_LAYOUT)")
[[ "$NDSLIMC" == NDSLIMC ]] && out2+=("<big>綠</big> <tt>full </tt> <b>NDSLIMC</b> (default),obtctl ndslimc NDSLIMC;$me") || out2+=("<big>祿</big> <tt>full </tt> <b>NDSLIMC</b> (default),obtctl ndslimc NDSLIMC;$me")
[[ "$NDSLIMC" == NLIMC ]] && out2+=("<big>綠</big> <tt>mini </tt> <b>NLIMC</b>,obtctl ndslimc NLIMC;$me") || out2+=("<big>祿</big> <tt>mini </tt> <b>NLIMC</b>,obtctl ndslimc NLIMC;$me")
[[ "$NDSLIMC" == LIMC ]] && out2+=("<big>綠</big> <tt>mini (no icon)</tt> <b>LIMC</b>,obtctl ndslimc LIMC;$me") || out2+=("<big>祿</big> <tt>mini (no icon)</tt> <b>LIMC</b>,obtctl ndslimc LIMC;$me")
[[ "$NDSLIMC" == CMIL ]] && out2+=("<big>綠</big> <tt>crazy </tt> <b>CMIL</b>,obtctl ndslimc CMIL;$me") || out2+=("<big>祿</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_TEXT)")
out2+=("$FONT...,mb-setfont obtitle;$me")
out2+=("$TEXTALIGN [ <b>$TXTJUST</b> ],^checkout(talign)")
out2+=("$SHADOW,^checkout(shadow)")
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()")
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)")
sizes=(16 15 14 13 12 11 10 9 8)
for i in "${sizes[@]}"
do
[[ "$FSIZE" == "$i" ]] && out2+=("<big>綠</big> <b>$i px</b>,obtctl fontsize $i;$me") || out2+=("<big>祿</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>綠</big> <span font_family=\"${fon}\">${fon}</span>,$me") || out2+=("<big>祿</big> <span font_family=\"${fon}\">${fon}</span>,obtctl fontfamily \"${fon}\";$me")
done
fi
out2+=("^sep()")
[[ "$WEIGHT" =~ .*"old" ]] && out2+=("<big></big> <b>$BOLD</b>,obtctl fontweight Normal;$me") || out2+=("<big></big> <b>$BOLD</b>,obtctl fontweight Bold;$me")
[[ "$SLANT" =~ .*"talic" ]] && out2+=("<big></big> <i>$ITALIC</i>,obtctl fontslant Normal;$me") || out2+=("<big></big> <i>$ITALIC</i>,obtctl fontslant Italic;$me")
#SHADOW
out2+=("^sep($TEXTALIGN)")
out2+=(" $LEFT,obtctl textjustify left;$me")
out2+=(" $CENTER,obtctl textjustify center;$me")
out2+=(" $RIGHT,obtctl textjustify right;$me")
[[ "$TXTJUST" = left ]] && out2+=("<big>綠 </big> $LEFT,obtctl textjustify left;$me")||out2+=("<big>祿 </big> $LEFT,obtctl textjustify left;$me")
[[ "$TXTJUST" = center ]] && out2+=("<big>綠 </big> $CENTER,obtctl textjustify center;$me")||out2+=("<big>祿 </big> $CENTER,obtctl textjustify center;$me")
[[ "$TXTJUST" = right ]] && out2+=("<big>綠 </big> $RIGHT,obtctl textjustify right;$me")||out2+=("<big>祿 </big> $RIGHT,obtctl textjustify right;$me")
out2+=("^sep()")
out2+=("$SHADOW,^checkout(shadow)")
out2+=("^tag(shadow)")
out2+=("^sep($SHADOW)")
out2+=("$NOSHADOW,obtctl shadow 0;$me")
@ -309,36 +575,32 @@ out2+=("10,obtctl borderWidth 10;$me")
out2+=("12,obtctl borderWidth 12;$me")
out2+=("16,obtctl borderWidth 16;$me")
out2+=("20,obtctl borderWidth 20;$me")
#RAISED
out2+=("^tag(raised)")
out2+=("\"\"\"^sep($RAISED_OR_FLAT?)\"\"\"")
out2+=("$FLAT,obtctl raised 0;$me")
out2+=("$RAISED,obtctl raised 1;$me")
out2+=("$SUNKEN,obtctl raised 2;$me")
#GRADIENT
out2+=("^tag(gradient)")
out2+=("^sep($GRADIENT_TYPE)")
out2+=("$SOLID_COLOR,obtctl gradient_type solid;$me")
[[ "$GRAD" == Solid ]] && out2+=("<big>綠</big> $SOLID_COLOR,obtctl gradient_type solid;$me") || out2+=("<big>祿</big> $SOLID_COLOR,obtctl gradient_type solid;$me")
out2+=("^sep()")
out2+=("$VERTICAL,obtctl gradient_type vertical;$me")
out2+=("$HORIZONTAL,obtctl gradient_type horizontal;$me")
out2+=("$MIRRORHORIZONTAL,obtctl gradient_type mirrorhorizontal;$me")
out2+=("$SPLITVERTICAL,obtctl gradient_type splitvertical;$me")
out2+=("$DIAGONAL,obtctl gradient_type diagonal;$me")
out2+=("$CROSSDIAGONAL,obtctl gradient_type crossdiagonal;$me")
out2+=("$PYRAMID,obtctl gradient_type pyramid;$me")
[[ "$GRAD" == Vertical ]] && out2+=("<big>綠</big> $VERTICAL,obtctl gradient_type vertical;$me") || out2+=("<big>祿</big> $VERTICAL,obtctl gradient_type vertical;$me")
[[ "$GRAD" == Horizontal ]] && out2+=("<big>綠</big> $HORIZONTAL,obtctl gradient_type horizontal;$me") || out2+=("<big>祿</big> $HORIZONTAL,obtctl gradient_type horizontal;$me")
[[ "$GRAD" == MirrorHorizontal ]] && out2+=("<big>綠</big> $MIRRORHORIZONTAL,obtctl gradient_type mirrorhorizontal;$me") || out2+=("<big>祿</big> $MIRRORHORIZONTAL,obtctl gradient_type mirrorhorizontal;$me")
[[ "$GRAD" == SplitVertical ]] && out2+=("<big>綠</big> $SPLITVERTICAL,obtctl gradient_type splitvertical;$me") || out2+=("<big>祿</big> $SPLITVERTICAL,obtctl gradient_type splitvertical;$me")
[[ "$GRAD" == Diagonal ]] && out2+=("<big>綠</big> $DIAGONAL,obtctl gradient_type diagonal;$me") || out2+=("<big>祿</big> $DIAGONAL,obtctl gradient_type diagonal;$me")
[[ "$GRAD" == CrossDiagonal ]] && out2+=("<big>綠</big> $CROSSDIAGONAL,obtctl gradient_type crossdiagonal;$me") || out2+=("<big>祿</big> $CROSSDIAGONAL,obtctl gradient_type crossdiagonal;$me")
[[ "$GRAD" == Pyramid ]] && out2+=("<big>綠</big> $PYRAMID,obtctl gradient_type pyramid;$me") || out2+=("<big>祿</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
#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)")
out2+=("0,obtctl handlewidth 0;$me")
out2+=("^sep()")
out2+=("1,obtctl handlewidth 1;$me")
out2+=("2,obtctl handlewidth 2;$me")
out2+=("3,obtctl handlewidth 3;$me")
out2+=("4,obtctl handlewidth 4;$me")
@ -346,14 +608,54 @@ out2+=("6,obtctl handlewidth 6;$me")
out2+=("8,obtctl handlewidth 8;$me")
out2+=("10,obtctl handlewidth 10;$me")
else
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")
#for i in $(ls $HOME/.themes);do
#if [ -f "$HOME/.themes/${i}/openbox-3/themerc" ]; then
#out+=("$i,obtctl theme $i;$me")
#fi
#done
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>綠</big> <span font_family=\"${fon}\">${fon}</span>,$me") || out+=("<big>祿</big> <span font_family=\"${fon}\">${fon}</span>,obtctl fontfamily \"${fon}\";$me")
done
fi
out+=("^sep()")
[[ "$WEIGHT" =~ .*"old" ]] && out+=("<big></big> <b>$BOLD</b>,obtctl fontweight Normal;$me") || out+=("<big></big> <b>$BOLD</b>,obtctl fontweight Bold;$me")
[[ "$SLANT" =~ .*"talic" ]] && out+=("<big></big> <i>$ITALIC</i>,obtctl fontslant Normal;$me") || out+=("<big></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>綠</big> <b>$i px</b>,obtctl fontsize $i;$me") || out2+=("<big>祿</big> $i px,obtctl fontsize $i;$me")
done
out+=("^sep($BUTTONS_LAYOUT)")
[[ "$NDSLIMC" == NDSLIMC ]] && out+=("<big>綠</big> <tt>full </tt> <b>NDSLIMC</b> (default),obtctl ndslimc NDSLIMC;$me") || out+=("<big>祿</big> <tt>full </tt> <b>NDSLIMC</b> (default),obtctl ndslimc NDSLIMC;$me")
[[ "$NDSLIMC" == NLIMC ]] && out+=("<big>綠</big> <tt>mini </tt> <b>NLIMC</b>,obtctl ndslimc NLIMC;$me") || out+=("<big>祿</big> <tt>mini </tt> <b>NLIMC</b>,obtctl ndslimc NLIMC;$me")
[[ "$NDSLIMC" == LIMC ]] && out+=("<big>綠</big> <tt>mini (no icon)</tt> <b>LIMC</b>,obtctl ndslimc LIMC;$me") || out+=("<big>祿</big> <tt>mini (no icon)</tt> <b>LIMC</b>,obtctl ndslimc LIMC;$me")
[[ "$NDSLIMC" == CMIL ]] && out+=("<big>綠</big> <tt>crazy </tt> <b>CMIL</b>,obtctl ndslimc CMIL;$me") || out+=("<big>祿</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
@ -363,7 +665,7 @@ if [[ "$1" == "-s" ]]; then
source $HOME/.config/colorizer/colorizer.conf
out+=("^sep()")
out+=(" ⮜⮜⮜ Colorizer,colorizer -s")
out+=(" ${arrow_string_left} $_COLORIZER_ROOT,colorizer -s")
if [[ "$colorizer_size" == "full" ]];then
@ -384,29 +686,35 @@ 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))
JGWIDTH=$((jgtools_padding + 270 + jgtools_padding))
MENU_PADDING_TOP=$((jgtools_padding + 150))
# 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
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
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
@rect,,$((jgtools_padding + 4)),$((jgtools_padding + 128)),270,22,0,left,top,#222222 20,#222222 70,
@text,,$((jgtools_padding + 138)),$((jgtools_padding + 124)),130,30,0,left,top,#FFFFFF ,${WINCLR},<span size='10400' font_family='Ubuntu'><b>Colorizer</b> Openbox</span>
@icon,,$((jgtools_padding)),$((jgtools_padding)),270,150,4,left,top,,,${THUMB}
@icon,,$((jgtools_padding)),$((jgtools_padding)),270,150,4,left,top,,,/usr/share/mabox-colorizer/img/colorizer-ob.png
@rect,,$((jgtools_padding)),$((jgtools_padding + 124)),270,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
@ -416,3 +724,4 @@ exit 0
fi
printf '%s\n' "${out[@]}"
printf '%s\n' "${out2[@]}"
printf '%s\n' "${out3[@]}"

View File

@ -1,19 +1,61 @@
#!/bin/bash
#
# colorizer - set of tools for Mabox (auto)theming
# Copyright (C) 2022-2023 Daniel Napora <napcok@gmail.com>
#
# 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/>.
# TODO Start Pyradio if not started
# TODO check if theme is writeable (users themes)
# TODO Save as new theme
PR_WINID=$(wmctrl -lp |grep 'PyRadio: \|PyRadio -'|cut -d' ' -f1)
wmctrl -iR ${PR_WINID}
if [[ ! -f "$HOME"/local/share/applications/pyradio.desktop ]];then
pyradio --terminal terminator > /dev/null 2>&1
fi
me="colorizer-pyradio -s"
THEMERC=~/.config/pyradio/themes/mbcolors.pyradio-theme
# get wallpaper color palette
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
case "$LANG" in
pl*)
COLORIZE_PYRADIO="Pokoloruj PyRadio"
START_PYRADIO="Uruchom PyRadio"
INFO="Info"
INFO="Ważna informacja"
INFO_HEAD="Jak działa automatyczna zmiana kolorów?"
INFO_TXT="Automatyczna zmiana kolorów działa z motywem <b>mbcolors</b> (User theme).\nAby go ustawić:\n- użyj klawisza <b>t</b> - wybór motywów\n- zaznacz motyw <i>mbcolors</i> i naciśnij <b>spację</b> - (ustawia jako domyślny)\n- wciśnij <b>c</b> - aby włączyć śledzenie zmian w pliku motywu.\n\n"
GENERATEFROMWP="Generuj z kolorów tapety..."
@ -21,32 +63,34 @@ case "$LANG" in
DARKBG="Ciemne tło"
SETCOLORS="Ustaw kolory..."
RESETTHEME="Resetuj motyw"
EXPORTTHEME="Eksportuj jako nowy motyw"
EXPORTTHEME="<b>Eksportuj</b> jako nowy motyw"
CONFIG_AND_DOCS="Konfiguracja i Dokumentacja"
README="PyRadio CZYTAJTO"
MANUAL="Manual PyRadio"
EDITCONF="Edytuj plik konfiguracyjny"
EDITSTATIONS="Edytuj listę stacji"
CONFIGDIR="Katalog z konfiguracją"
_COLORIZER_ROOT="<b>Colorizer</b> - menu główne"
;;
*)
COLORIZE_PYRADIO="Colorize PyRadio"
START_PYRADIO="Start PyRadio"
INFO="Info"
INFO="Info (important)"
INFO_HEAD="How it works?"
INFO_TXT="Automatic theme generation works with <b>mbcolors</b> user theme.\n Configuration:/n- use <b>t</b> key to show theme selection dialog\n- navigate to <i>mbcolors</i> theme and press <b>c</b>\n\n"
INFO_TXT="Automatic theme generation works with <b>mbcolors</b> user theme.\n Configuration:\n- use <b>t</b> key to show theme selection dialog\n- navigate to <i>mbcolors</i> theme and press <b>c</b>\n\n"
GENERATEFROMWP="Generate from wallpaper colors..."
LIGHTBG="Light Background"
DARKBG="Dark Background"
SETCOLORS="Set colors individually..."
RESETTHEME="Reset theme"
EXPORTTHEME="Export as new theme"
EXPORTTHEME="<b>Export</b> as new theme"
CONFIG_AND_DOCS="Config and Docs"
README="PyRadi README"
MANUAL="PyRadio Manual"
EDITCONF="Edit config file"
EDITSTATIONS="Edit stations list"
CONFIGDIR="Config Dir"
_COLORIZER_ROOT="<b>Colorizer</b> rootmenu"
;;
esac
@ -66,46 +110,57 @@ read MB1 MB2 MBFG<<< "$(grep '^Messages Border ' ${THEMERC})"
out+=("^sep($COLORIZE_PYRADIO)")
#out+=("$START_PYRADIO,terminator --geometry=420x440-20-20 -e pyradio")
out+=(" $INFO,notify-send.sh -i music '$INFO_HEAD' '$INFO_TXT' -t 20000")
out+=("^sep(<i>$GENERATEFROMWP</i>)")
out+=("$LIGHTBG,w2theme pyradio light;$me")
out+=("$DARKBG,w2theme pyradio dark;$me")
if pgrep -f "/usr/bin/python /usr/bin/pyradio" >/dev/null ;then
:
else
out+=("$START_PYRADIO <span bgcolor='#333333' color='#d3d3d3'> <small>W + r</small> </span>,xdotool key super+r;$me")
#out+=("PYRADIO <span bgcolor='#333333' color='#d3d3d3'> <small>W + r</small> </span>,gtk-launch pyradio;sleep 1;$me")
fi
out+=(" $INFO,notify-send.sh -i pyradio -u critical '$INFO_HEAD' '$INFO_TXT'")
out+=("^sep($SETCOLORS)")
out+=("<tt><span weight='bold' bgcolor='$SBG' fgcolor='$SFG'> AbCd </span></tt> Stations,^checkout(stations)")
out2+=("^tag(stations)")
out2+=("^sep(Stations)")
out2+=("Stations Text,^pipe(mbclr '$SFG' prtctl stations_txt 'Stations Text' '$me')")
out2+=("Stations Background,^pipe(mbclr '$SBG' prtctl stations_bg 'Stations Background' '$me')")
out2+=("<tt><span weight='bold' bgcolor='$SBG' fgcolor='$SFG'> AbCd </span></tt> Text,^pipe(mbclr '$SFG' prtctl stations_txt 'Stations Text' '$me')")
out2+=("<tt><span weight='bold' bgcolor='$SBG' fgcolor='$SFG'> </span></tt> Background,^pipe(mbclr '$SBG' prtctl stations_bg 'Stations Background' '$me')")
out+=("<tt><span weight='bold' bgcolor='$SBG' fgcolor='$ASFG'> AbCd </span></tt> Active Station (text),^pipe(mbclr '$ASFG' prtctl active_station ACTIVE_STATION '$me')")
out+=("<tt><span weight='bold' bgcolor='$NCBG' fgcolor='$NCFG'> AbCd </span></tt> Normal Cursor,^checkout(normalcursor)")
out2+=("^tag(normalcursor)")
out2+=("^sep(Normal Cursor)")
out2+=("Normal Cursor Text,^pipe(mbclr '$NCFG' prtctl normal_cursor_txt 'Normal Cursor Text' '$me')")
out2+=("Normal Cursor Background,^pipe(mbclr '$NCBG' prtctl normal_cursor_bg 'Normal Cursor Background' '$me')")
out2+=("<tt><span weight='bold' bgcolor='$NCBG' fgcolor='$NCFG'> AbCd </span></tt> Text,^pipe(mbclr '$NCFG' prtctl normal_cursor_txt 'Normal Cursor Text' '$me')")
out2+=("<tt><span weight='bold' bgcolor='$NCBG' fgcolor='$NCFG'> </span></tt> Background,^pipe(mbclr '$NCBG' prtctl normal_cursor_bg 'Normal Cursor Background' '$me')")
out+=("<tt><span weight='bold' bgcolor='$ACBG' fgcolor='$ACFG'> AbCd </span></tt> Active Cursor,^checkout(activecursor)")
out2+=("^tag(activecursor)")
out2+=("^sep(Active Cursor)")
out2+=("Active Cursor Text,^pipe(mbclr '$ACFG' prtctl active_cursor_txt 'Active Cursor Text' '$me')")
out2+=("Active Cursor Background,^pipe(mbclr '$ACBG' prtctl active_cursor_bg 'Active Cursor Background' '$me')")
out2+=("<tt><span weight='bold' bgcolor='$ACBG' fgcolor='$ACFG'> AbCd </span></tt> Text,^pipe(mbclr '$ACFG' prtctl active_cursor_txt 'Active Cursor Text' '$me')")
out2+=("<tt><span weight='bold' bgcolor='$ACBG' fgcolor='$ACFG'> </span></tt> Background,^pipe(mbclr '$ACBG' prtctl active_cursor_bg 'Active Cursor Background' '$me')")
out+=("<tt><span weight='bold' bgcolor='$ECBG' fgcolor='$ECFG'> AbCd </span></tt> Edit Cursor,^checkout(editcursor)")
out2+=("^tag(editcursor)")
out2+=("^sep(Edit Cursor)")
out2+=("Edit Cursor Text,^pipe(mbclr '$ECFG' prtctl edit_cursor_txt 'Edit Cursor Text' '$me')")
out2+=("Edit Cursor Background,^pipe(mbclr '$ECBG' prtctl edit_cursor_bg 'Edit Cursor Background' '$me')")
out2+=("<tt><span weight='bold' bgcolor='$ECBG' fgcolor='$ECFG'> AbCd </span></tt> Text,^pipe(mbclr '$ECFG' prtctl edit_cursor_txt 'Edit Cursor Text' '$me')")
out2+=("<tt><span weight='bold' bgcolor='$ECBG' fgcolor='$ECFG'> </span></tt> Background,^pipe(mbclr '$ECBG' prtctl edit_cursor_bg 'Edit Cursor Background' '$me')")
out+=("<tt><span weight='bold' bgcolor='$SBBG' fgcolor='$SBFG'> AbCd </span></tt> Status Bar,^checkout(statusbar)")
out2+=("^tag(statusbar)")
out2+=("^sep(Status Bar)")
out2+=("Status Bar Text,^pipe(mbclr '$SBFG' prtctl status_bar_txt 'Status Bar Text' '$me')")
out2+=("Status Bar Background,^pipe(mbclr '$SBBG' prtctl status_bar_bg 'Status Bar Background' '$me')")
out2+=("<tt><span weight='bold' bgcolor='$SBBG' fgcolor='$SBFG'> AbCd </span></tt> Text,^pipe(mbclr '$SBFG' prtctl status_bar_txt 'Status Bar Text' '$me')")
out2+=("<tt><span weight='bold' bgcolor='$SBBG' fgcolor='$SBFG'> </span></tt> Background,^pipe(mbclr '$SBBG' prtctl status_bar_bg 'Status Bar Background' '$me')")
out+=("<tt><span weight='bold' bgcolor='$SBG' fgcolor='$EFFG'> AbCd </span></tt> Extra Func,^pipe(mbclr '$EFFG' prtctl extra_func EXTRA_FUNC '$me')")
out+=("<tt><span weight='bold' bgcolor='$SBG' fgcolor='$PURLFG'> AbCd </span></tt> PyRadio URL,^pipe(mbclr '$PURLFG' prtctl pyradio_url 'PyRadio URL' '$me')")
out+=("<tt><span weight='bold' bgcolor='$SBG' fgcolor='$MBFG'> AbCd </span></tt> Messages Border,^pipe(mbclr '$MBFG' prtctl messages_border 'Messages Border' '$me')")
out+=("\"\"\"<tt><span weight='bold' bgcolor='$SBG' fgcolor='$PURLFG'> AbCd </span></tt> Group, PyRadio URL\"\"\",^pipe(mbclr '$PURLFG' prtctl pyradio_url 'PyRadio URL' '$me')")
out+=("<tt><span weight='bold' bgcolor='$SBG' fgcolor='$MBFG'>_________</span></tt> Messages Border,^pipe(mbclr '$MBFG' prtctl messages_border 'Messages Border' '$me')")
out+=("^sep(<i>$GENERATEFROMWP</i>)")
out+=("<tt><span bgcolor='${w[-1]}' fgcolor='${w[4]}'> 1. station </span></tt> $LIGHTBG,w2theme pyradio light;$me")
out+=("<tt><span bgcolor='${w[0]}' fgcolor='${w[-3]}'> 2. station </span></tt> $DARKBG,w2theme pyradio dark;$me")
out+=("^sep()")
out+=(" $RESETTHEME,prtctl resettheme;$me")
out+=("^sep()")
@ -132,7 +187,7 @@ if [[ "$1" == "-s" ]]; then
source "$CNF_FILE"
out+=("^sep()")
out+=(" ⮜⮜⮜ Colorizer,colorizer -s")
out+=(" ${arrow_string_left} $_COLORIZER_ROOT,colorizer -s")
if [[ "$colorizer_size" == "full" ]];then
eval $(xdotool getdisplaygeometry --shell)
@ -151,27 +206,32 @@ if [[ "$1" == "-s" ]]; then
[ $(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))
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)
WALLPAPER=${WALLPATH##*/}
THUMBDIR="$HOME/.config/mabox/wallthumbs"
THUMBDIR="$HOME/.cache/colorizer/thumbs"
mkdir -p ${THUMBDIR}
THUMB="${THUMBDIR}/${WALLPAPER}.png"
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}
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)),$((jgtools_padding)),270,150,4,left,top,,,${THUMB}
#@icon,,$((jgtools_padding + 4)),$((jgtools_padding + 4)),270,150,4,left,top,,,/usr/share/mabox-colorizer/img/colorizer-conky.png
@rect,,$((jgtools_padding + 4)),$((jgtools_padding + 120)),270,34,0,left,top,#222222 20,#222222 70,
@text,,$((jgtools_padding + 148)),$((jgtools_padding + 124)),120,30,0,left,top,#FFFFFF ,${WINCLR},<span size='10400' font_family='Ubuntu'><b>Colorizer</b> PyRadio</span>
@rect,,$((jgtools_padding)),$((jgtools_padding + 116)),270,34,0,left,top,#222222 20,#222222 70,
@text,,$((jgtools_padding + 144)),$((jgtools_padding + 120)),120,30,0,left,top,#FFFFFF ,${WINCLR},<span size='10400' font_family='Ubuntu'><b>Colorizer</b> PyRadio</span>
$(printf '%s\n' "${out[@]}")

View File

@ -1,7 +1,7 @@
#!/bin/bash
#
# conkyctl - script to handle various Conky operations in Mabox
CONKYDIR="$HOME/.config/conky"
CONKYDIR="$HOME"/.config/conky
BASECONKY="$CONKYDIR/sysinfo_mbcolor.conkyrc"
SESSIONFILE="$CONKYDIR/conky-sessionfile"
COLORIZERDIR="$HOME/.config/colorizer"
@ -18,7 +18,7 @@ update_session () {
while read -r pid b c confpath
do
echo "$b $c ${confpath} & sleep .5" >> ${SESSIONFILE}
done < <(pgrep -af "conky -c ")
done < <(pgrep -u $USER -af "conky -c ")
# Remove duplicates
awk -i inplace '!seen[$0]++' ${SESSIONFILE}
}
@ -109,6 +109,30 @@ basefont_dec () {
((FONTSIZE--))
sd "font .*=.*,$" "font = '${FONT}:size=${FONTSIZE}'," ${1}
}
basefont_family () {
read FONTDEF <<< "$(grep "font .*=.*,$" ${1} | cut -d'=' -f2,3 |cut -d"'" -f2)"
FONT=${FONTDEF%:*}
FONTSIZE=${FONTDEF#*=}
sd "font .*=.*,$" "font = '${2}:size=${FONTSIZE}'," ${1}
}
basefont_family_all () {
read FONTDEF <<< "$(grep "font .*=.*,$" ${BASECONKY} | cut -d'=' -f2,3 |cut -d"'" -f2)"
FONT=${FONTDEF%:*}
FONTSIZE=${FONTDEF#*=}
sd "font .*=.*,$" "font = '${1}:size=${FONTSIZE}'," ${CONKYDIR}/*mbcolor.conkyrc
}
basefont_size () {
read FONTDEF <<< "$(grep "font .*=.*,$" ${1} | cut -d'=' -f2,3 |cut -d"'" -f2)"
FONT=${FONTDEF%:*}
FONTSIZE=${FONTDEF#*=}
sd "font .*=.*,$" "font = '${FONT}:size=${2}'," ${1}
}
basefont_size_all () {
read FONTDEF <<< "$(grep "font .*=.*,$" ${BASECONKY} | cut -d'=' -f2,3 |cut -d"'" -f2)"
FONT=${FONTDEF%:*}
FONTSIZE=${FONTDEF#*=}
sd "font .*=.*,$" "font = '${FONT}:size=${1}'," ${CONKYDIR}/*mbcolor.conkyrc
}
shades_all () {
case "$1" in
shadow)
@ -242,7 +266,7 @@ startone () {
}
startall () {
for i in "$CONKYDIR"/*_mbcolor*; do
if pgrep -af "conky .*${i}" >/dev/null; then
if pgrep -u $USER -af "conky .*${i}" >/dev/null; then
:
else
conky -c "${i}" &
@ -258,6 +282,19 @@ restartone () {
kill ${1}
startone ${1}
}
toggleone () {
if pgrep -u $USER -af "conky .*${1}" >/dev/null; then
kill "${1}"
else
CCFG=$(ls ~/.config/conky/${1}*.conkyrc)
#notify-send.sh "Conky" "$CCFG"
if test -f "$CCFG";
then
startone "$CCFG"
fi
#conky -c "${i}" &
fi
}
makemoveableall () {
wmctrl -k on
sd "own_window_type.*$" "own_window_type = 'normal'," ${CONKYDIR}/*mbcolor.conkyrc
@ -373,14 +410,19 @@ languages () {
COLOR_2="Kolor 2 <small>(pasek/graf)</small>"
BACKGROUND="Kolor tła"
COLORSCHEME="Motywy kolorów"
SYSTEM_SCHEMES="Systemowe"
YOUR_SCHEMES="Moje motywy"
OPENTHEMEDIR="Otwórz katalog motywów"
APPLY_THEME="Zastosuj motyw"
APPLY_TO_ONE="Zastosuj do "
APPLY_TO_ALL="Zastosuj do wszystkich"
NEWTHEME="Nowy motyw kolorów..."
SAVENEWTHEME="utwórz nowy motyw..."
LIGHTBG="<b>light</b> - jasne tło"
DARKBG="<b>dark</b> - ciemne tło"
SAVE_CURRSCHEME="Zapisz aktualną kolorystykę jako..."
MONOCHROMATIC="Monochromatyczny"
CHOOSE_AND_PICK="Wybierz wariant i pobierz kolor..."
LIGHTBG="Jasne tło"
DARKBG="Ciemne tło"
RESETCOLORS="Przywróć domyślne kolory"
GENFROMWP="Generuj z kolorów tapety"
TRANSPARENT="Przezroczyste tło?"
@ -388,13 +430,16 @@ languages () {
NO="Nie"
FONTS="Czcionka"
SELECTFONT="Wybierz czcionkę..."
INCREASE="Powiększ"
DECREASE="Pomniejsz"
FONTFAMILY_LBL="czcionka"
_EDIT_FAVFONTS="Edytuj ulubione czcionki"
FONTSIZE_LBL="rozmiar czcionki"
INCREASE="Powiększ do"
DECREASE="Pomniejsz do"
OLINE="Obrys"
SHADOW="Cień"
DRAW="Rysuj"
BORDERS="Obramowanie"
EDIT="Edytuj plik"
EDIT="Edytuj plik Conky"
RELOAD="Przeładuj"
KILL="Zabij"
LOGOSIZE="Rozmiar logo"
@ -433,14 +478,19 @@ languages () {
COLOR_2="Color 2 <small>(bars/graphs)</small>"
BACKGROUND="Background color"
COLORSCHEME="Color schemes"
SYSTEM_SCHEMES="System colorschemes"
YOUR_SCHEMES="My colorschemes"
OPENTHEMEDIR="Open schemes dir"
APPLY_THEME="Apply scheme..."
APPLY_TO_ONE="Apply to "
APPLY_TO_ALL="Apply to All"
NEWTHEME="New Color scheme..."
SAVENEWTHEME="from current colors..."
LIGHTBG="<b>light</b>"
DARKBG="<b>dark</b>"
SAVE_CURRSCHEME="Save current colors as..."
MONOCHROMATIC="Monochromatic"
CHOOSE_AND_PICK="Choose variant and pick color..."
LIGHTBG="Light Background"
DARKBG="Dark Background"
RESETCOLORS="Restore default colors"
GENFROMWP="Generate from wallpaper"
TRANSPARENT="Transparent background?"
@ -448,13 +498,16 @@ languages () {
NO="No"
FONTS="Font"
SELECTFONT="Select Font..."
INCREASE="Increase"
DECREASE="Decrease"
FONTFAMILY_LBL="font family"
_EDIT_FAVFONTS="Edit favorite fonts list"
FONTSIZE_LBL="font size"
INCREASE="Increase to"
DECREASE="Decrease to"
OLINE="Outline"
SHADOW="Shadow"
DRAW="Draw"
BORDERS="Borders"
EDIT="Edit file"
EDIT="Edit Conky file"
RELOAD="Reload"
KILL="Kill"
LOGOSIZE="Logo size"
@ -493,14 +546,19 @@ languages () {
COLOR_2="Color 2 <small>(bars/graphs)</small>"
BACKGROUND="Background color"
COLORSCHEME="Color schemes"
SYSTEM_SCHEMES="System colorschemes"
YOUR_SCHEMES="My colorschemes"
OPENTHEMEDIR="Open schemes dir"
APPLY_THEME="Apply scheme..."
APPLY_TO_ONE="Apply to "
APPLY_TO_ALL="Apply to All"
NEWTHEME="New Color scheme..."
SAVENEWTHEME="from current colors..."
LIGHTBG="<b>light</b>"
DARKBG="<b>dark</b>"
SAVE_CURRSCHEME="Save current colors as..."
MONOCHROMATIC="Monochromatic"
CHOOSE_AND_PICK="Choose variant and pick color..."
LIGHTBG="Light Background"
DARKBG="Dark Background"
RESETCOLORS="Restore default colors"
GENFROMWP="Generate from wallpaper"
TRANSPARENT="Transparent background?"
@ -508,13 +566,16 @@ languages () {
NO="No"
FONTS="Font"
SELECTFONT="Select Font..."
INCREASE="Increase"
DECREASE="Decrease"
FONTFAMILY_LBL="font family"
_EDIT_FAVFONTS="Edit favorite fonts list"
FONTSIZE_LBL="font size"
INCREASE="Increase to"
DECREASE="Decrease to"
OLINE="Outline"
SHADOW="Shadow"
DRAW="Draw"
BORDERS="Borders"
EDIT="Edit file"
EDIT="Edit Conky file"
RELOAD="Reload"
KILL="Kill"
LOGOSIZE="Logo size"
@ -532,6 +593,30 @@ languages () {
single () {
unset NOT_SUPPORTED OLD_SYNTAX
SYSSCHEMES="/usr/share/mabox-colorizer/colorschemes/conky.csv"
USERSCHEMES="$HOME/.config/colorizer/conky/c_userschemes.csv"
if [ ! -f "$USERSCHEMES" ]; then
mkdir -p "$HOME/.config/colorizer/conky/"
echo "WINCLR | CLR | CLR0 | CLR1 | CLR2 |WINTRANS|OUTLINE|SHADES | BORD | STIP |scheme_name" > "$USERSCHEMES"
fi
### 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"
languages
filename=${1##*/}
name=${filename%%_mb*}
@ -598,46 +683,21 @@ if [[ "$OLD_SYNTAX" = "true" ]];then
#out+=("^sep($POSITION)")
out2+=("^tag(position)")
out2+=("^sep($POSITION)")
out2+=(" $MARKNEWPOS,conkyctl setpos ${1};$me")
out2+=("<big></big> $MARKNEWPOS,conkyctl setpos ${1};$me")
#out2+=("^sep()")
out2+=("^sep($ALIGNMENT)")
out2+=(" $TOPLEFT,conkyctl pos top_left ${1};$me")
out2+=(" $TOP,conkyctl pos top_middle ${1};$me")
out2+=(" $TOPRIGHT,conkyctl pos top_right ${1};$me")
out2+=(" $LEFT,conkyctl pos middle_left ${1};$me")
out2+=("<big></big> $TOPLEFT,conkyctl pos top_left ${1};$me")
out2+=("<big></big> $TOP,conkyctl pos top_middle ${1};$me")
out2+=("<big></big> $TOPRIGHT,conkyctl pos top_right ${1};$me")
out2+=("<big></big> $LEFT,conkyctl pos middle_left ${1};$me")
out2+=("$CENTER,conkyctl pos middle_middle ${1};$me")
out2+=(" $RIGHT,conkyctl pos middle_right ${1};$me")
out2+=(" $BOTTOMLEFT,conkyctl pos bottom_left ${1};$me")
out2+=(" $BOTTOM,conkyctl pos bottom_middle ${1};$me")
out2+=(" $BOTTOMRIGHT,conkyctl pos bottom_right ${1};$me")
out2+=("<big></big> $RIGHT,conkyctl pos middle_right ${1};$me")
out2+=("<big></big> $BOTTOMLEFT,conkyctl pos bottom_left ${1};$me")
out2+=("<big></big> $BOTTOM,conkyctl pos bottom_middle ${1};$me")
out2+=("<big></big> $BOTTOMRIGHT,conkyctl pos bottom_right ${1};$me")
#out2+=("$ALIGNMENT [ <b>$POS</b> ],^checkout(posi)")
#out3+=("^tag(posi)")
#out3+=("^sep($POSITION)")
#out3+=(" $TOPLEFT,conkyctl pos top_left ${1};$me")
#out3+=(" $TOP,conkyctl pos top_middle ${1};$me")
#out3+=(" $TOPRIGHT,conkyctl pos top_right ${1};$me")
#out3+=(" $LEFT,conkyctl pos middle_left ${1};$me")
#out3+=("$CENTER,conkyctl pos middle_middle ${1};$me")
#out3+=(" $RIGHT,conkyctl pos middle_right ${1};$me")
#out3+=(" $BOTTOMLEFT,conkyctl pos bottom_left ${1};$me")
#out3+=(" $BOTTOM,conkyctl pos bottom_middle ${1};$me")
#out3+=(" $BOTTOMRIGHT,conkyctl pos bottom_right ${1};$me")
#out2+=("$HORIZONTAL_GAP [ <b>$GAPX</b> ],^checkout(gapx)")
#out3+=("^tag(gapx)")
#out3+=("^sep($HORIZONTAL_GAP)")
#for i in 0 10 20 30 40 60 80 100 120 140 160 180 200 220 240 260 280 300 320 340 360; do
#out3+=("${i},conkyctl gap_x ${i} ${1};$me")
#done
#out2+=("$VERTICAL_GAP [ <b>$GAPY</b> ],^checkout(gapy)")
#out3+=("^tag(gapy)")
#out3+=("^sep($VERTICAL_GAP)")
#for i in 0 10 20 30 40 60 80 100 120 140 160 180 200 220 240 260 280 300 320 340 360; do
#out3+=("${i},conkyctl gap_y ${i} ${1};$me")
#done
if [[ "$NOT_SUPPORTED" != "true" ]];then
if [[ "$NOT_SUPPORTED" != "true" ]];then
out2+=("^sep()")
out2+=(" $MAKEMOVEABLE,conkyctl makemoveableall")
fi
@ -696,54 +756,56 @@ if [[ "$OLD_SYNTAX" = "true" ]];then
fi
out+=("^sep($COLORS)")
if [ "$WINTRANS" == false ];then
out+=("<span bgcolor='#282828'> <span fgcolor='#ebdbb2'></span> <span fgcolor='#98971a'></span> <span fgcolor='#d79921'></span> <span fgcolor='#cc241d'></span> </span> $COLORSCHEME,^checkout(regensingle)")
out2+=("^tag(regensingle)")
out2+=("^sep($COLORSCHEME)")
out2+=("$RESETCOLORS,conkyctl resetcolorsone ${1}")
out2+=("^sep($GENFROMWP)")
out2+=("$LIGHTBG,w2theme conkyone light ${1}")
out2+=("$DARKBG,w2theme conkyone dark ${1}")
out2+=("^sep($APPLY_THEME)")
out3+=("^tag(applytoall)")
out3+=("^sep($APPLY_TO_ALL)")
for i in "${COLORIZERDIR}"/conky/themes/*.colors
do
source "${i}"
themefilename=${i##*/}
themename=${themefilename%%.colors}
ltitle=${themename//-/ }
arr=( $ltitle )
schemetitle=${arr[@]^}
out2+=("<span bgcolor='$own_window_colour'> <span fgcolor='$default_color'></span> <span fgcolor='$color0'></span> <span fgcolor='$color1'></span> <span fgcolor='$color2'></span> </span> $schemetitle,conkyctl settheme $themefilename $1")
out3+=("<span bgcolor='$own_window_colour'> <span fgcolor='$default_color'></span> <span fgcolor='$color0'></span> <span fgcolor='$color1'></span> <span fgcolor='$color2'></span> </span> $schemetitle,conkyctl settheme_all $themefilename")
done
out2+=("^sep()")
out2+=(" $OPENTHEMEDIR,xdg-open ${COLORIZERDIR}/conky/themes/")
out2+=("^sep()")
out2+=("$APPLY_TO_ALL,^checkout(applytoall)")
if [[ "$1" =~ "sysinfo_" ]]; then
out2+=("^sep($NEWTHEME)")
out2+=("$SAVENEWTHEME,conkyctl newcolorscheme ${1}")
fi
out+=("^sep()")
fi
out+=("$TRANSPARENT [ <b>$WINTRANS</b> ],^checkout(transsingle)")
# COLOR SCHEMES
#if [ "$WINTRANS" == false ];then
out+=("<span bgcolor='#282828'> <span fgcolor='#ebdbb2'></span> <span fgcolor='#98971a'></span> <span fgcolor='#d79921'></span> <span fgcolor='#cc241d'></span> </span> $COLORSCHEME,^checkout(regensingle)")
out2+=("^tag(regensingle)")
out2+=("^sep($MONOCHROMATIC)")
out2+=("^sep(<i>$CHOOSE_AND_PICK</i>)")
out2+=("<big></big> $DARKBG...,conkyctl monoone pick dark ${1}")
out2+=("<big></big> $LIGHTBG...,conkyctl monoone pick light ${1}")
out2+=("^sep($GENFROMWP)")
out2+=("<big><span bgcolor='${w[-1]}' fgcolor='${w[0]}'> $LIGHTBG <span fgcolor='${w[4]}'></span> <span fgcolor='${w[5]}'></span> </span></big>,w2theme conkyone light ${1}")
out2+=("<big><span bgcolor='${w[0]}' fgcolor='${w[-1]}'> $DARKBG <span fgcolor='${w[-4]}'></span> <span fgcolor='${w[-5]}'></span> </span></big>,w2theme conkyone dark ${1}")
out2+=("^sep($APPLY_THEME)")
out2+=("^sep($SYSTEM_SCHEMES)")
n=1
while IFS="|" read -r winclr clr clr0 clr1 clr2 wintrans outline shades bord stip scheme_name
do
((n=n+1))
[[ "$wintrans" = true ]] && bga=1 || bga=100
out2+=("<tt>$(printf '%-20s' "${scheme_name}")</tt><big><span bgcolor='$winclr' bgalpha='${bga}%'> <span fgcolor='${clr}'></span> <span fgcolor='${clr0}'></span> <span fgcolor='${clr1}'></span> <span fgcolor='${clr2}'></span> </span></big>,conkyctl applyscheme sys $n ${1}")
done < <(tail -n +2 "$SYSSCHEMES")
out2+=("^sep($YOUR_SCHEMES)")
if [[ "$1" =~ "sysinfo_" ]]; then
#currcolors="${WINCLR}|${CLR}|${CLR0}|${CLR1}|${CLR2}|"
cursettings="${WINCLR}|${CLR}|${CLR0}|${CLR1}|${CLR2}|${WINTRANS}|${OUTLINE}|${SHADES}|${BORD}|${STIP}|"
out2+=("<big></big> $SAVE_CURRSCHEME,conkyctl savescheme '${cursettings}'" "^sep()")
fi
n=1
while IFS="|" read -r winclr clr clr0 clr1 clr2 wintrans outline shades bord stip scheme_name
do
((n=n+1))
[[ "$wintrans" = true ]] && bga=1 || bga=100
out2+=("<tt>$(printf '%-20s' "${scheme_name}")</tt><big><span bgcolor='$winclr' bgalpha='${bga}%'> <span fgcolor='${clr}'></span> <span fgcolor='${clr0}'></span> <span fgcolor='${clr1}'></span> <span fgcolor='${clr2}'></span> </span></big>,conkyctl applyscheme usr $n ${1}")
#out2+=("<span bgcolor='$own_window_colour'> <span fgcolor='$default_color'></span> <span fgcolor='$color0'></span> <span fgcolor='$color1'></span> <span fgcolor='$color2'></span> </span> $schemetitle,conkyctl settheme $themefilename $1")
done < <(tail -n +2 "$USERSCHEMES")
out+=("^sep()")
#fi
if [[ "$WINCLR" != "#" ]];then
if [ "$WINTRANS" == false ];then
out+=("<small><span bgcolor='$WINCLR'> </span><span ${BG} fgcolor='$WINCLR'> AbCd </span></small> $BACKGROUND,^pipe(mbclr '$WINCLR' conkyctl win_bgcolor '${BACKGROUND}' '$me' ${1})")
out+=("^sep()")
else
out+=("<small><span bgcolor='$WINCLR'> transparent </span></small> $BACKGROUND,^pipe(mbclr '$WINCLR' conkyctl win_bgcolor '${BACKGROUND}' '$me' ${1})")
out+=("^sep()")
fi
fi
[[ "$WINTRANS" == false ]] && out+=("<big>󰄱</big> $TRANSPARENT,conkyctl transparent true ${1}") || out+=("<big>󰄲</big> $TRANSPARENT,conkyctl transparent false ${1}")
out+=("^sep()")
if [[ "$1" != *"logo_mbcolor"* ]]; then
@ -754,36 +816,51 @@ if [[ "$OLD_SYNTAX" = "true" ]];then
out+=("^sep()")
fi
out2+=("^tag(transsingle)")
out2+=("^sep($TRANSPARENT)")
out2+=("$YES,conkyctl transparent true ${1};$me")
out2+=("$NO,conkyctl transparent false ${1};$me")
if [[ "$1" != *"logo_mbcolor"* ]]; then
if [[ "$1" != *"quoter_mbcolor"* ]]; then
out+=("$FONTS [ <b>$FONT $FONTSIZE</b> ],^checkout(fontsingle)")
out2+=("^tag(fontsingle)")
out2+=("^sep($FONTS)")
out2+=("$SELECTFONT,mb-setfont conky_single ${1};$me")
out2+=("^sep()")
out2+=("<tt>++</tt> $INCREASE,conkyctl basefont_inc ${1};$me")
out2+=("<tt>--</tt> $DECREASE,conkyctl basefont_dec ${1};$me")
out+=("<big>󰛖</big> $FONTS [ <b><span font_family=\"${FONT}\">$FONT</span> $FONTSIZE</b> ],^checkout(fontsingle)")
out2+=("^tag(fontsingle)")
out2+=("^sep($FONTS)")
out2+=("<big>󰛖</big> $SELECTFONT [ <b><span font_family=\"${FONT}\">$FONT</span> $FONTSIZE</b> ],mb-setfont conky_single ${1};$me")
out2+=("^sep($FONTSIZE_LBL)")
out2+=("<big>󰧴</big> $INCREASE <b>$((FONTSIZE+1)) px</b>,conkyctl basefont_inc ${1};$me")
out2+=("<big>󰧳</big> $DECREASE <b>$((FONTSIZE-1)) px</b>,conkyctl basefont_dec ${1};$me")
out2+=("^sep()")
sizes=(14 13 12 11 10 9 8 7 6)
for i in "${sizes[@]}"
do
[[ "$FONTSIZE" == "$i" ]] && out2+=("<big>綠</big> <b>$i px</b>,conkyctl basefont_size ${1} $i;$me") || out2+=("<big>祿</big> $i px,conkyctl basefont_size ${1} $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
#notify-send.sh "Ile" "${#favfonts[@]}"
if [ "${#favfonts[@]}" -gt 0 ];then
out2+=("^sep($FONTFAMILY_LBL)")
for fon in "${favfonts[@]}";do
[[ "$FONT" == "$fon" ]] && out2+=("<big>綠</big> <span font_family=\"${fon}\">${fon}</span>,$me") || out2+=("<big>祿</big> <span font_family=\"${fon}\">${fon}</span>,conkyctl basefont_family ${1} \"${fon}\";$me")
done
fi
out2+=("^sep()")
out2+=("<small> $_EDIT_FAVFONTS</small>,geany ~/.config/mabox/fonts.list")
fi
out+=("$OLINE/$SHADOW [ <b>$SHADOWS</b> ],^checkout(outline2)")
out2+=("^tag(outline2)")
out2+=("^sep($DRAW $OLINE/$SHADOW?)")
out2+=("$NO,conkyctl shades no ${1};$me")
out2+=("^sep()")
out2+=("$DRAW $SHADOW,conkyctl shades shadow ${1};$me")
out2+=("$DRAW $OLINE,conkyctl shades outline ${1};$me")
[[ "$SHADOWS" == "shadow" ]] && out+=("<big>󰄲</big> $SHADOW,conkyctl shades no ${1};$me") || out+=("<big>󰄱</big> $SHADOW,conkyctl shades shadow ${1};$me")
[[ "$SHADOWS" == "outline" ]] && out+=("<big>󰄲</big> $OLINE,conkyctl shades no ${1};$me") || out+=("<big>󰄱</big> $OLINE,conkyctl shades outline ${1};$me")
out+=("^sep()")
fi
out+=("$BORDERS [ <b>$BORD $STIP</b> ],^checkout(bordersingle)")
[[ "$BORD" == false ]] && out+=("<big>󰄱</big> $BORDERS [ <b>$STIP</b> ],^checkout(bordersingle)") || out+=("<big>󰄲</big> $BORDERS [ <b>$STIP</b> ],^checkout(bordersingle)")
out2+=("^tag(bordersingle)")
out2+=("^sep($DRAW $BORDERS?)")
out2+=("$YES,conkyctl draw_borders true ${1};$me")
out2+=("$NO,conkyctl draw_borders false ${1};$me")
[[ "$BORD" == false ]] && out2+=("<big>祿</big> $YES,conkyctl draw_borders true ${1};$me") || out2+=("<big>綠</big> $YES,conkyctl draw_borders false ${1};$me")
[[ "$BORD" == false ]] && out2+=("<big>綠</big> $NO,conkyctl draw_borders true ${1};$me") || out2+=("<big>祿</big> $NO,conkyctl draw_borders false ${1};$me")
out2+=("^sep($STIPPLED_BORDERS ?)")
out2+=("0 ($SOLID_LINE),conkyctl stippled_borders 0 ${1};$me")
out2+=("^sep()")
@ -864,21 +941,21 @@ contextmenu () {
jgtools_padding=4
MENU_PADDING_TOP=${jgtools_padding:-0}
TABS="90"
TABS=140
jgmenu_icon_size=0
single "${CONKYCFG}" "s"
case "$LANG" in
pl*)EDIT_CUSTOMCOMMANDS=" Edytuj menu komend (lewy klik menu)";;
es*)EDIT_CUSTOMCOMMANDS=" Edit cmd menu (left clik menu)";;
*) EDIT_CUSTOMCOMMANDS=" Edit cmd menu (left clik menu)";;
pl*)EDIT_CUSTOMCOMMANDS=" Edytuj menu komend (lewy klik) dla ${name^}";;
es*)EDIT_CUSTOMCOMMANDS=" Edit cmd menu (left clik) for ${name^}";;
*) EDIT_CUSTOMCOMMANDS=" Edit cmd menu (left clik) for ${name^}";;
esac
out+=("^sep()")
out+=("<small>$EDIT_CUSTOMCOMMANDS</small>,touch ${CONKYDIR}/menuscripts/${name}.csv;sleep 1;xdg-open ${CONKYDIR}/menuscripts/${name}.csv")
out+=("<small>$EDIT_CUSTOMCOMMANDS</small>,conkyctl cmdmenu_edit ${name}")
out+=("^sep()")
out+=(" ⮜⮜⮜ Conky Manager (Colorizer),colorizer-conky -s")
out+=(" ${arrow_string_left} Conky Manager (Colorizer),colorizer-conky -s")
if [[ "$CONKYCFG" =~ "mount_points" ]]; then
out+=("^sep($MOUNTPOINTS)")
@ -893,38 +970,7 @@ contextmenu () {
mkconfigfile
#if [[ "$OLD_SYNTAX" != "true" ]];then
# echo "color_menu_bg_to=${WINCLR} 100" >> ${CONFIG_FILE}
# TXTCOLOR=$(pastel textcolor ${WINCLR}|pastel format hex)
# #notify-send.sh "TXTCOLOR" "${TXTCOLOR} ${menu_gradient_pos}"
# if [ "$TXTCOLOR" == "#ffffff" ];then #bg is dark
# TXTCOLOR_NORM="#cccccc"
# WINCLR=$(pastel lighten 0.03 ${WINCLR}|pastel format hex)
# echo "color_norm_fg=${TXTCOLOR_NORM} 100" >> ${CONFIG_FILE}
# echo "color_sel_fg=${TXTCOLOR} 100" >> ${CONFIG_FILE}
# echo "color_title_fg=${TXTCOLOR} 60" >> ${CONFIG_FILE}
# SELBG=$(pastel darken 0.1 ${WINCLR}|pastel format hex)
# echo "color_sel_bg=${SELBG} 80" >> ${CONFIG_FILE}
# echo "color_title_bg=${SELBG} 30" >> ${CONFIG_FILE}
# echo "color_title_border=${SELBG} 60" >> ${CONFIG_FILE}
# else #bg is light
# TXTCOLOR_NORM="#333333"
# echo "color_norm_fg=${TXTCOLOR_NORM} 100" >> ${CONFIG_FILE}
# echo "color_sel_fg=${TXTCOLOR} 100" >> ${CONFIG_FILE}
# echo "color_title_fg=${TXTCOLOR} 90" >> ${CONFIG_FILE}
# SELBG=$(pastel darken 0.1 ${WINCLR}|pastel format hex)
# echo "color_sel_bg=${SELBG} 80" >> ${CONFIG_FILE}
# echo "color_title_bg=${SELBG} 90" >> ${CONFIG_FILE}
# echo "color_title_border=${SELBG} 90" >> ${CONFIG_FILE}
# fi
# echo "color_menu_bg=${WINCLR} 90" >> ${CONFIG_FILE}
# echo "color_menu_border=${CLR} 60" >> ${CONFIG_FILE}
# echo "menu_border=1" >> ${CONFIG_FILE}
# echo "menu_radius=0" >> ${CONFIG_FILE}
# echo "color_sep_fg=${CLR} 10" >> ${CONFIG_FILE}
# echo "font=${FONT} 10" >> ${CONFIG_FILE}
#fi
cat <<EOF > ${MENU_ITEMS}
$(printf '%s\n' "${out[@]}")
$(printf '%s\n' "${out2[@]}")
@ -942,6 +988,12 @@ cmdmenu () {
eval $(xdotool getwindowgeometry --shell ${WINDOW})
hexid=$(wmctrl -lpG | grep ${X} |grep ${Y}|grep ${WIDTH}|grep ${HEIGHT} |cut -d' ' -f1)
CONKYCFG=$(xprop -id ${hexid}|grep WM_COMMAND|cut -d'"' -f6)
# Fix for nonsense Conky context menu when Left Click on Root is not binded to ToogleShowDesktop
if [ ! -f "$CONKYCFG" ]; then
exit 0
fi
filename=${CONKYCFG##*/}
name=${filename%%_mb*}
title=${name//_/ }
@ -955,13 +1007,24 @@ cmdmenu () {
if [ -f ${CONKYDIR}/menuscripts/${name}.csv ]; then
LINES=$(grep -Ev "^#|^$" ${CONKYDIR}/menuscripts/${name}.csv|wc -l)
#notify-send.sh "$LINES"
if [ ${LINES} != 0 ]; then
CUSTOMCOMMANDS=". ${CONKYDIR}/menuscripts/${name}.csv"
else
contextmenu
if [ ${LINES} == 0 ]; then
: # do nothing, was contextmenu
fi
if [ ${LINES} == 1 ]; then
# 1 line - execute command (one line menu make no sense)
while IFS=$'\r\n' read -r line
do
cmd=${line#*,}
label=${line%,*}
done <<< $(grep -v '^\s*$\|^#\|^\s*#' ${CONKYDIR}/menuscripts/${name}.csv)
#notify-send.sh "${label}" "${cmd[@]}"
${cmd[@]}
else
# more than 1 lines - show menu
CUSTOMCOMMANDS=". ${CONKYDIR}/menuscripts/${name}.csv"
fi
else
contextmenu
: # do nothing
fi
# otherwise build and show standalone menu with custom commands
@ -990,45 +1053,11 @@ cmdmenu () {
jgtools_padding=4
MENU_PADDING_TOP=${jgtools_padding:-0}
JGWIDTH=270
TABS="90"
TABS=140
jgmenu_icon_size=0
mkconfigfile
#echo "color_menu_bg_to=${WINCLR} 100" >> ${CONFIG_FILE}
#TXTCOLOR=$(pastel textcolor ${WINCLR}|pastel format hex)
#####notify-send.sh "TXTCOLOR" "${TXTCOLOR} ${menu_gradient_pos}"
#if [ "$TXTCOLOR" == "#ffffff" ];then #bg is dark
#TXTCOLOR_NORM="#cccccc"
#WINCLR=$(pastel lighten 0.03 ${WINCLR}|pastel format hex)
#echo "color_norm_fg=${TXTCOLOR_NORM} 100" >> ${CONFIG_FILE}
#echo "color_sel_fg=${TXTCOLOR} 100" >> ${CONFIG_FILE}
#echo "color_title_fg=${TXTCOLOR} 60" >> ${CONFIG_FILE}
#SELBG=$(pastel darken 0.1 ${WINCLR}|pastel format hex)
#echo "color_sel_bg=${SELBG} 80" >> ${CONFIG_FILE}
#echo "color_title_bg=${SELBG} 30" >> ${CONFIG_FILE}
#echo "color_title_border=${SELBG} 60" >> ${CONFIG_FILE}
#else #bg is light
#TXTCOLOR_NORM="#333333"
#echo "color_norm_fg=${TXTCOLOR_NORM} 100" >> ${CONFIG_FILE}
#echo "color_sel_fg=${TXTCOLOR} 100" >> ${CONFIG_FILE}
#echo "color_title_fg=${TXTCOLOR} 90" >> ${CONFIG_FILE}
#SELBG=$(pastel darken 0.1 ${WINCLR}|pastel format hex)
#echo "color_sel_bg=${SELBG} 80" >> ${CONFIG_FILE}
#echo "color_title_bg=${SELBG} 90" >> ${CONFIG_FILE}
#echo "color_title_border=${SELBG} 90" >> ${CONFIG_FILE}
#fi
#echo "color_menu_bg=${WINCLR} 90" >> ${CONFIG_FILE}
#echo "color_menu_border=${CLR} 60" >> ${CONFIG_FILE}
#echo "menu_border=1" >> ${CONFIG_FILE}
#echo "menu_radius=0" >> ${CONFIG_FILE}
#echo "color_sep_fg=${CLR} 10" >> ${CONFIG_FILE}
#echo "font=${FONT} 10" >> ${CONFIG_FILE}
#echo "sub_spacing=3" >> ${CONFIG_FILE}
#echo "menu_margin_x=3" >> ${CONFIG_FILE}
#echo "menu_margin_y=3" >> ${CONFIG_FILE}
#notify-send.sh "CFG" "$(cat $CONFIG_FILE)"
case "$LANG" in
pl*)
CUSTOM_COMMANDS_SEP="Własne polecenia"
@ -1049,6 +1078,26 @@ EOF
jgmenu --config-file=${CONFIG_FILE} --csv-file=${MENU_ITEMS} 2>/dev/null
}
cmdmenu_edit() {
if [[ -s "${CONKYDIR}/menuscripts/${1}.csv" ]];then
geany "${CONKYDIR}/menuscripts/${1}.csv"
else
cat <<EOF > "${CONKYDIR}/menuscripts/${1}.csv"
# Add your commands here
# Syntax is simple: Label,command
# examples:
#The Gimp,gimp
#Firefox,firefox --new-window https://maboxlinux.org
#Btop,terminator -T Btop -e btop
# If only one command is uncommented it will run, if more commands available menu will be shown
# to see how it works play with uncomenting examples above and clicking Conky
EOF
geany "${CONKYDIR}/menuscripts/${1}.csv"
fi
}
netdevice () {
CFGFILE="$HOME/.config/conky/Network_mbcolor.conkyrc"
@ -1096,145 +1145,72 @@ EOF
cat /tmp/xx00 > ${CFGFILE}
}
settheme () {
source "$COLORIZERDIR"/conky/themes/${1}
win_bgcolor ${own_window_colour} $2
default_color ${default_color} $2
color0 ${color0} $2
color1 ${color1} $2
color2 ${color2} $2
savescheme () {
case "$LANG" in
pl*)SAVE_AS="Nowy motyw Conky"
DESC="Zapisz obecnie ustawione kolory Conky jako nowy motyw..."
LABEL="Nazwa:"
NAME="nazwa";;
*) SAVE_AS="New Conky colorscheme"
DESC="Save current Conky colors as colorscheme..."
LABEL="Name:"
NAME="colorscheme-name";;
esac
# ask for scheme name
schemename=$(yad --center --width=300 --borders=20 --window-icon=mbcc --title "$SAVE_AS" --text="$DESC" --entry --entry-label="$LABEL" --entry-text="$NAME") || exit 1
echo "${1}${schemename}" >> "$HOME/.config/colorizer/conky/c_userschemes.csv"
}
delscheme() {
sed -i ${1}d "$HOME/.config/colorizer/conky/c_userschemes.csv"
}
settheme_all () {
source "$COLORIZERDIR"/conky/themes/${1}
win_bgcolor_all ${own_window_colour}
applyscheme () {
case "$1" in
sys) SCHEMEFILE="/usr/share/mabox-colorizer/colorschemes/conky.csv";;
usr) SCHEMEFILE="$HOME/.config/colorizer/conky/c_userschemes.csv";;
esac
while IFS="|" read -r own_window_colour default_color color0 color1 color2 wintrans outline shades bord stip scheme_name
do
win_bgcolor ${own_window_colour} ${3}
default_color ${default_color} ${3}
color0 ${color0} ${3}
color1 ${color1} ${3}
color2 ${color2} ${3}
transparent ${wintrans} ${3}
shadow="no"
[[ "$outline" == true ]] && shadow="outline"
[[ "$shades" == true ]] && shadow="shadow"
shades "$shadow" ${3}
stippled_borders ${stip} ${3}
draw_borders ${bord} ${3}
done < <(awk 'NR == n' n=$2 "$SCHEMEFILE")
}
applyscheme_all () {
case "$1" in
sys) SCHEMEFILE="/usr/share/mabox-colorizer/colorschemes/conky.csv";;
usr) SCHEMEFILE="$HOME/.config/colorizer/conky/c_userschemes.csv";;
esac
while IFS="|" read -r own_window_colour default_color color0 color1 color2 wintrans outline shades bord stip scheme_name
do
win_bgcolor_all ${own_window_colour}
default_color_all ${default_color}
color0_all ${color0}
color1_all ${color1}
color2_all ${color2}
transparent_all ${wintrans}
shadow="no"
[[ "$outline" == true ]] && shadow="outline"
[[ "$shades" == true ]] && shadow="shadow"
shades_all "$shadow"
stippled_borders_all ${stip}
draw_borders_all ${bord}
done < <(awk 'NR == n' n=$2 "$SCHEMEFILE")
}
savecolorscheme () {
# $1 - themename $2 - source conkyrc
#notify-send.sh "${1}" "${2}"
## get colors
read WINCLR <<< "$(grep own_window_colour ${2} | cut -d'=' -f2 | cut -d"'" -f2)"
[[ $WINCLR =~ ^#.* ]] && : || WINCLR="#${WINCLR}"
read CLR <<< "$(grep default_color ${2} | cut -d'=' -f2 | cut -d"'" -f2)"
[[ $CLR =~ ^#.* ]] && : || CLR="#${CLR}"
read CLR0 <<< "$(grep color0 ${2} | cut -d'=' -f2 | cut -d"'" -f2)"
[[ $CLR0 =~ ^#.* ]] && : || CLR0="#${CLR0}"
read CLR1 <<< "$(grep color1 ${2} | cut -d'=' -f2 | cut -d"'" -f2)"
[[ $CLR1 =~ ^#.* ]] && : || CLR1="#${CLR1}"
read CLR2 <<< "$(grep color2 ${2} | cut -d'=' -f2 | cut -d"'" -f2)"
[[ $CLR2 =~ ^#.* ]] && : || CLR2="#${CLR2}"
cat << EOF > "$CONKYTHEMEDIR/$1".colors
own_window_colour='${WINCLR}'
default_color='${CLR}'
color0='${CLR0}'
color1='${CLR1}'
color2='${CLR2}'
EOF
case "$LANG" in
pl*)
TITLE="Zapisano motyw ${themename}!"
DESC="Czy zastosować motyw <b>${themename}</b> do wszystkich Conky?\n"
NO="Nie, dzieki"
YES="Tak, zastosuj do wszystkich"
;;
es*)
TITLE="Colorscheme ${themename} saved!"
DESC="Do you want to apply <b>${themename}</b> color scheme to all Conky?\n"
NO="No,thanks"
YES="Yes, apply to all"
;;
*)
TITLE="Colorscheme ${themename} saved!"
DESC="Do you want to apply <b>${themename}</b> color scheme to all Conky?\n"
NO="No,thanks"
YES="Yes, apply to all"
;;
esac
cmd=(
yad --center --borders=20
--title="$TITLE"
--text="$DESC"
--button="$NO":1
--button="$YES":0
)
"${cmd[@]}"
exval=$?
case $exval in
1) :;;
0) settheme_all "${themename}.colors";;
252) :;;
esac
}
newcolorscheme () {
#notify-send.sh "NEW" "${1}"
case "$LANG" in
pl*)
SAVE_AS="Zapisz motyw jako..."
LABEL="Nazwa motywu kolorów:"
NAME="nazwa-motywu"
;;
*)
SAVE_AS="Save theme as..."
LABEL="Conky colorscheme name:"
NAME="colorscheme-name"
;;
*)
SAVE_AS="Save theme as..."
LABEL="Conky colorscheme name:"
NAME="colorscheme-name"
;;
esac
themename=$(yad --center --width=300 --title "$SAVE_AS" --entry --entry-label="$LABEL" --entry-text="$NAME") || exit 1
themename="${themename// /-}"
if [[ -f "$CONKYTHEMEDIR/${themename}.colors" ]]; then
# Themefile EXIST overwrite???
case "$LANG" in
pl*)
TITLE="Nadpisać?"
EXIST="Motyw <b>${themename}</b> już istnieje.\nNadpisać?"
CANCEL="Anuluj"
YES="Tak, nadpisz"
;;
es*)
TITLE="Overwrite?"
EXIST="Colorscheme <b>${themename}</b> exist.\nOverwrite?"
CANCEL="Cancel"
YES="Yes, overwrite"
;;
*)
TITLE="Overwrite?"
EXIST="Colorscheme <b>${themename}</b> exist.\nOverwrite?"
CANCEL="Cancel"
YES="Yes, overwrite"
;;
esac
cmd=(
yad --center --borders=20
--title="$TITLE"
--text="$EXIST"
--button="$CANCEL":1
--button="$YES ${themename}":0
)
"${cmd[@]}"
exval=$?
case $exval in
1) :;;
0) savecolorscheme "${themename}" "${1}";;
252) :;;
esac
else # New themefile, create
savecolorscheme "${themename}" "${1}"
fi
}
convert_from_old () {
# try to convert from old syntax to new by convert.lua script
#notify-send.sh "Convert func" "${1}"
@ -1243,6 +1219,121 @@ convert_from_old () {
sleep 1
startone ${1}
}
baseconky_info() {
#notify-send.sh -i mbcc "Important" "Baseconky info"
case "$LANG" in
pl*)
TITLE="Ważna informacja"
MSG="Podczas pracy nad nowymi schematami kolorów lub dostosowywaniem kolorów warto uruchomić Conky: Sysinfo - który jest bazowym Conky.\nJego kolory i inne zmienne są brane pod uwagę.\n\nUruchomić Sysinfo teraz?\n\n"
START="Tak, uruchom Sysinfo Conky"
NO="Nie"
;;
*)
TITLE="Important info"
MSG="When working on new color schemes or customizing colors, it's worth running Conky: Sysinfo - which is the base Conky. Its colors and other variables are taken into account by Colorizer.\n\nStart Sysinfo Conky now?\n\n"
START="Yes, start Sysinfo Conky"
NO="No"
;;
esac
cmd=(
yad --center --width=360 --borders=20 --window-icon=mbcc --image=colorizer
--title "${TITLE}"
--text="${MSG}"
--button="${START}:1"
--button="${NO}:0"
)
"${cmd[@]}"
exval=$?
#notify-send.sh -t 10000 "Exval" "${exval}"
case $exval in
1) startone "$HOME/.config/conky/sysinfo_mbcolor.conkyrc";;
0) : ;;
252): ;;
esac
colorizer-conky -s
}
mono () {
lighten=(0.92 0.8 0.65 0.45 0.28)
darken=(0.9 0.74 0.54 0.38 0.18)
if [ "${1}" == pick ];then
color=$(gpick -pso 2>/dev/null)
else
color="${1}"
fi
if [ "${#color}" == 7 ];then
for i in "${lighten[@]}"
do
pal+=("$(pastel mix -f $i "#ffffff" "$color"|pastel format hex)")
done
pal+=("$color")
for i in "${darken[@]}"
do
pal+=("$(pastel mix -f $i "$color" "#000000"|pastel format hex)")
done
else
exit 0
fi
#colorize Conky
if [ "$2" == "dark" ];then
win_bgcolor_all "${pal[10]}"
default_color_all "${pal[0]}"
color0_all "${pal[3]}"
color1_all "${pal[4]}"
color2_all "${pal[5]}"
else # light
win_bgcolor_all "${pal[4]}"
default_color_all "${pal[9]}"
color0_all "${pal[7]}"
color1_all "${pal[8]}"
color2_all "${pal[1]}"
fi
colorizer-conky -s 2>/dev/null
}
monoone () {
lighten=(0.92 0.8 0.65 0.45 0.28)
darken=(0.9 0.74 0.54 0.38 0.18)
if [ "${1}" == pick ];then
color=$(gpick -pso 2>/dev/null)
else
color="${1}"
fi
if [ "${#color}" == 7 ];then
for i in "${lighten[@]}"
do
pal+=("$(pastel mix -f $i "#ffffff" "$color"|pastel format hex)")
done
pal+=("$color")
for i in "${darken[@]}"
do
pal+=("$(pastel mix -f $i "$color" "#000000"|pastel format hex)")
done
else
exit 0
fi
# colorize one Conky
if [ "$2" == "dark" ];then
win_bgcolor "${pal[10]}" "${3}"
default_color "${pal[0]}" "${3}"
color0 "${pal[3]}" "${3}"
color1 "${pal[4]}" "${3}"
color2 "${pal[5]}" "${3}"
else # light
win_bgcolor "${pal[4]}" "${3}"
default_color "${pal[9]}" "${3}"
color0 "${pal[7]}" "${3}"
color1 "${pal[8]}" "${3}"
color2 "${pal[1]}" "${3}"
fi
}
case "$1" in
transparent_all) transparent_all "$2";;
@ -1265,6 +1356,10 @@ case "$1" in
basefont_dec_all) basefont_dec_all;;
basefont_inc) basefont_inc "$2";;
basefont_dec) basefont_dec "$2";;
basefont_family) basefont_family "$2" "$3";;
basefont_family_all) basefont_family_all "$2";;
basefont_size) basefont_size "$2" "$3";;
basefont_size_all) basefont_size_all "$2";;
setfont_all) setfont_all;;
serfont) setfont;;
shades_all) shades_all "$2";;
@ -1278,17 +1373,23 @@ case "$1" in
startone) startone "$2";;
startall) startall;;
kill) kill "$2";;
toggleone) toggleone "$2";;
restartone) restartone "$2";;
contextmenu) contextmenu;;
cmdmenu) cmdmenu;;
cmdmenu_edit) cmdmenu_edit "$2";;
makemoveableall) makemoveableall;;
saveposall) saveposall;;
resetcolorsall) resetcolorsall ;;
resetcolorsone) resetcolorsone "$2";;
settheme) settheme "$2" "$3";;
settheme_all) settheme_all "$2";;
newcolorscheme) newcolorscheme "$2";;
savescheme) savescheme "$2";;
delscheme) delscheme "$2";;
applyscheme) applyscheme "$2" "$3" "$4";;
applyscheme_all) applyscheme_all "$2" "$3";;
netdevice) netdevice ;;
convert_from_old) convert_from_old "$2";;
baseconky_info) baseconky_info;;
mono) mono "$2" "$3";;
monoone) monoone "$2" "$3" "$4";;
*) : ;;
esac

View File

@ -1,7 +1,7 @@
#!/bin/bash
getdata () {
df -h | grep -v "boot" | grep '^/dev' | while read DEVICE SIZE USED FREE PERCENT MOUNT
df -h | grep -v "boot" | grep -v "/dev/loop" | grep '^/dev' | while read DEVICE SIZE USED FREE PERCENT MOUNT
do
[[ "${#MOUNT}" -gt "10" ]] && MOUNTLBL=${MOUNT##*/} || MOUNTLBL=${MOUNT}
[[ "${#MOUNTLBL}" -gt "10" ]] && MOUNTLBL=${MOUNTLBL:0:9}

146
bin/fontctl 100755
View File

@ -0,0 +1,146 @@
#!/bin/bash
# fontctl - cli to handle fonts in Mabox: openbox, jgmenu, tint2, conky, gtk
CONKYDIR="$HOME"/.config/conky
BASECONKY="$CONKYDIR/sysinfo_mbcolor.conkyrc"
. $HOME/.config/mabox/mabox.conf
get_gtkfont() {
GTK2RC="$HOME"/.gtkrc-2.0
GTK3RC="$HOME"/.config/gtk-3.0/settings.ini
GTK_FONT=( $(grep "gtk-font-name" ${GTK2RC} | cut -d'"' -f2) )
GTK_FAMILY=${GTK_FONT[@]::${#GTK_FONT[@]}-1}
GTK_SIZE=${GTK_FONT[-1]}
}
gtk_fontfamily() {
get_gtkfont
sd "^gtk-font-name=.*" "gtk-font-name=\"${1} ${GTK_SIZE}\"" ${GTK2RC}
sd "^gtk-font-name=.*" "gtk-font-name=${1} ${GTK_SIZE}" ${GTK3RC}
reload-gtk
}
gtk_fontsize() {
get_gtkfont
case "$1" in
inc) SIZE=$((GTK_SIZE+1));;
dec) SIZE=$((GTK_SIZE-1));;
*) SIZE=${1};;
esac
sd "^gtk-font-name=.*" "gtk-font-name=\"${GTK_FAMILY} ${SIZE}\"" ${GTK2RC}
sd "^gtk-font-name=.*" "gtk-font-name=${GTK_FAMILY} ${SIZE}" ${GTK3RC}
reload-gtk
}
resetgtk() {
get_gtkfont
sd "^gtk-font-name=.*" "gtk-font-name=\"Ubuntu 10\"" ${GTK2RC}
sd "^gtk-font-name=.*" "gtk-font-name=Ubuntu 10" ${GTK3RC}
reload-gtk
}
resetob () {
nspace="http://openbox.org/3.4/rc"
cfg="$HOME/.config/openbox/rc.xml"
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:name' -v "Ubuntu" "$cfg"
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="InactiveWindow"]/a:name' -v "Ubuntu" "$cfg"
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:size' -v 9 "$cfg"
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="InactiveWindow"]/a:size' -v 9 "$cfg"
#add Weight and slant
openbox --reconfigure
}
resetmenus () {
mb-setvar menu_font_size=10
mb-setvar menu_sep_font_size=11
mb-setvar "menu_font_family=\'Ubuntu\'"
mb-setvar "menu_sep_font_family=\'Ubuntu Bold\'"
}
resetconky () {
sd "font .*=.*,$" "font = 'Ubuntu:size=8'," ${CONKYDIR}/*mbcolor.conkyrc
}
resetall () {
resetconky
resetob
resetmenus
resetgtk
}
inc_all() {
gtk_fontsize inc
inc_conky
inc_menus
}
dec_all() {
gtk_fontsize dec
dec_conky
dec_menus
}
inc_conky () {
read FONTDEF <<< "$(grep "font .*=.*,$" ${BASECONKY} | cut -d'=' -f2,3 |cut -d"'" -f2)"
FONT=${FONTDEF%:*}
FONTSIZE=${FONTDEF#*=}
((FONTSIZE++))
sd "font .*=.*,$" "font = '${FONT}:size=${FONTSIZE}'," ${CONKYDIR}/*mbcolor.conkyrc
}
dec_conky () {
read FONTDEF <<< "$(grep "font .*=.*,$" ${BASECONKY} | cut -d'=' -f2,3 |cut -d"'" -f2)"
FONT=${FONTDEF%:*}
FONTSIZE=${FONTDEF#*=}
((FONTSIZE--))
sd "font .*=.*,$" "font = '${FONT}:size=${FONTSIZE}'," ${CONKYDIR}/*mbcolor.conkyrc
}
inc_menus () {
mb-setvar menu_font_size=$((menu_font_size+1))
mb-setvar menu_sep_font_size=$((menu_sep_font_size+1))
}
dec_menus () {
mb-setvar menu_font_size=$((menu_font_size-1))
mb-setvar menu_sep_font_size=$((menu_sep_font_size-1))
}
ob_fontsize () {
nspace="http://openbox.org/3.4/rc"
cfg="$HOME/.config/openbox/rc.xml"
case "$1" in
inc|increase)
SIZE=$(xmlstarlet sel -N a="$nspace" -t -v '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:size' "$cfg")
if [ "$SIZE" -lt "21" ];then
((SIZE=SIZE+1))
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:size' -v "$SIZE" "$cfg"
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="InactiveWindow"]/a:size' -v "$SIZE" "$cfg"
fi
;;
dec|decrease)
SIZE=$(xmlstarlet sel -N a="$nspace" -t -v '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:size' "$cfg")
if [ "$SIZE" -gt "7" ];then
((SIZE=SIZE-1))
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:size' -v "$SIZE" "$cfg"
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="InactiveWindow"]/a:size' -v "$SIZE" "$cfg"
fi
;;
*)
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:size' -v "$1" "$cfg"
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="InactiveWindow"]/a:size' -v "$1" "$cfg"
;;
esac
openbox --reconfigure
}
case "$1" in
gtk_fontfamily) gtk_fontfamily "$2";;
gtk_fontsize) gtk_fontsize "$2";;
inc_all) inc_all;;
dec_all) dec_all;;
inc_conky) inc_conky;;
dec_conky) dec_conky;;
inc_menus) inc_menus;;
dec_menus) dec_menus;;
ob_fontsize) ob_fontsize "$2";; # arg: size, inc or dec
resetall) resetall;;
resetob) resetob;;
resetmenus) resetmenus;;
resetconky) resetconky;;
resetgtk) resetgtk;;
*):;;
esac

119
bin/gtkcolors.py 100755
View File

@ -0,0 +1,119 @@
#!/usr/bin/env python3
"""
Based on labwc-gtktheme.py:
Create labwc theme based on the current Gtk theme
SPDX-License-Identifier: GPL-2.0-only
Copyright (C) @Misko_2083 2019
Copyright (C) Johan Malm 2019-2022
"""
import os
import errno
from tokenize import tokenize, NUMBER, NAME, OP
from io import BytesIO
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
def parse(tokens):
"""
Parse css color expression token list and return red/green/blue values
Valid name-tokens include 'rgb' and 'rgba', whereas 'alpha', 'shade' and
'mix' are ignored. @other-color references are still to be implemented.
"""
nr_colors_to_parse = 0
in_label = False
color = []
for toknum, tokval, _, _, _ in tokens:
if '@' in tokval:
in_label = True
continue
if toknum == NAME and in_label:
color.clear()
color.append(f"@{tokval}")
return color
if nr_colors_to_parse > 0:
if toknum == OP and tokval in ')':
print("warn: still parsing numbers; did not expect ')'")
if toknum == NUMBER:
color.append(tokval)
nr_colors_to_parse -= 1
continue
if toknum == NAME and tokval in 'rgb':
nr_colors_to_parse = 3
elif toknum == NAME and tokval in 'rgba':
nr_colors_to_parse = 4
return color
def color_hex(color):
""" return rrggbb color hex from list [r, g, b,...] """
if not color:
return "None"
elif len(color) < 3:
return f"{color[0]}"
return '{:02x}{:02x}{:02x}'.format(*(int(x) for x in color[:3]))
def hex_from_expr(line):
""" parse color expression to return hex style rrggbb """
tokens = tokenize(BytesIO(line.encode('utf-8')).readline)
color = parse(tokens)
return color_hex(color)
def parse_section(lines, name):
theme = {}
inside = False
for line in lines:
if f"{name} {{" in line:
inside = True
continue
if inside:
if "}" in line or "{" in line:
inside = False
break
if 'color' not in line:
continue
key, value = line.strip().split(":", maxsplit=1)
theme[f'{name}.{key.replace(" ", "")}'] = hex_from_expr(value)
return theme
def resolve_labels(theme):
for key, label in theme.items():
if '@' in label:
for tmp, value in theme.items():
if tmp == label[1:]:
theme[key] = value
return resolve_labels(theme)
return theme
def main():
""" main """
gset = Gtk.Settings.get_default()
themename = gset.get_property("gtk-theme-name")
css = Gtk.CssProvider.get_named(themename).to_string()
lines = css.split("\n")
theme = {}
# Parse @define-color lines using syntax "@define-color <key> <value>"
for line in lines:
if "@define-color" not in line:
continue
x = line.split(" ", maxsplit=2)
theme[x[1]] = hex_from_expr(x[2])
# Add the color definitions in the headerbar{} and menu{} sections
theme |= parse_section(lines, "headerbar")
theme |= parse_section(lines, "menu")
theme = resolve_labels(theme)
for key, value in theme.items():
print(f"{key}: {value}")
return
if __name__ == '__main__':
main()

251
bin/jgctl
View File

@ -24,6 +24,7 @@ reset () {
}
resetMBcolors() {
mb-setvar jgmenu_theme=MBcolors
mb-setvar item_height_factor=200
reset
case "$1" in
show)
@ -73,32 +74,50 @@ gradient () {
read MBGT MBGTA<<< "$(grep 'color_menu_bg_to ' ${THEMERC} | cut -d'=' -f2)"
sd "color_menu_bg .*$" "color_menu_bg = $1 $MBGA" ${THEMERC}
sd "color_menu_bg_to.*$" "color_menu_bg_to = $2 $MBGTA" ${THEMERC}
# Item
ITEM_FG=$(pastel textcolor ${2}|pastel format hex)
read NFG NFGA<<< "$(grep 'color_norm_fg' ${THEMERC} | cut -d'=' -f2)"
sd "color_norm_fg.*$" "color_norm_fg = $ITEM_FG $NFGA" ${THEMERC}
# Title
read TBG TBGA<<< "$(grep 'color_title_bg' ${THEMERC} | cut -d'=' -f2)"
sd "color_title_bg.*$" "color_title_bg = $1 $TBGA" ${THEMERC}
# calculate readable FG color
TITLE_FG=$(pastel textcolor ${1}|pastel format hex)
read TFG TFGA<<< "$(grep 'color_title_fg' ${THEMERC} | cut -d'=' -f2)"
if [[ "${TITLE_FG}" == *"ffffff"* ]];then
TITLE_FGCOLOR=$(pastel mix -f 0.6 '#ffffff' "${2}"|pastel format hex)
if [[ "${ITEM_FG}" == *"ffffff"* ]];then
ITEM_FGCOLOR="#c0c0c0"
else
TITLE_FGCOLOR=$(pastel mix -f 0.6 '#000000' "${2}"|pastel format hex)
ITEM_FGCOLOR="#222222"
fi
read NFG NFGA<<< "$(grep 'color_norm_fg' ${THEMERC} | cut -d'=' -f2)"
sd "color_norm_fg.*$" "color_norm_fg = $ITEM_FGCOLOR $NFGA" ${THEMERC}
read NBG NBGA<<< "$(grep 'color_norm_bg' ${THEMERC} | cut -d'=' -f2)"
sd "color_norm_bg.*$" "color_norm_bg = $2 $NBGA" ${THEMERC}
# Title (Separator with text)
read TBG TBGA<<< "$(grep 'color_title_bg' ${THEMERC} | cut -d'=' -f2)"
sd "color_title_bg.*$" "color_title_bg = $2 $TBGA" ${THEMERC}
# calculate readable FG color
TITLE_FG=$(pastel textcolor ${2}|pastel format hex)
read TFG TFGA<<< "$(grep 'color_title_fg' ${THEMERC} | cut -d'=' -f2)"
###TITLE_FGCOLOR=$(pastel complement ${2}|pastel format hex)
if [[ "${TITLE_FG}" == *"ffffff"* ]];then
TITLE_FGCOLOR=$(pastel mix -f 0.7 '#ffffff' "${2}"|pastel format hex)
else
TITLE_FGCOLOR=$(pastel mix -f 0.7 '#000000' "${2}"|pastel format hex)
fi
sd "color_title_fg.*$" "color_title_fg = ${TITLE_FGCOLOR} $TFGA" ${THEMERC}
###sd "color_title_fg.*$" "color_title_fg = ${1} $TFGA" ${THEMERC}
read TBORDER TBORDERA<<< "$(grep 'color_title_border' ${THEMERC} | cut -d'=' -f2)"
TITLE_BORDER=$(pastel darken 0.05 ${1}|pastel format hex)
sd "color_title_border.*$" "color_title_border = $TITLE_BORDER $TBORDERA" ${THEMERC}
# Active item
# Selected (Active) item
read SBG SBGA<<< "$(grep 'color_sel_bg' ${THEMERC} | cut -d'=' -f2)"
alpha=${SBGA:-100}
sd "color_sel_bg.*$" "color_sel_bg = $2 $alpha" ${THEMERC}
ACTIVE_FG=$(pastel textcolor ${2}|pastel format hex)
read SFG SFGA<<< "$(grep 'color_sel_fg' ${THEMERC} | cut -d'=' -f2)"
sd "color_sel_fg.*$" "color_sel_fg = $ACTIVE_FG $SFGA" ${THEMERC}
# Sep
read SBORDER SBORDERA<<< "$(grep 'color_sel_border' ${THEMERC} | cut -d'=' -f2)"
alpha=${SBORDERA:-100}
sd "color_sel_border.*$" "color_sel_border = $1 $alpha" ${THEMERC}
# Separator line
read SFG SFGA<<< "$(grep 'color_sep_fg' ${THEMERC} | cut -d'=' -f2)"
SEP_FG=$(pastel mix -f 0.5 "${1}" "${2}"|pastel format hex)
sd "color_sep_fg.*$" "color_sep_fg = $SEP_FG $SFGA" ${THEMERC}
@ -215,7 +234,201 @@ color_sel_border () {
sd "color_sel_border.*$" "color_sel_border = $SBORDER $1" ${THEMERC}
;;
esac
#read IBOR<<< "$(grep 'item_border' ${THEMERC} | cut -d'=' -f2)"
#[[ ${IBOR} == "0" ]] && item_border 1
}
accent () {
color_sel_bg "${1}"
color_sel_fg "${2}"
color_sel_border "${2}"
}
tweak () {
case "$1" in
solid)
menu_gradient_pos none
tweak opacity 100
opacity color_norm_bg 0
opacity color_sep_fg 30
item_radius 0
item_border 0
;;
gradient)
menu_gradient_pos right
opacity color_norm_bg 10
opacity color_sep_fg 0
item_radius 3
item_border 0
;;
opacity)
opacity color_menu_bg "$2"
opacity color_menu_bg_to "$2"
;;
sizing)
case "$2" in
tight)
mb-setvar jgtools_padding=4
mb-setvar jgtools_border=0
mb-setvar submenu_spacing=2
mb-setvar arrow_string=
;;
normal)
mb-setvar jgtools_padding=8
mb-setvar jgtools_border=3
mb-setvar submenu_spacing=3
mb-setvar arrow_string=
;;
wide)
mb-setvar jgtools_padding=20
mb-setvar jgtools_border=6
mb-setvar submenu_spacing=6
mb-setvar arrow_string=
;;
esac
;;
*):;;
esac
[[ "$3" == "menu" ]] && colorizer-menus -s 2>/dev/null
}
t_search_field () {
[[ $search_field == "false" ]] && mb-setvar search_field=true || mb-setvar search_field=false
mb-jgtools main ipc
}
t_apps_in_submenu () {
[[ $apps_in_submenu == "true" ]] && mb-setvar apps_in_submenu=false || mb-setvar apps_in_submenu=true
mb-jgtools main ipc
}
t_icons () {
[[ $jgmenu_use_icons == "true" ]] && mb-setvar jgmenu_use_icons=false || mb-setvar jgmenu_use_icons=true
mb-jgtools main ipc
}
border () {
[[ "$jgtools_padding" -lt "${1}" ]] && mb-setvar jgtools_padding=${1}
mb-setvar jgtools_border=${1}
colorizer-menus -s
}
padding () {
[[ "$jgtools_border" -gt "${1}" ]] && mb-setvar jgtools_border=${1}
mb-setvar jgtools_padding=${1}
colorizer-menus -s
}
opacity () {
# jgctl opacity element value
read FUNC B COLOR OPACITY REST<<< "$(grep ${1} ${THEMERC})"
#echo "$FUNC $B $COLOR $OPACITY $REST"
sd "$1 .*= $COLOR.*$" "$FUNC = $COLOR $2 $REST" ${THEMERC}
}
savescheme () {
case "$LANG" in
pl*)SAVE_AS="Nowy motyw Menu"
DESC="Zapisz obecnie ustawione kolory Menu jako nowy motyw..."
LABEL="Nazwa:"
NAME="nazwa";;
*) SAVE_AS="New Menu colorscheme"
DESC="Save current Menu colors as colorscheme..."
LABEL="Name:"
NAME="colorscheme-name";;
esac
# ask for scheme name
schemename=$(yad --center --width=300 --borders=20 --window-icon=mbcc --title "$SAVE_AS" --text="$DESC" --entry --entry-label="$LABEL" --entry-text="$NAME") || exit 1
echo "${1}${schemename}" >> "$HOME/.config/colorizer/menus/userschemes.csv"
}
applyscheme () {
theme MBcolors
line=$(awk 'NR == n' n=$1 "$HOME/.config/colorizer/menus/userschemes.csv")
#notify-send.sh "$1" "${line}"
case "$1" in
sys) SCHEMEFILE="/usr/share/mabox-colorizer/colorschemes/menus.csv";;
usr) SCHEMEFILE="$HOME/.config/colorizer/menus/userschemes.csv";;
esac
while IFS="|" read -r mbg mbgt mborder tbg tfg tborder normbg nfg sbg sfg sborder sepfg grad scheme_name
do
mb-setvar jgmenu_theme=MBcolors
color_menu_bg "${mbg}"
color_menu_bg_to "${mbgt}"
color_menu_border "${mborder}"
color_title_bg "${tbg}"
color_title_fg "${tfg}"
color_title_border "${tborder}"
color_norm_bg "${normbg}"
color_norm_fg "${nfg}"
color_sel_bg "${sbg}"
color_sel_fg "${sfg}"
color_sel_border "${sborder}"
color_sep_fg "${sepfg}"
menu_gradient_pos "${grad}"
item_border 0
color_title_bg 100
color_menu_bg 100
color_menu_bg_to 100
color_norm_bg 0
#notify-send.sh "${scheme_name}" "${mbg}"
done < <(awk 'NR == n' n=$2 "$SCHEMEFILE")
}
delscheme() {
sed -i ${1}d "$HOME/.config/colorizer/menus/userschemes.csv"
}
mono () {
lighten=(0.92 0.8 0.65 0.45 0.28)
darken=(0.9 0.74 0.54 0.38 0.18)
if [ "${1}" == pick ];then
color=$(gpick -pso 2>/dev/null)
else
color="${1}"
fi
if [ "${#color}" == 7 ];then
for i in "${lighten[@]}"
do
pal+=("$(pastel mix -f $i "#ffffff" "$color"|pastel format hex)")
done
pal+=("$color")
for i in "${darken[@]}"
do
pal+=("$(pastel mix -f $i "$color" "#000000"|pastel format hex)")
done
else
exit 0
fi
# colorize menu
if [ "$2" == "dark" ];then
#notify-send.sh "$1" "gen_menu"
color_menu_bg "${pal[8]}"
color_menu_bg_to "${pal[7]}"
color_menu_border "${pal[10]}"
color_title_bg "${pal[9]}"
color_title_border "${pal[9]}"
color_title_fg "${pal[2]}"
color_norm_fg "${pal[3]}"
color_sel_bg "${pal[6]}"
color_sel_fg "${pal[1]}"
color_sep_fg "${pal[6]}"
else #light
color_menu_bg "${pal[2]}"
color_menu_bg_to "${pal[3]}"
color_menu_border "${pal[1]}"
color_title_bg "${pal[3]}"
color_title_border "${pal[4]}"
color_title_fg "${pal[10]}"
color_norm_fg "${pal[8]}"
color_sel_bg "${pal[4]}"
color_sel_fg "${pal[10]}"
color_sep_fg "${pal[3]}"
fi
colorizer-menus -s 2>/dev/null
}
case "$1" in
theme) theme "$2";;
reset) reset ;;
@ -237,5 +450,17 @@ case "$1" in
color_sel_bg) color_sel_bg "$2";;
color_sel_fg) color_sel_fg "$2";;
color_sel_border) color_sel_border "$2";;
accent) accent "$2" "$3";;
tweak) tweak "$2" "$3" "$4";;
opacity) opacity "$2" "$3";;
t_search_field)t_search_field;;
t_apps_in_submenu) t_apps_in_submenu;;
t_icons)t_icons;;
border)border "$2";;
padding)padding "$2";;
mono) mono "$2" "$3";;
savescheme) savescheme "$2";;
applyscheme) applyscheme "$2" "$3";;
delscheme) delscheme "$2";;
*) : ;;
esac

225
bin/mbclr
View File

@ -1,65 +1,87 @@
#!/bin/bash
#
# colorizer - set of tools for Mabox (auto)theming
# Copyright (C) 2022-2023 Daniel Napora <napcok@gmail.com>
#
# 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/>.
# mbclr current polecenie funkcja argument backprg [config_file]
# mbclr
#notify-send.sh "mbclr" "${1}\n${2}\n${3}\n${4}\n${5}\n${6}"
case "$LANG" in
pl*)
SELECT_COLOR="Wybierz kolor"
PICK_FROM_SCREEN="Pobierz kolor z ekranu"
SELECT_OR_PICK="Wybierz kolor z selektora"
OPACITY="Nieprzezroczystość"
SHADES_OF_CURRENT="odcienie bieżącego"
SHADES_OF="odcienie"
WALLPAPER_COLORS="Kolory z tapety"
SHADES_OF_CURRENT="Oblicz z bieżącego"
SHADES_OF="Odcienie"
LIGHTEN_DARKEN="Jaśniejsze / Ciemniejsze"
SATURATION="Nasycenie..."
ROTATE_HSL_HUE="Obróć kanał barwy HSL..."
CHANGE_COLOR="Zmień na..."
CURRENT="obecny kolor"
WALLPAPER_COLORS="...kolory z tapety"
GTKCOLORS="Kolory motywu GTK"
ACCENT_COLORS="Popularne kolory akcentu"
LIGHTCOLORS="Jasne kolory..."
DARKCOLORS="Ciemne kolory..."
GRAYS="Odcienie szarości"
;;
*)
SELECT_COLOR="Select color"
PICK_FROM_SCREEN="Pick color from screen"
SELECT_OR_PICK="Select or pick from screen"
OPACITY="Opacity"
SHADES_OF_CURRENT="shades of current"
SHADES_OF="shades of"
WALLPAPER_COLORS="Wallpaper colors"
SHADES_OF_CURRENT="Calculate from"
SHADES_OF="Shades of"
LIGHTEN_DARKEN="Lighten / Darken"
SATURATION="Saturation..."
ROTATE_HSL_HUE="Rotate HSL hue channel..."
CHANGE_COLOR="Change to..."
CURRENT="current color"
WALLPAPER_COLORS="...wallpaper colors"
GTKCOLORS="GTK theme colors"
ACCENT_COLORS="Popular accent colors"
LIGHTCOLORS="Light colors..."
DARKCOLORS="Dark colors..."
;;
GRAYS="Shades of Gray"
;;
esac
ccol_ind="<span bgcolor='${1}'> </span>"
gtkthemename=$(grep gtk-theme ~/.config/gtk-3.0/settings.ini |cut -d'=' -f2)
main () {
#read WALLPAPER<<< $(grep file "$HOME"/.config/nitrogen/bg-saved.cfg | cut -d'=' -f2)
WALLPALDIR="$HOME/.config/colormenu/palettes/wallp"
WALLPALDIR="$HOME/.cache/colorizer/palettes"
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"
NAME=${WALLPATH////_}
if [[ "${NAME}" =~ ^_home_.* ]]; then
n=${#HOME}
((n++))
NAME=${NAME:${n}}
fi
mapfile -t wallcolors < "$WALLPALDIR/$WALLPAPER.clr"
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 wallcolors < "$WALLPALDIR/$NAME.clr"
if [[ "${#wallcolors[@]}" -lt 8 ]]; then
wallcolors+=("#2e3440" "#4c566a" "#5e81ac" "#bf616b" "#b48ead" "#a3be8c" "#ebcb8b" "#d8dee9" "#eceff4")
fi
dark=("#000000" "#111111" "#222222" "#333333" "#444444" "#555555" "#666666")
light=("#FFFFFF" "#EEEEEE" "#DDDDDD" "#CCCCCC" "#BBBBBB" "#AAAAAA" "#999999")
#yt=("#181818" "#212121" "#3d3d3d" "#FFFFFF" "#AAAAAA")
plasma=("#e93a9a" "#e93d58" "#e9643a" "#e8cb2d" "#3dd425" "#00d3b8" "#3daee9" "#b875dc" "#926ee4" "#686b6f")
#ubuntu
ubuntu=("#E95420" "#18b0b0" "#3584e4" "#0e8420" "#c748ba" "#77216f" "#c7162b" "#f4a100")
#linuxmint
mint+=("#6cabcd" "#5b73c4" "#aa876a" "#9d9d9d" "#db9d61" "#c76199" "#8c6ec9" "#c15b58" "#c8ac69" "#5aaa9a")
#w8+=("#a4c400" "#60a917" "#008a00" "#00aba9" "#1ba1e2" "#3e65ff" "#0050ef" "#6a00ff" "#aa00ff" "#f472d0" "#d80073" "#a20025" "#e51400" "#fa6800" "#f0a30a" "#e3c800" "#825a2c" "#6d8764" "#647687" "#76608a" "#87794e" "#a0522d")
#for i in $(theme.sh -p |cut -d':' -f2)
#do
#colors+=("$i")
#done
grays=("#000000" "#0d0d0d" "#1b1b1b" "#282828" "#363636" "#434343" "#515151" "#5e5e5e" "#6b6b6b" "#797979" "#868686" "#949494" "#a1a1a1" "#aeaeae" "#bcbcbc" "#c9c9c9" "#d7d7d7" "#e4e4e4" "#f2f2f2" "#FFFFFF")
accents=("#e93d57" "#c7162b" "#e9633a" "#e95620" "#f4a300" "#e8cc2d" "#3cd425" "#0e8420" "#00d3b7" "#18b0b0" "#3dade9" "#686b6f" "#3584e4" "#916ee4" "#b875dc" "#77216e" "#c748ba" "#e93a9a")
out+=("^sep($4)")
if [[ "$2" == "jgctl" ]]; then
@ -91,68 +113,135 @@ out2+=("<tt><small> 10</small> <span bgcolor='$1' bgalpha='10%'> </span>
out2+=("<tt><small> 5</small> <span bgcolor='$1' bgalpha='5%'> </span><span bgcolor='$1'> </span></tt>,jgctl $3 5 ;${5}")
out2+=("<tt><small> 0</small> <span bgcolor='$1' bgalpha='1%'> </span><span bgcolor='$1'> </span></tt>,jgctl $3 0 ;${5}")
fi
if [[ "$2" == "t2ctl" ]]; then
T2RC="$HOME/.config/tint2/jaskier_mb.tint2rc"
read COLOR OP<<< $(grep "${3}" ${T2RC} | cut -d'=' -f2)
out+=("^sep($OPACITY)")
out+=("$OPACITY <small>[ <b>$OP</b> ]</small>,^checkout(opacity)")
out2+=("^tag(opacity)")
out2+=("^sep($OPACITY <small>[ $OP ]</small>")
out2+=("<tt><small>100</small> <span bgcolor='$1' bgalpha='100%'> </span><span bgcolor='$1'> </span></tt>,t2ctl $3 100;${5}")
out2+=("<tt><small> 95</small> <span bgcolor='$1' bgalpha='95%'> </span><span bgcolor='$1'> </span></tt>,t2ctl $3 95 ;${5}")
out2+=("<tt><small> 90</small> <span bgcolor='$1' bgalpha='90%'> </span><span bgcolor='$1'> </span></tt>,t2ctl $3 90 ;${5}")
out2+=("<tt><small> 80</small> <span bgcolor='$1' bgalpha='80%'> </span><span bgcolor='$1'> </span></tt>,t2ctl $3 80 ;${5}")
out2+=("<tt><small> 70</small> <span bgcolor='$1' bgalpha='70%'> </span><span bgcolor='$1'> </span></tt>,t2ctl $3 70 ;${5}")
out2+=("<tt><small> 60</small> <span bgcolor='$1' bgalpha='60%'> </span><span bgcolor='$1'> </span></tt>,t2ctl $3 60 ;${5}")
out2+=("<tt><small> 50</small> <span bgcolor='$1' bgalpha='50%'> </span><span bgcolor='$1'> </span></tt>,t2ctl $3 50 ;${5}")
out2+=("<tt><small> 40</small> <span bgcolor='$1' bgalpha='40%'> </span><span bgcolor='$1'> </span></tt>,t2ctl $3 40 ;${5}")
out2+=("<tt><small> 30</small> <span bgcolor='$1' bgalpha='30%'> </span><span bgcolor='$1'> </span></tt>,t2ctl $3 30 ;${5}")
out2+=("<tt><small> 20</small> <span bgcolor='$1' bgalpha='20%'> </span><span bgcolor='$1'> </span></tt>,t2ctl $3 20 ;${5}")
out2+=("<tt><small> 10</small> <span bgcolor='$1' bgalpha='10%'> </span><span bgcolor='$1'> </span></tt>,t2ctl $3 10 ;${5}")
out2+=("<tt><small> 5</small> <span bgcolor='$1' bgalpha='5%'> </span><span bgcolor='$1'> </span></tt>,t2ctl $3 5 ;${5}")
out2+=("<tt><small> 0</small> <span bgcolor='$1' bgalpha='1%'> </span><span bgcolor='$1'> </span></tt>,t2ctl $3 0 ;${5}")
fi
CUR_FG=$(pastel textcolor $1|pastel format hex)
out+=("^sep($SHADES_OF_CURRENT <tt><span bgcolor='$1' fgcolor='$CUR_FG'>$1</span></tt>)")
out+=("$LIGHTEN_DARKEN,^checkout(curshades)")
out+=("$SATURATION,^checkout(saturate)")
out+=("<big>󰑧</big> $ROTATE_HSL_HUE,^checkout(rotate_hsl)")
#out+=("$SHADES_OF_CURRENT <tt><span bgcolor='$1'> </span></tt> (<small>$1</small>),^checkout(curshades)")
out+=("^sep($CHANGE_COLOR)")
#Current
out+=("^sep($SELECT_COLOR)")
out+=(" $PICK_FROM_SCREEN,mbclr pixelcolor $2 $3 ${5} ${6}")
out+=(" $SELECT_OR_PICK,mbclr pick $2 $3 ${5} ${6}")
out+=("<big></big> $PICK_FROM_SCREEN,mbclr pixelcolor $2 $3 ${5} ${6}")
out+=("<big></big> $SELECT_OR_PICK,mbclr pick $2 $3 ${5} ${6}")
out+=("^sep()")
out+=("<tt><span bgcolor='$1'> </span></tt> $SHADES_OF_CURRENT (<small>$1</small>),^checkout(curshades)")
out+=("<big><span bgcolor='#e93d57'> </span> <span bgcolor='#f4a300'> </span> <span bgcolor='#3cd425'> </span> <span bgcolor='#3584e4'> </span> <span bgcolor='#e93a9a'> </span></big> $ACCENT_COLORS,^checkout(accents)")
out2+=("^tag(accents)")
out2+=("^sep($ACCENT_COLORS)")
for i in ${accents[@]};do out2+=("<tt><small>$i</small> <span bgcolor='$i'> </span>${ccol_ind}</tt>,$2 $3 '${i}' ${6};${5}");done
out+=("^sep()")
mapfile -t gtkcolors < <( gtkcolors.py 2>/dev/null| grep -v None|awk '{print "#"$2}'|sort|uniq)
if [ "${#gtkcolors[@]}" -gt 0 ];then
out+=("$GTKCOLORS,^checkout(gtkcols)")
out2+=("^tag(gtkcols)")
out2+=("^sep($GTKCOLORS)")
out2+=("^sep($gtkthemename)")
for i in ${gtkcolors[@]};do out2+=("<tt><small>$i</small> <span bgcolor='$i'> </span>${ccol_ind}</tt>,$2 $3 '${i}' ${6};${5}");done
out+=("^sep()")
fi
out+=("$GRAYS,^checkout(grayscol)")
out2+=("^tag(grayscol)")
out2+=("^sep($GRAYS)")
for i in "${grays[@]}"
do
out2+=("<tt><small>$i</small> <span bgcolor='$i'> </span>${ccol_ind}</tt>,$2 $3 '${i}' ${6};${5}")
done
out+=("^sep($WALLPAPER_COLORS)")
for i in "${wallcolors[@]}"
do
out+=("<tt><small>$i</small> <span bgcolor='$i'> </span></tt>,$2 $3 '${i}' ${6};${5}")
out+=("<tt><small>$i</small> <span bgcolor='$i'> </span>${ccol_ind}</tt>,$2 $3 '${i}' ${6};${5}")
done
out+=("^sep()")
out+=("$ACCENT_COLORS,^checkout(accents)")
out2+=("^tag(accents)")
out2+=("^sep(Ubuntu)")
for i in ${ubuntu[@]};do out2+=("<tt><small>$i</small> <span bgcolor='$i'> </span></tt>,$2 $3 '${i}' ${6};${5}");done
out2+=("^sep(Mint)")
for i in ${mint[@]};do out2+=("<tt><small>$i</small> <span bgcolor='$i'> </span></tt>,$2 $3 '${i}' ${6};${5}");done
out2+=("^sep(Plasma)")
for i in ${plasma[@]};do out2+=("<tt><small>$i</small> <span bgcolor='$i'> </span></tt>,$2 $3 '${i}' ${6};${5}");done
out+=("^sep()")
out+=("<tt><span bgcolor='#DDDDDD'> </span></tt> $LIGHTCOLORS,^checkout(light)")
out2+=("^tag(light)")
out2+=("^sep($LIGHTCOLORS)")
for i in "${light[@]}"
do
out2+=("<tt><small>$i</small> <span bgcolor='$i'> </span></tt>,$2 $3 '${i}' ${6};${5}")
done
out+=("^sep()")
out+=("<tt><span bgcolor='#222222'> </span></tt> $DARKCOLORS,^checkout(dark)")
out2+=("^tag(dark)")
out2+=("^sep($DARKCOLORS)")
for i in "${dark[@]}"
do
out2+=("<tt><small>$i</small> <span bgcolor='$i'> </span></tt>,$2 $3 '${i}' ${6};${5}")
done
#Shades
# Shades
out2+=("^tag(curshades)")
out2+=("^sep($SHADES_OF $1)")
for i in 3 25 2 15 1 05; do
clr=$(pastel lighten 0.$i "${1}" | pastel format hex)
if [ "${clr}" != "#ffffff" ];then
out2+=("<tt><small>$clr</small> <span bgcolor='$clr'> </span></tt>,$2 $3 '${clr}' ${6};${5}")
out2+=("<tt><small>$clr</small> <span bgcolor='$clr'> </span>${ccol_ind}</tt>,$2 $3 '${clr}' ${6};${5}")
fi
done
out2+=("^sep()")
out2+=("<tt><small>$1</small> <span bgcolor='$1'> </span></tt>,$2 $3 '${1}' ${6};${5}")
out2+=("<tt><span bgcolor='$1' fgcolor='$CUR_FG'> <small>$CURRENT $1</small> </span></tt>,$2 $3 '${1}' ${6};${5}")
out2+=("^sep()")
for i in 05 1 15 2 25 3; do
clr=$(pastel darken 0.$i "${1}" | pastel format hex)
if [ "${clr}" != "#000000" ];then
out2+=("<tt><small>$clr</small> <span bgcolor='$clr'> </span></tt>,$2 $3 '${clr}' ${6};${5}")
out2+=("<tt><small>$clr</small> <span bgcolor='$clr'> </span>${ccol_ind}</tt>,$2 $3 '${clr}' ${6};${5}")
fi
done
# Shades ENG
# SATURATION
out2+=("^tag(saturate)")
out2+=("^sep($SATURATION)")
for i in 9 8 7 6 5 4 3 2 1; do
clr=$(pastel desaturate 0.$i "${1}" | pastel format hex)
if [ "${clr}" != "${oldclr}" ];then
out2+=("<tt><small>$clr</small> <span bgcolor='$clr'> </span>${ccol_ind}</tt>,$2 $3 '${clr}' ${6};${5}")
oldclr=${clr}
fi
done
out2+=("^sep()")
out2+=("<tt><span bgcolor='$1' fgcolor='$CUR_FG'> <small>$CURRENT $1</small> </span></tt>,$2 $3 '${1}' ${6};${5}")
out2+=("^sep()")
for i in 1 2 3 4 5 6 7 8 9; do
clr=$(pastel saturate 0.$i "${1}" | pastel format hex)
if [ "${clr}" != "${oldclr}" ];then
out2+=("<tt><small>$clr</small> <span bgcolor='$clr'> </span>${ccol_ind}</tt>,$2 $3 '${clr}' ${6};${5}")
oldclr=${clr}
fi
done
# SATURATION END
# ROTATE HSL
out2+=("^tag(rotate_hsl)")
out2+=("^sep($ROTATE_HSL_HUE)")
for i in {135..15..15};do
clr=$(pastel rotate -- -$i "${1}" |pastel format hex)
out2+=("<tt><small>$clr</small> <span bgcolor='$clr'> </span>${ccol_ind} <small>-$i°</small></tt>,$2 $3 '${clr}' ${6};${5}")
done
out2+=("^sep()")
out2+=("<tt><span bgcolor='$1' fgcolor='$CUR_FG'> <small>$CURRENT $1</small> </span></tt>,$2 $3 '${1}' ${6};${5}")
out2+=("^sep()")
for i in {15..135..15};do
clr=$(pastel rotate $i "${1}" |pastel format hex)
out2+=("<tt><small>$clr</small> <span bgcolor='$clr'> </span>${ccol_ind} <small>$i°</small></tt>,$2 $3 '${clr}' ${6};${5}")
done
# ROTATE HSL END
printf '%s\n' "${out[@]}"
printf '%s\n' "${out2[@]}"

View File

@ -16,6 +16,11 @@ case "$1" in
COMMAND="jgctl gradient"
me="colorizer-menus -s"
;;
cava)
CACHEFILE="$HOME"/.config/colorizer/grad_cava.csv
COMMAND="cavactl gradient"
me="colorizer-cava -s"
;;
*)
CACHEFILE="$HOME"/.config/colorizer/grad_root.csv
COMMAND="w2theme gradient"

View File

@ -6,6 +6,17 @@ OBTHEME=$(awk '/<theme>/ {while (getline n) {if (match(n, /<name>/))
THEMEDIR="$HOME/.themes/$OBTHEME/openbox-3"
THEMERC="$HOME/.themes/$OBTHEME/openbox-3/themerc"
#if [[ $OBTHEME = MBcolor* ]];then
#switch to MBcolors theme
# THEMEDIR="$HOME/.themes/$OBTHEME/openbox-3"
# THEMERC="$HOME/.themes/$OBTHEME/openbox-3/themerc"
# else
# xmlstarlet ed -L -N o="http://openbox.org/3.4/rc" -u '/o:openbox_config/o:theme/o:name' -v "MBcolors" "$HOME/.config/openbox/rc.xml"
# THEMEDIR="$HOME/.themes/MBcolors/openbox-3"
# THEMERC="$HOME/.themes/MBcolors/openbox-3/themerc"
#fi
MBCOLORSDIR="$HOME"/.themes/MBcolors/openbox-3/
if [ ! -d "$MBCOLORSDIR" ]; then
mkdir -p ${MBCOLORSDIR}
@ -62,7 +73,7 @@ borderWidth () {
sd "^border.width:.*$" "border.width: ${BWIDTH}" ${THEMERC}
fi
;;
0|1|2|3|4|5|6|7|8)
*)
sd "^border.width:.*$" "border.width: $1" ${THEMERC}
;;
esac
@ -89,7 +100,7 @@ paddingHeight () {
sd "^padding.width:.*$" "padding.width: ${PHEIGHT}" ${THEMERC}
fi
;;
0|1|2|3|4|6|8|10|12|16|20)
0|1|2|3|4|5|6|8|10|12|16|20)
sd "^padding.height:.*$" "padding.height: $1" ${THEMERC}
sd "^padding.width:.*$" "padding.width: $1" ${THEMERC}
;;
@ -168,20 +179,65 @@ random_gradient () {
activegradient "$CLR" "$CLRTO"
}
activegradient () {
#notify-send.sh "zmiennne obtctl" "${1} ${2}"
# ACTIVE
# ACTIVE GRIP and HANDLE
colorTo=$(pastel darken 0.1 "${1}"|pastel format hex)
#activehandle?
###read ABG <<< "$(grep .active.title.bg.color: ${THEMERC} | cut -d':' -f2)"
###read AHBG <<< "$(grep .active.handle.bg.color: ${THEMERC} | cut -d':' -f2)"
###if [ "$ABG" == "$AHBG" ];then
###fi
sd "\.active.grip.bg.color:.*$" ".active.grip.bg.color: ${1}" ${THEMERC}
sd "\.active.grip.bg.colorTo:.*$" ".active.grip.bg.colorTo: ${colorTo}" ${THEMERC}
sd "^window.active.title.bg.color:.*$" "window.active.title.bg.color: ${1}" ${THEMERC}
sd "\.active.border.color:.*$" ".active.border.color: ${1}" ${THEMERC}
sd "^window.active.title.bg.colorTo:.*$" "window.active.title.bg.colorTo: ${colorTo}" ${THEMERC}
#sd "\.active.handle.bg.color:.*$" ".active.handle.bg.color: ${1}" ${THEMERC}
sd "^window.active.title.bg.color:.*$" "window.active.title.bg.color: ${1}" ${THEMERC}
sd "^window.active.title.bg.colorTo:.*$" "window.active.title.bg.colorTo: ${2}" ${THEMERC}
# Border color = active.title.bg.color (gradient start color)
sd "\.active.border.color:.*$" ".active.border.color: $1" ${THEMERC}
#### INACTIVE
icolor=$(pastel mix -s RGB -f 0.3 ${1} '#000000' |pastel format hex)
icolorTo=$(pastel mix -s RGB -f 0.3 ${2} '#000000' |pastel format hex)
sd "^window.inactive.title.bg.color:.*$" "window.inactive.title.bg.color: ${icolor}" ${THEMERC}
sd "^window.inactive.title.bg.colorTo:.*$" "window.inactive.title.bg.colorTo: ${icolorTo}" ${THEMERC}
# Border color = active.title.bg.color (gradient start color)
sd "\.inactive.border.color:.*$" ".inactive.border.color: ${icolor}" ${THEMERC}
## INACTIVE GRIP and HANDLE
#normalhandle?
###read IBG <<< "$(grep .inactive.title.bg.color: ${THEMERC} | cut -d':' -f2)"
###read IHBG <<< "$(grep .inactive.handle.bg.color: ${THEMERC} | cut -d':' -f2)"
###if [ "$IBG" == "$IHBG" ];then
sd "\.inactive.handle.bg.color:.*$" ".inactive.handle.bg.color: ${icolor}" ${THEMERC}
sd "\.inactive.handle.bg.colorTo:.*$" ".inactive.handle.bg.colorTo: ${icolorTo}" ${THEMERC}
###fi
sd "\.inactive.grip.bg.color:.*$" ".inactive.grip.bg.color: ${icolor}" ${THEMERC}
sd "\.inactive.grip.bg.colorTo:.*$" ".inactive.grip.bg.colorTo: ${icolorTo}" ${THEMERC}
sd "^window.inactive.title.bg.color:.*$" "window.inactive.title.bg.color: ${icolor}" ${THEMERC}
sd "\.inactive.border.color:.*$" ".inactive.border.color: ${icolor}" ${THEMERC}
sd "^window.inactive.title.bg.colorTo:.*$" "window.inactive.title.bg.colorTo: ${icolorTo}" ${THEMERC}
## Active handle always have inactive colors
sd "\.active.handle.bg.color:.*$" ".active.handle.bg.color: ${icolor}" ${THEMERC}
sd "\.active.handle.bg.colorTo:.*$" ".active.handle.bg.colorTo: ${icolorTo}" ${THEMERC}
# calculate color for title.fg and buttons
TITLE_FG=$(pastel textcolor ${2}|pastel format hex)
if [[ "${TITLE_FG}" == *"ffffff"* ]];then
TITLE_FG="#EEEEEE"
TITLE_FG="#E5E5E5"
else
TITLE_FG="#111111"
TITLE_FG="#222222"
fi
sd "\.active.label.text.color:.*$" ".active.label.text.color: ${TITLE_FG}" ${THEMERC}
@ -190,16 +246,53 @@ activegradient () {
# Shadow
read SHADOW <<< "$(grep .active.label.text.font: ${THEMERC} | cut -d':' -f2| cut -d'=' -f2)"
if [ "$SHADOW" == "y" ];then
if [ "$TITLE_FG" == "#EEEEEE" ];then
if [ "$TITLE_FG" == "#E5E5E5" ];then
shadow dark
else
shadow light
fi
fi
}
activegradient_reverse () {
gradient () {
sd "^window.active.title.bg.color:.*$" "window.active.title.bg.color: ${1}" ${THEMERC}
sd "^window.active.title.bg.colorTo:.*$" "window.active.title.bg.colorTo: ${2}" ${THEMERC}
# Border color = active.title.bg.color (gradient start color)
sd "\.active.border.color:.*$" ".active.border.color: $1" ${THEMERC}
#### INACTIVE
icolor=$(pastel darken 0.5 ${1}|pastel format hex)
icolorTo=$(pastel darken 0.5 ${2}|pastel format hex)
sd "^window.inactive.title.bg.color:.*$" "window.inactive.title.bg.color: ${icolor}" ${THEMERC}
sd "^window.inactive.title.bg.colorTo:.*$" "window.inactive.title.bg.colorTo: ${icolorTo}" ${THEMERC}
# Border color = active.title.bg.color (gradient start color)
sd "\.inactive.border.color:.*$" ".inactive.border.color: ${icolor}" ${THEMERC}
# calculate color for title.fg and buttons
TITLE_FG=$(pastel textcolor ${2}|pastel format hex)
if [[ "${TITLE_FG}" == *"ffffff"* ]];then
TITLE_FG="#E5E5E5"
else
TITLE_FG="#222222"
fi
sd "\.active.label.text.color:.*$" ".active.label.text.color: ${TITLE_FG}" ${THEMERC}
# Button colors
activebuttonscolors "${TITLE_FG}"
# Shadow
read SHADOW <<< "$(grep .active.label.text.font: ${THEMERC} | cut -d':' -f2| cut -d'=' -f2)"
if [ "$SHADOW" == "y" ];then
if [ "$TITLE_FG" == "#E5E5E5" ];then
shadow dark
else
shadow light
fi
fi
}
gradient_reverse () {
:
}
activehandle () {
@ -243,9 +336,9 @@ clractivebg_only () {
# calculate color for title.fg and buttons
TITLE_FG=$(pastel textcolor ${1}|pastel format hex)
if [[ "${TITLE_FG}" == *"ffffff"* ]];then
TITLE_FG="#EEEEEE"
TITLE_FG="#E5E5E5"
else
TITLE_FG="#111111"
TITLE_FG="#222222"
fi
sd "\.active.label.text.color:.*$" ".active.label.text.color: ${TITLE_FG}" ${THEMERC}
@ -277,9 +370,9 @@ clractivebg () {
# calculate color for title.fg and buttons
TITLE_FG=$(pastel textcolor ${colorTo}|pastel format hex)
if [[ "${TITLE_FG}" == *"ffffff"* ]];then
TITLE_FG="#EEEEEE"
TITLE_FG="#E5E5E5"
else
TITLE_FG="#111111"
TITLE_FG="#222222"
fi
sd "\.active.label.text.color:.*$" ".active.label.text.color: ${TITLE_FG}" ${THEMERC}
@ -294,39 +387,33 @@ clrnormalbg_only () {
clrnormalbg () {
colorTo=$(pastel darken 0.1 "${1}"|pastel format hex)
#normalhandle?
read IBG <<< "$(grep .inactive.title.bg.color: ${THEMERC} | cut -d':' -f2)"
read IHBG <<< "$(grep .inactive.handle.bg.color: ${THEMERC} | cut -d':' -f2)"
if [ "$IBG" == "$IHBG" ];then
sd "\.inactive.handle.bg.color:.*$" ".inactive.handle.bg.color: ${1}" ${THEMERC}
sd "\.inactive.handle.bg.colorTo:.*$" ".inactive.handle.bg.colorTo: ${colorTo}" ${THEMERC}
fi
###sd "\.inactive.handle.bg.color:.*$" ".inactive.handle.bg.color: ${1}" ${THEMERC}
###sd "\.inactive.handle.bg.colorTo:.*$" ".inactive.handle.bg.colorTo: ${colorTo}" ${THEMERC}
sd "\.handle.bg.color:.*$" ".handle.bg.color: ${1}" ${THEMERC}
sd "\.handle.bg.colorTo:.*$" ".handle.bg.colorTo: ${colorTo}" ${THEMERC}
sd "\.inactive.grip.bg.color:.*$" ".inactive.grip.bg.color: ${1}" ${THEMERC}
sd "\.inactive.grip.bg.colorTo:.*$" ".inactive.grip.bg.colorTo: ${colorTo}" ${THEMERC}
sd "^window.inactive.title.bg.color:.*$" "window.inactive.title.bg.color: ${1}" ${THEMERC}
sd "\.inactive.border.color:.*$" ".inactive.border.color: ${1}" ${THEMERC}
sd "^window.inactive.title.bg.colorTo:.*$" "window.inactive.title.bg.colorTo: ${colorTo}" ${THEMERC}
sd "\.inactive.border.color:.*$" ".inactive.border.color: ${1}" ${THEMERC}
}
clractivebgto () {
sd "^window.active.title.bg.colorTo:.*$" "window.active.title.bg.colorTo: ${1}" ${THEMERC}
#activehandle?
read ABG <<< "$(grep .active.title.bg.color: ${THEMERC} | cut -d':' -f2)"
read AHBG <<< "$(grep .active.handle.bg.color: ${THEMERC} | cut -d':' -f2)"
if [ "$ABG" == "$AHBG" ];then
###read ABG <<< "$(grep .active.title.bg.color: ${THEMERC} | cut -d':' -f2)"
###read AHBG <<< "$(grep .active.handle.bg.color: ${THEMERC} | cut -d':' -f2)"
###if [ "$ABG" == "$AHBG" ];then
sd "\.active.handle.bg.colorTo:.*$" ".active.handle.bg.colorTo: ${1}" ${THEMERC}
fi
###fi
sd "\.active.grip.bg.colorTo:.*$" ".active.grip.bg.colorTo: ${1}" ${THEMERC}
}
clrnormalbgto () {
sd "^window.inactive.title.bg.colorTo:.*$" "window.inactive.title.bg.colorTo: ${1}" ${THEMERC}
#normalhandle?
read IBG <<< "$(grep .inactive.title.bg.color: ${THEMERC} | cut -d':' -f2)"
read IHBG <<< "$(grep .inactive.handle.bg.color: ${THEMERC} | cut -d':' -f2)"
if [ "$IBG" == "$IHBG" ];then
sd "\.inactive.handle.bg.colorTo:.*$" ".inactive.handle.bg.colorTo: ${1}" ${THEMERC}
fi
sd "\.inactive.grip.bg.colorTo:.*$" ".inactive.grip.bg.colorTo: ${1}" ${THEMERC}
}
activetextcolor () {
@ -339,14 +426,47 @@ inactivetextcolor () {
buttons () {
rm $THEMEDIR/*.xbm
cp -a /usr/share/mabox-colorizer/themes/obbuttons/${1}/*.xbm $THEMEDIR/
#save buttons name to file
echo "${1}" > $THEMEDIR/.buttons
#if buttons big check font size also
case "$1" in
big-12)
nspace="http://openbox.org/3.4/rc"
cfg="$HOME/.config/openbox/rc.xml"
SIZE=$(xmlstarlet sel -N a="$nspace" -t -v '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:size' "$cfg")
if [ "$SIZE" -lt "12" ]; then
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:size' -v "12" "$cfg"
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="InactiveWindow"]/a:size' -v "12" "$cfg"
fi
;;
big-14)
nspace="http://openbox.org/3.4/rc"
cfg="$HOME/.config/openbox/rc.xml"
SIZE=$(xmlstarlet sel -N a="$nspace" -t -v '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:size' "$cfg")
if [ "$SIZE" -lt "14" ]; then
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:size' -v "14" "$cfg"
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="InactiveWindow"]/a:size' -v "14" "$cfg"
fi
;;
*) : ;;
esac
}
ndslimc() {
xmlstarlet ed -L -N o="http://openbox.org/3.4/rc" -u '/o:openbox_config/o:theme/o:titleLayout' -v "$1" "$HOME/.config/openbox/rc.xml"
}
activebuttonscolors () {
sd "^window.active.button.*.unpressed.image.color:.*$" "window.active.button.*.unpressed.image.color: ${1}" ${THEMERC}
# Calculate colors for other button states (mix of ${1} and clractivebg
read ABG <<< "$(grep .active.title.bg.color: ${THEMERC} | cut -d':' -f2)"
hover=$(pastel mix -f 0.2 "${1}" "${ABG}"|pastel format hex)
#read ABG <<< "$(grep .active.title.bg.color: ${THEMERC} | cut -d':' -f2)"
#hover=$(pastel mix -f 0.2 "${1}" "${ABG}"|pastel format hex)
#pressed=$()
#disabled=$()
if [[ "${1}" == *"E5E5E5"* ]];then
hover="#FFFFFF"
else
hover="#000000"
fi
#notify-send.sh "${1}" "${hover}"
sd "^window.active.button.*.hover.image.color:.*$" "window.active.button.*.hover.image.color: ${hover}" ${THEMERC}
}
fontfamily () {
@ -360,7 +480,7 @@ fontsize () {
nspace="http://openbox.org/3.4/rc"
cfg="$HOME/.config/openbox/rc.xml"
case "$1" in
increase)
inc|increase)
SIZE=$(xmlstarlet sel -N a="$nspace" -t -v '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:size' "$cfg")
if [ "$SIZE" -lt "21" ];then
((SIZE=SIZE+1))
@ -368,7 +488,7 @@ fontsize () {
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="InactiveWindow"]/a:size' -v "$SIZE" "$cfg"
fi
;;
decrease)
dec|decrease)
SIZE=$(xmlstarlet sel -N a="$nspace" -t -v '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:size' "$cfg")
if [ "$SIZE" -gt "7" ];then
((SIZE=SIZE-1))
@ -385,11 +505,15 @@ fontsize () {
fontweight () {
nspace="http://openbox.org/3.4/rc"
cfg="$HOME/.config/openbox/rc.xml"
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:weight' -v "${1}" "$cfg"
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="InactiveWindow"]/a:weight' -v "${1}" "$cfg"
}
fontweight_inactive () {
nspace="http://openbox.org/3.4/rc"
cfg="$HOME/.config/openbox/rc.xml"
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="InactiveWindow"]/a:weight' -v "${1}" "$cfg"
}
fontweighttoggle (){
nspace="http://openbox.org/3.4/rc"
cfg="$HOME/.config/openbox/rc.xml"
@ -403,10 +527,15 @@ fontweighttoggle (){
fontslant (){
nspace="http://openbox.org/3.4/rc"
cfg="$HOME/.config/openbox/rc.xml"
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:slant' -v "${1}" "$cfg"
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="InactiveWindow"]/a:slant' -v "${1}" "$cfg"
}
fontslant_inactive (){
nspace="http://openbox.org/3.4/rc"
cfg="$HOME/.config/openbox/rc.xml"
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="InactiveWindow"]/a:slant' -v "${1}" "$cfg"
}
fontslanttoggle (){
nspace="http://openbox.org/3.4/rc"
cfg="$HOME/.config/openbox/rc.xml"
@ -419,16 +548,18 @@ fontslanttoggle (){
}
randomizer () {
# TODO: - maybe put all options to cnf file and let users cistomize oprions???
# TODO: - maybe put all options to cnf file and let users customize options???
### ensure we use MBColors at the moment
theme MBcolors
### SHADOW (here, because we must know if is set later when title font color is calculated)
SHADOWS=(no dark light)
rand=$((RANDOM%3))
SHADOW="${SHADOWS[$rand]}"
### Maybe better is not to change shadow? for now
#SHADOWS=(no dark light)
#rand=$((RANDOM%3))
#SHADOW="${SHADOWS[$rand]}"
obtctl shadow "${SHADOW}"
#shadow "${SHADOW}"
shadow no
### RANDOM GRADIENT COLORS
GRADIENT_FILE="$HOME"/.config/colorizer/gradients_all.inc
@ -440,40 +571,40 @@ randomizer () {
activegradient "$CLR" "$CLRTO"
### rand gradient type
TYPES=(solid vertical horizontal mirrorhorizontal splitvertical)
rand=$((RANDOM%5))
TYPES=(solid vertical horizontal mirrorhorizontal diagonal mirrorhorizontal)
rand=$((RANDOM%6))
G_TYPE="${TYPES[$rand]}"
gradient_type "${G_TYPE}"
#rand
### Random border
BORDERS=(0 1 2 4)
rand=$((RANDOM%4))
BORDERS=(0 0 1 2 4 6)
rand=$((RANDOM%5))
BORDER="${BORDERS[$rand]}"
borderWidth "${BORDER}"
HANDLES=(0 0 2 4)
rand=$((RANDOM%4))
HANDLE="${HANDLES[$rand]}"
handlewidth "${HANDLE}"
### Random padding
PADDINGS=(2 4 8 12 16)
PADDINGS=(2 4 8 12)
rand=$((RANDOM%4))
PADDING="${PADDINGS[$rand]}"
paddingHeight "${PADDING}"
### TITLEBAR STYLE
STYLES=(flat raised sunken)
rand=$((RANDOM%3))
STYLES=(flat raised raised sunken)
rand=$((RANDOM%4))
STYLE="${STYLES[$rand]}"
raised "${STYLE}"
### Buttons
BUTTONS=(tiny normal bold dots)
rand=$((RANDOM%4))
BUTTON="${BUTTONS[$rand]}"
buttons "${BUTTON}"
### TEXT ALIGN
ALIGNS=(left center right)
rand=$((RANDOM%3))
@ -482,7 +613,7 @@ randomizer () {
textjustify "${ALIGN}"
### FONT FAMILY
FAMILIES=(Ubuntu Sans Serif "Roboto Condensed" "GE Inspira")
FAMILIES=(Ubuntu "Noto Sans" "Roboto Condensed" "GE Inspira" "JetBrains Mono")
rand=$((RANDOM%5))
FAMILY="${FAMILIES[$rand]}"
@ -511,6 +642,20 @@ randomizer () {
fontsize "${FONTSIZE}"
### Buttons
BUTTONS=(tiny normal bold dots big-12 big-14)
rand=$((RANDOM%6))
BUTTON="${BUTTONS[$rand]}"
buttons "${BUTTON}"
### Buttons layout
LAYOUTS=(NDSLIMC NDSLIMC NLIMC LIMC)
rand=$((RANDOM%4))
LAYOUT="${LAYOUTS[$rand]}"
ndslimc "${LAYOUT}"
#MSG="
#Openbox Window Decoration settings
@ -528,7 +673,156 @@ randomizer () {
#Font: <b>${FAMILY} ${WEIGHT} ${SLANT} ${FONTSIZE}</b>
#"
# notify-send.sh -R /tmp/randomizer_notify -t 10000 -i mbcc "Mabox Colorizer" "${MSG}" \
-o "Regenerate:randomizer ob" -o "Customize:colorizer-ob -s"
# -o "Regenerate:randomizer ob" -o "Customize:colorizer-ob -s"
}
tweak() {
case "$1" in
large)
fontsize 14
paddingHeight 8
buttons big-14
borderWidth 6
handlewidth 6
;;
big)
fontsize 12
paddingHeight 6
buttons big-12
borderWidth 4
handlewidth 4
;;
normal)
fontsize 11
paddingHeight 4
buttons tiny
borderWidth 1
handlewidth 3
;;
small)
fontsize 10
paddingHeight 2
buttons dots
borderWidth 0
handlewidth 2
;;
tiny)
fontsize 9
paddingHeight 1
buttons normal
borderWidth 0
handlewidth 0
;;
*):;;
esac
}
savetheme () {
case "$LANG" in
pl*)SAVE_AS="Nowy motyw Openbox"
DESC="Zapisz obecne ustawionia Openbox jako nowy motyw..."
LABEL="Nazwa:"
NAME="nazwa";;
*) SAVE_AS="New Openbox theme"
DESC="Save current Openbox window decoration setup as theme..."
LABEL="Name:"
NAME="theme-name";;
esac
# ask for scheme name
schemename=$(yad --center --width=300 --borders=20 --window-icon=mbcc --title "$SAVE_AS" --text="$DESC" --entry --entry-label="$LABEL" --entry-text="$NAME") || exit 1
echo "${1}${schemename}" >> "$HOME/.config/colorizer/openbox/userthemes.csv"
}
applyscheme () {
theme MBcolors
case "$1" in
sys) SCHEMEFILE="/usr/share/mabox-colorizer/colorschemes/ob.csv";;
usr) SCHEMEFILE="$HOME/.config/colorizer/openbox/userthemes.csv";;
esac
while IFS="|" read -r abg abgto afg aline nbg nbgto nfg nline grad txtjust pheight pwidth handle bord bevel button fsize fname ndslim weight slant scheme_name
do
clractivebg "${abg}"
clractivebgto "${abgto}"
activetextcolor "${afg}"
activeborderColor "${aline}"
clrnormalbg "${nbg}"
clrnormalbgto "${nbgto}"
inactivetextcolor "${nfg}"
inactiveborderColor "${nline}"
gradient_type "${grad}"
done < <(awk 'NR == n' n=$2 "$SCHEMEFILE")
}
applytheme() {
case "$1" in
sys) SCHEMEFILE="/usr/share/mabox-colorizer/colorschemes/ob.csv";;
usr) SCHEMEFILE="$HOME/.config/colorizer/openbox/userthemes.csv";;
esac
applyscheme "$1" "$2"
while IFS="|" read -r abg abgto afg aline nbg nbgto nfg nline grad txtjust pheight pwidth handle bord bevel button fsize fname ndslim weight slant scheme_name
do
textjustify "${txtjust}"
paddingHeight "${pheight}"
paddingWidth "${pwidth}"
handlewidth "${handle}"
borderWidth "${bord}"
raised "${bevel}"
buttons "${button}"
fontsize "${fsize}"
fontfamily "${fname}"
ndslimc "${ndslim}"
fontweight "${weight}"
fontslant "${slant}"
done < <(awk 'NR == n' n=$2 "$SCHEMEFILE")
}
delscheme() {
sed -i ${1}d "$HOME/.config/colorizer/openbox/userthemes.csv"
}
mono() {
lighten=(0.92 0.8 0.65 0.45 0.28)
darken=(0.9 0.74 0.54 0.38 0.18)
if [ "${1}" == pick ];then
color=$(gpick -pso 2>/dev/null)
else
color="${1}"
fi
if [ "${#color}" == 7 ];then
for i in "${lighten[@]}"
do
pal+=("$(pastel mix -f $i "#ffffff" "$color"|pastel format hex)")
done
pal+=("$color")
for i in "${darken[@]}"
do
pal+=("$(pastel mix -f $i "$color" "#000000"|pastel format hex)")
done
else
exit 0
fi
#colorize OB
if [ "$2" == "dark" ];then
clractivebg "${pal[4]}"
clractivebgto "${pal[6]}"
activeborderColor "${pal[2]}"
activetextcolor "${pal[1]}"
clrnormalbg "${pal[9]}"
clrnormalbgto "${pal[10]}"
inactiveborderColor "${pal[8]}"
inactivetextcolor "${pal[4]}"
else #light
clractivebg "${pal[2]}"
clractivebgto "${pal[4]}"
activeborderColor "${pal[0]}"
activetextcolor "${pal[9]}"
clrnormalbg "${pal[9]}"
clrnormalbgto "${pal[10]}"
inactiveborderColor "${pal[7]}"
inactivetextcolor "${pal[5]}"
fi
openbox --reconfigure
colorizer-ob -s 2>/dev/null
}
case "$1" in
@ -548,6 +842,7 @@ case "$1" in
gradient_type) gradient_type "$2";;
random_gradient) random_gradient;;
activegradient) activegradient "$2" "$3";;
gradient_reverse) gradient_reverse;;
activehandle) activehandle "$2";;
clractivebg_only) clractivebg_only "$2";; #ADVANCED - do not calculate colorTo
clractivebg) clractivebg "$2";;
@ -558,14 +853,23 @@ case "$1" in
activetextcolor) activetextcolor "$2";;
inactivetextcolor) inactivetextcolor "$2";;
buttons) buttons "$2";;
ndslimc) ndslimc "$2";;
activebuttonscolors) activebuttonscolors "$2";;
fontfamily) fontfamily "$2";;
fontweight) fontweight "$2";;
fontweight_inactive) fontweight_inactive "$2";;
fontslant) fontslant "$2";;
fontslant_inactive) fontslant_inactive "$2";;
fontsize) fontsize "$2";;
fontweighttoggle) fontweighttoggle;;
fontslanttoggle) fontslanttoggle;;
randomizer) randomizer;;
tweak) tweak "$2";;
mono) mono "$2" "$3";;
savetheme) savetheme "$2";;
applyscheme) applyscheme "$2" "$3";;
applytheme) applytheme "$2" "$3";;
delscheme) delscheme "$2";;
*) : ;;
esac

View File

@ -1,6 +1,23 @@
#/bin/bash
#!/bin/bash
# pcmanfm based wallpaper chooser
# simple command for now
pcmanfm -n /usr/share/backgrounds ~/wallpapers
CNF_FILE="$HOME/.config/mabox/wallp_dirs.conf"
if [ ! -f $CNF_FILE ]; then
cat <<EOF > ${CNF_FILE}
# User wallpapers directories - one per line
# Used by "Choose wallpaper" PCmanFM wrapper
# Set wallpapers using context (right click) menu in file manager
~/wallpapers/
EOF
fi
#System wallpaper dirs
syswpdirs+=("/usr/share/backgrounds")
if [ -d "/usr/share/backgrounds/tiled" ]; then
syswpdirs+=("/usr/share/backgrounds/tiled")
fi
readarray -t wpdirs < <(grep "^[^#]" "${CNF_FILE}")
pcmanfm -n $(echo ${syswpdirs[@]} ${wpdirs[@]})

View File

@ -6,7 +6,7 @@
THEMERC=~/.config/pyradio/themes/mbcolors.pyradio-theme
CONF_DIR="$HOME/.config/pyradio/"
CONF_FILE="$CONF_DIR/config"
stations() {
sd "^Stations .*$" "Stations $1 $2" ${THEMERC}
@ -115,12 +115,20 @@ PyRadio URL #d2cda1
# Message window border foreground
# (background color will come from Stations)
Messages Border #d3d4bf
# Theme Transparency
# Values are:
# 0: No transparency (default)
# 1: Theme is transparent
# 2: Obey config setting
transparency 0
EOF
}
export_theme () {
DATE=$(date +'%Y%m%d-%H-%M-%S')
cp ${THEMERC} "$HOME/.config/pyradio/themes/exported_${DATE}.pyradio-theme"
notify-send.sh -i radio "PyRadio theme exported!" "\nNew PyRadio theme created as:\n<b>exported_${DATE}.pyradio-theme</b>\n" -o " Open in editor:xdg-open ${CONF_DIR}/themes/exported_${DATE}.pyradio-theme" -o " Open Themes dir:xdg-open ${CONF_DIR}/themes"
notify-send.sh -i radio "PyRadio theme exported!" "\nNew PyRadio theme created as:\n<b>exported_${DATE}.pyradio-theme</b>\n" -o " Open in editor:xdg-open ${CONF_DIR}/themes/exported_${DATE}.pyradio-theme" -o " Open Themes dir:xdg-open ${CONF_DIR}/themes"
}
#run
if [ ! -f $THEMERC ]; then

View File

@ -13,18 +13,10 @@ menu () {
esac
}
conky () {
#set random saved colorscheme
COLORIZERDIR="$HOME/.config/colorizer"
CONKYTHEMEDIR="$COLORIZERDIR/conky/themes"
if [ ! -d "$CONKYTHEMEDIR" ];then
mkdir -p "$CONKYTHEMEDIR"
rsync -a /usr/share/mabox-colorizer/themes/conky/* ${CONKYTHEMEDIR}/
fi
RAND_FILENAME=$(ls ~/.config/colorizer/conky/themes/*.colors|shuf -n 1)
RAND_THEME=${RAND_FILENAME##*/}
#notify-send.sh "$RAND_THEME"
conkyctl settheme_all ${RAND_THEME}
LINES=$(tail -n +2 /usr/share/mabox-colorizer/colorschemes/conky.csv|wc -l)
N=$(( ( RANDOM % $LINES ) + 2 ))
#notify-send.sh "$LINES" "$N"
conkyctl applyscheme_all sys $N
}
wp () {
: # Może niepotrzebne tu
@ -52,6 +44,7 @@ pipemenu () {
MENUS="Menu i Panele boczne"
OBWD="Dekoracja okien Openbox"
ALL="Wszystko"
ALLRESET="Resetuj wszystko"
RESET_TO_DEFAULT="Resetuj do ustawień domyślnych..."
HELP="Okno Główne i Pomoc"
;;
@ -59,15 +52,17 @@ pipemenu () {
SETRANDOM="Set random colorscheme for..."
MENUS="Menus and Panels"
OBWD="OpenBox Window Decoration"
ALL="All"
ALL="All above"
ALLRESET="Reset All above"
RESET_TO_DEFAULT="Reset to default settings..."
HELP="Main Window and Help"
;;
en*)
*)
SETRANDOM="Set random colorscheme for..."
MENUS="Menus and Panels"
OBWD="OpenBox Window Decoration"
ALL="All above"
ALLRESET="Reset All above"
RESET_TO_DEFAULT="Reset to default settings..."
HELP="Main Window and Help"
;;
@ -77,16 +72,26 @@ pipemenu () {
out+=("$OBWD,randomizer ob;$me")
out+=("Conky,randomizer conky;$me")
out+=("^sep()")
out+=("$ALL,randomizer all;$me")
out+=("$ALL,randomizer all;$me")
out+=("^sep($RESET_TO_DEFAULT)")
out+=("$MENUS,jgctl resetMBcolors;$me")
out+=("$OBWD,obtctl resetMBcolors;$me")
out+=("Conky,conkyctl resetcolorsall;$me")
out+=("^sep()")
out+=("$ALL,randomizer resetall;$me")
out+=("<big>󰁯</big> $ALLRESET,randomizer resetall;$me")
if [[ "$1" != "c" ]];then
out+=("^sep(Colorizer)")
out+=("Colorizer - $HELP,ycolorizer")
out+=(" Colorizer - $HELP,ycolorizer")
out+=("Colorizer - Rootmenu,colorizer -s")
out+=("^sep(Colorizer modules)")
out+=("OpenBox,colorizer-ob -s")
out+=("Menus,colorizer-menus -s")
out+=("Conky,colorizer-conky -s")
out+=("^sep()")
out+=("Cava,colorizer-cava -s")
out+=("PyRadio,colorizer-pyradio -s")
fi
printf '%s\n' "${out[@]}"
}

View File

@ -1,20 +1,47 @@
#!/bin/bash
#
# colorizer - set of tools for Mabox (auto)theming
# Copyright (C) 2022-2023 Daniel Napora <napcok@gmail.com>
#
# 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/>.
# w2theme - generate themes from wallpaper colors
# w2theme - generate themes from wallpaper colors
WALLPALDIR="$HOME/.config/colormenu/palettes/wallp"
WALLPALDIR="$HOME/.cache/colorizer/palettes"
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"
NAME=${WALLPATH////_}
if [[ "${NAME}" =~ ^_home_.* ]]; then
n=${#HOME}
((n++))
NAME=${NAME:${n}}
fi
mapfile -t w < "$WALLPALDIR/$WALLPAPER.clr"
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
accents=("#e93d57" "#c7162b" "#e9633a" "#e95620" "#f4a300" "#e8cc2d" "#3cd425" "#0e8420" "#00d3b7" "#18b0b0" "#3dade9" "#686b6f" "#3584e4" "#916ee4" "#b875dc" "#77216e" "#c748ba" "#e93a9a")
menu_theme () {
jgctl theme MBcolors
case "$1" in
@ -60,29 +87,22 @@ conky_colors() {
dark) #dark bg
conkyctl win_bgcolor_all "${w[0]}"
conkyctl default_color_all "${w[-1]}"
conkyctl color0_all "${w[-3]}"
conkyctl color1_all "${w[-4]}"
conkyctl color2_all "${w[-5]}"
if [[ $conky_diff_colors == "yes" ]];then
conkyctl win_bgcolor ${w[2]} "$HOME/.config/conky/mabox_tools_mbcolor.conkyrc"
conkyctl win_bgcolor ${w[1]} "$HOME/.config/conky/shortcuts_mbcolor.conkyrc"
conkyctl win_bgcolor ${w[3]} "$HOME/.config/conky/tiling_terminal_mbcolor.conkyrc"
fi
conkyctl color0_all "${w[-4]}"
conkyctl color1_all "${w[-5]}"
#conkyctl color2_all "${w[-5]}"
;;
*) #light bg
conkyctl win_bgcolor_all "${w[-1]}"
conkyctl default_color_all "${w[0]}"
conkyctl color0_all "${w[2]}"
conkyctl color1_all "${w[4]}"
conkyctl color2_all "${w[6]}"
if [[ $conky_diff_colors == "yes" ]];then
conkyctl win_bgcolor ${w[-3]} "$HOME/.config/conky/mabox_tools_mbcolor.conkyrc"
conkyctl win_bgcolor ${w[-5]} "$HOME/.config/conky/shortcuts_mbcolor.conkyrc"
conkyctl win_bgcolor ${w[-4]} "$HOME/.config/conky/tiling_terminal_mbcolor.conkyrc"
fi
conkyctl color0_all "${w[4]}"
conkyctl color1_all "${w[5]}"
#conkyctl color2_all "${w[6]}"
;;
esac
#bars/graphs color
#random
conkyctl color2_all "${accents[ $RANDOM % ${#accents[@]} ]}"
}
conky_colorsone () {
source ~/.config/colorizer/colorizer.conf
@ -90,18 +110,17 @@ conky_colorsone () {
dark) #dark bg
conkyctl win_bgcolor "${w[0]}" "${2}"
conkyctl default_color "${w[-1]}" "${2}"
conkyctl color0 "${w[-3]}" "${2}"
conkyctl color1 "${w[-4]}" "${2}"
conkyctl color2 "${w[-5]}" "${2}"
conkyctl color0 "${w[-4]}" "${2}"
conkyctl color1 "${w[-5]}" "${2}"
;;
*) #light bg
conkyctl win_bgcolor "${w[-1]}" "${2}"
conkyctl default_color "${w[0]}" "${2}"
conkyctl color0 "${w[2]}" "${2}"
conkyctl color1 "${w[4]}" "${2}"
conkyctl color2 "${w[6]}" "${2}"
conkyctl color0 "${w[4]}" "${2}"
conkyctl color1 "${w[5]}" "${2}"
;;
esac
conkyctl color2_all "${accents[ $RANDOM % ${#accents[@]} ]}" "${2}"
}
pyradio_theme() {
case "$1" in
@ -129,6 +148,21 @@ pyradio_theme() {
;;
esac
}
cava () {
case "$1" in
light) #light bottom
cavactl gradientcolors "${w[-3]}" "${w[3]}"
cavactl foregroundcolor "${w[-3]}"
cavactl reload_colors
;;
*) #dark bottom
cavactl gradientcolors "${w[3]}" "${w[-3]}"
cavactl foregroundcolor "${w[3]}"
cavactl reload_colors
;;
esac
}
accent () {
#obtctl clractivebg ${1}
#colorTo=$(pastel darken 0.2 "${1}"|pastel format hex)
@ -221,11 +255,13 @@ case "$1" in
obtctl clractivebg ${w[2]}
TITLE_FG=$(pastel textcolor ${w[2]}|pastel format hex)
if [[ "$TITLE_FG" == *"ffffff"* ]];then
obtctl activetextcolor ${w[-1]}
obtctl activebuttonscolors ${w[-1]}
obtctl activetextcolor "#E5E5E5"
#obtctl activetextcolor ${w[-1]}
#obtctl activebuttonscolors ${w[-1]}
else
obtctl activetextcolor ${w[0]}
obtctl activebuttonscolors ${w[0]}
obtctl activetextcolor "#222222"
#obtctl activetextcolor ${w[0]}
#obtctl activebuttonscolors ${w[0]}
fi
obtctl clractivebgto ${w[4]}
obtctl clrnormalbg ${w[0]}
@ -235,17 +271,20 @@ case "$1" in
obtctl clractivebg ${w[-2]}
TITLE_FG=$(pastel textcolor ${w[-2]}|pastel format hex)
if [[ "$TITLE_FG" == *"ffffff"* ]];then
obtctl activetextcolor ${w[-1]}
obtctl activebuttonscolors ${w[-1]}
obtctl activetextcolor "#E5E5E5"
#obtctl activetextcolor ${w[-1]}
#obtctl activebuttonscolors ${w[-1]}
else
obtctl activetextcolor ${w[0]}
obtctl activebuttonscolors ${w[0]}
obtctl activetextcolor "#222222"
#obtctl activetextcolor ${w[0]}
#obtctl activebuttonscolors ${w[0]}
fi
obtctl clractivebgto ${w[-4]}
obtctl clrnormalbg ${w[1]}
obtctl clrnormalbgto "$(pastel darken 0.1 "${w[1]}"|pastel format hex)"
;;
esac
obtctl shadow 0
}
colorize () {
source ~/.config/colorizer/colorizer.conf
@ -330,6 +369,22 @@ reverse () {
esac
}
genthumb () {
#$1 - filename with full path
NAME=${1////_}
if [[ "${NAME}" =~ ^_home_.* ]]; then
n=${#HOME}
((n++))
NAME=${NAME:${n}}
fi
# GENERATE THUMBNAIL
THUMBDIR="$HOME/.cache/colorizer/thumbs"
mkdir -p ${THUMBDIR}
THUMB="${THUMBDIR}/${NAME}.png"
if [[ ! -f "$THUMB" ]]; then
convert ${1} -resize 270x150^ -gravity center -extent 270x150 ${THUMB}
fi
}
pin () {
#get wallpaper path and filename without ext
@ -349,10 +404,12 @@ case "$1" in
conky) conky_colors "$2";;
conkyone) conky_colorsone "$2" "$3";;
pyradio) pyradio_theme "$2";;
cava) cava "$2";;
accent) accent "$2";;
gradient) gradient "$2" "$3";;
colorize) colorize;;
reverse) reverse;;
genthumb)genthumb "$2";;
pin) pin;;
*) ;;
esac

View File

@ -0,0 +1,12 @@
[Desktop Entry]
Version=1.0
Type=Application
Name=Choose wallpaper
Name[pl]=Wybierz tapetę
Comment=
Keywords=
StartupNotify=false
Icon=preferences-desktop-wallpaper
Exec=pcmanwp
Categories=Settings;
#NoDisplay=true

View File

@ -0,0 +1,24 @@
#FFFFFF
#F5F6E8
#EEEEEE
#D0AD9A
#D0E2EE
#FFF79C
#FED883
#FEBE40
#EC7523
#556B2F
#F8C09D
#DD94C1
#EA676C
#432355
#311A12
#1D5C87
#3A4D5C
#143441
#0F2437
#3b3b3b
#252525
#181818
#111111
#000000

View File

@ -0,0 +1,12 @@
WINCLR | CLR | CLR0 | CLR1 | CLR2 |WINTRANS|OUTLINE|SHADES | BORD | STIP |scheme_name
#142c2c|#309552|#accdc7|#61c4bc|#E8CB2D|false|false|false|true|0|Istredd default
#282936|#e9e9f4|#ea51b2|#00f769|#ebff87|false|false|false|false|1|Dracula
#282828|#ebdbb2|#98971a|#d79921|#cc241d|false|false|false|false|1|Gruvbox Dark
#2D2A2E|#AB9DF2|#FCFCFA|#78DCE8|#A9DC76|false|false|false|false|1|Monokai Pro
#2E3440|#B48EAD|#D8DEE9|#88C0D0|#EBCB8B|false|false|false|false|1|Nord
#f8f8f8|#181415|#282828|#0e8420|#e95620|true|false|true|false|1|transparent DarkTxt
#1b1b1b|#bbc8c8|#f2f2f2|#84c747|#ebc13d|true|false|false|false|1|transparent WhiteTxt
#184956|#adbcbc|#ff665c|#84c747|#ebc13d|false|false|false|false|1|Selenized Dark
#ECE3CC|#3A4D53|#AD8900|#CC1729|#428B00|false|false|false|false|1|Selenized Light
#151718|#D6D6D6|#CD3F45|#9FCA56|#E6CD69|false|false|false|false|1|Seti
#1d1f21|#b294bb|#c5c8c6|#81a2be|#b5bd68|false|false|false|false|1|Tomorrow Nigh
1 WINCLR CLR CLR0 CLR1 CLR2 WINTRANS OUTLINE SHADES BORD STIP scheme_name
2 #142c2c #309552 #accdc7 #61c4bc #E8CB2D false false false true 0 Istredd default
3 #282936 #e9e9f4 #ea51b2 #00f769 #ebff87 false false false false 1 Dracula
4 #282828 #ebdbb2 #98971a #d79921 #cc241d false false false false 1 Gruvbox Dark
5 #2D2A2E #AB9DF2 #FCFCFA #78DCE8 #A9DC76 false false false false 1 Monokai Pro
6 #2E3440 #B48EAD #D8DEE9 #88C0D0 #EBCB8B false false false false 1 Nord
7 #f8f8f8 #181415 #282828 #0e8420 #e95620 true false true false 1 transparent DarkTxt
8 #1b1b1b #bbc8c8 #f2f2f2 #84c747 #ebc13d true false false false 1 transparent WhiteTxt
9 #184956 #adbcbc #ff665c #84c747 #ebc13d false false false false 1 Selenized Dark
10 #ECE3CC #3A4D53 #AD8900 #CC1729 #428B00 false false false false 1 Selenized Light
11 #151718 #D6D6D6 #CD3F45 #9FCA56 #E6CD69 false false false false 1 Seti
12 #1d1f21 #b294bb #c5c8c6 #81a2be #b5bd68 false false false false 1 Tomorrow Nigh

View File

@ -0,0 +1,6 @@
MBG | MBGT |MBORDER| TBG | TFG |TBORDER|NORMBG | NFG | SBG | SFG |SBORDER| SEPFG |GRADIENT|scheme_name
#383838|#222222|#eeeeee|#325a52|#d3d4bf|#579c8e|#2b303b|#dadada|#579c8e|#ffffff|#579c8e|#4f4f4f|none|Istredd
#1E1E1E|#262626|#333333|#383838|#BBBBBB|#222222|#1e1e1e|#9b9b9b|#000000|#FFCC66|#FFCC66|#363636|right|Jaskier
#d3d4bf|#d2cda1|#cdc76d|#cdc76d|#0c1d23|#c6b76b|#d3d4bf|#0c1d23|#a29d62|#060b0a|#c6b76b|#a29d62|top_right|Jaskier Light
#38373c|#424247|#2a2a2c|#2a2a2d|#d0d0ce|#151517|#2b303b|#c8c8c4|#59595a|#f8f8f8|#373739|#2a2a2c|bottom_left|GreyBird Dark
#ececea|#e0e0de|#d0d0ce|#d0d0ce|#1e1e20|#c0c0be|#2b303b|#1e1e20|#b0b0af|#151517|#c0c0be|#b0b0af|bottom_left|GreyBird Light
1 MBG MBGT MBORDER TBG TFG TBORDER NORMBG NFG SBG SFG SBORDER SEPFG GRADIENT scheme_name
2 #383838 #222222 #eeeeee #325a52 #d3d4bf #579c8e #2b303b #dadada #579c8e #ffffff #579c8e #4f4f4f none Istredd
3 #1E1E1E #262626 #333333 #383838 #BBBBBB #222222 #1e1e1e #9b9b9b #000000 #FFCC66 #FFCC66 #363636 right Jaskier
4 #d3d4bf #d2cda1 #cdc76d #cdc76d #0c1d23 #c6b76b #d3d4bf #0c1d23 #a29d62 #060b0a #c6b76b #a29d62 top_right Jaskier Light
5 #38373c #424247 #2a2a2c #2a2a2d #d0d0ce #151517 #2b303b #c8c8c4 #59595a #f8f8f8 #373739 #2a2a2c bottom_left GreyBird Dark
6 #ececea #e0e0de #d0d0ce #d0d0ce #1e1e20 #c0c0be #2b303b #1e1e20 #b0b0af #151517 #c0c0be #b0b0af bottom_left GreyBird Light

View File

@ -0,0 +1,7 @@
ABG | ABGTO | AFG | ALINE | NBG | NBGTO | NFG | NLINE | GRAD |TXTJUST|PHEIGHT|PWIDTH|HANDLE|BORD|BEVEL|BUTTONS|FSIZE|FNAME|NDSLIMC|WEIGHT|SLANT|scheme_name
#579c8e|#41756a|#ffffff|#579c8e|#383838|#2a2a2a|#898989|#292929|vertical|center|4|4|4|1|raised|tiny|11|Noto Sans|NDSLIMC|Normal|Normal|Mabox Istredd
#d2cda1|#c6b76b|#222222|#d2cda1|#0c1d23|#000000|#898989|#0c1d23|vertical|center|4|4|2|0|raised|big-12|12|Noto Sans|NLIMC|Normal|Normal|Mabox Jaskier Light
#283433|#1a231a|#E5E5E5|#283433|#0c100f|#080b08|#898989|#0c100f|horizontal|center|4|4|2|0|raised|tiny|11|Noto Sans|NLIMC|Normal|Normal|Mabox Jaskier Dark
#D9D9D9|#B6B6B6|#0F0F0F|#BDBBB9|#D9D9D9|#B4B4B4|#656565|#BFBCBB|vertical|left|2|2|1|0|raised|bold|11|Ubuntu Bold|NLIMC|Bold|Normal|Light Grey
#CE5C00|#9b4600|#E5E5E5|#CE5C00|#D3D7CF|#B4B4B4|#656565|#BFBCBB|mirrorhorizontal|center|2|2|1|0|raised|dots|11|Noto Sans|NLIMC|Normal|Normal|Orange
#F7941E|#004E8F|#E5E5E5|#F7941E|#4a2c09|#00172b|#656565|#4a2c09|mirrorhorizontal|center|4|4|1|0|raised|big-14|13|Ubuntu|NLIMC|Normal|Normal|Sky and Sea
1 ABG ABGTO AFG ALINE NBG NBGTO NFG NLINE GRAD TXTJUST PHEIGHT PWIDTH HANDLE BORD BEVEL BUTTONS FSIZE FNAME NDSLIMC WEIGHT SLANT scheme_name
2 #579c8e #41756a #ffffff #579c8e #383838 #2a2a2a #898989 #292929 vertical center 4 4 4 1 raised tiny 11 Noto Sans NDSLIMC Normal Normal Mabox Istredd
3 #d2cda1 #c6b76b #222222 #d2cda1 #0c1d23 #000000 #898989 #0c1d23 vertical center 4 4 2 0 raised big-12 12 Noto Sans NLIMC Normal Normal Mabox Jaskier Light
4 #283433 #1a231a #E5E5E5 #283433 #0c100f #080b08 #898989 #0c100f horizontal center 4 4 2 0 raised tiny 11 Noto Sans NLIMC Normal Normal Mabox Jaskier Dark
5 #D9D9D9 #B6B6B6 #0F0F0F #BDBBB9 #D9D9D9 #B4B4B4 #656565 #BFBCBB vertical left 2 2 1 0 raised bold 11 Ubuntu Bold NLIMC Bold Normal Light Grey
6 #CE5C00 #9b4600 #E5E5E5 #CE5C00 #D3D7CF #B4B4B4 #656565 #BFBCBB mirrorhorizontal center 2 2 1 0 raised dots 11 Noto Sans NLIMC Normal Normal Orange
7 #F7941E #004E8F #E5E5E5 #F7941E #4a2c09 #00172b #656565 #4a2c09 mirrorhorizontal center 4 4 1 0 raised big-14 13 Ubuntu NLIMC Normal Normal Sky and Sea

View File

@ -0,0 +1,11 @@
# Put your favorite fonts families here, one per line
Autour One
Cantarell
DejaVu Serif
Droid Sans
JetBrains Mono
Noto Sans
Roboto
Ubuntu
Noto Sans Light
Source Code Pro

View File

@ -26,210 +26,210 @@ legend{color:inherit;display:table;max-width:100%;padding:0;white-space:normal}t
/* End extract */
html,body{font-family:Verdana,sans-serif;font-size:15px;line-height:1.5}html{overflow-x:hidden}
h1{font-size:36px}h2{font-size:30px}h3{font-size:24px}h4{font-size:20px}h5{font-size:18px}h6{font-size:16px}
.w3-serif{font-family:serif}.w3-sans-serif{font-family:sans-serif}.w3-cursive{font-family:cursive}.w3-monospace{font-family:monospace}
h1,h2,h3,h4,h5,h6{font-family:"Segoe UI",Arial,sans-serif;font-weight:400;margin:10px 0}.w3-wide{letter-spacing:4px}
.serif{font-family:serif}.sans-serif{font-family:sans-serif}.cursive{font-family:cursive}.monospace{font-family:monospace}
h1,h2,h3,h4,h5,h6{font-family:"Segoe UI",Arial,sans-serif;font-weight:400;margin:10px 0}.wide{letter-spacing:4px}
hr{border:0;border-top:1px solid #eee;margin:20px 0}
.w3-image{max-width:100%;height:auto}img{vertical-align:middle}a{color:inherit}
.w3-table,.w3-table-all{border-collapse:collapse;border-spacing:0;width:100%;display:table}.w3-table-all{border:1px solid #ccc}
.w3-bordered tr,.w3-table-all tr{border-bottom:1px solid #ddd}.w3-striped tbody tr:nth-child(even){background-color:#f1f1f1}
.w3-table-all tr:nth-child(odd){background-color:#fff}.w3-table-all tr:nth-child(even){background-color:#f1f1f1}
.w3-hoverable tbody tr:hover,.w3-ul.w3-hoverable li:hover{background-color:#ccc}.w3-centered tr th,.w3-centered tr td{text-align:center}
.w3-table td,.w3-table th,.w3-table-all td,.w3-table-all th{padding:8px 8px;display:table-cell;text-align:left;vertical-align:top}
.w3-table th:first-child,.w3-table td:first-child,.w3-table-all th:first-child,.w3-table-all td:first-child{padding-left:16px}
.w3-btn,.w3-button{border:none;display:inline-block;padding:8px 16px;vertical-align:middle;overflow:hidden;text-decoration:none;color:inherit;background-color:inherit;text-align:center;cursor:pointer;white-space:nowrap}
.w3-btn:hover{box-shadow:0 8px 16px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}
.w3-btn,.w3-button{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
.w3-disabled,.w3-btn:disabled,.w3-button:disabled{cursor:not-allowed;opacity:0.3}.w3-disabled *,:disabled *{pointer-events:none}
.w3-btn.w3-disabled:hover,.w3-btn:disabled:hover{box-shadow:none}
.w3-badge,.w3-tag{background-color:#000;color:#fff;display:inline-block;padding-left:8px;padding-right:8px;text-align:center}.w3-badge{border-radius:50%}
.w3-ul{list-style-type:none;padding:0;margin:0}.w3-ul li{padding:8px 16px;border-bottom:1px solid #ddd}.w3-ul li:last-child{border-bottom:none}
.w3-tooltip,.w3-display-container{position:relative}.w3-tooltip .w3-text{display:none}.w3-tooltip:hover .w3-text{display:inline-block}
.w3-ripple:active{opacity:0.5}.w3-ripple{transition:opacity 0s}
.w3-input{padding:8px;display:block;border:none;border-bottom:1px solid #ccc;width:100%}
.w3-select{padding:9px 0;width:100%;border:none;border-bottom:1px solid #ccc}
.w3-dropdown-click,.w3-dropdown-hover{position:relative;display:inline-block;cursor:pointer}
.w3-dropdown-hover:hover .w3-dropdown-content{display:block}
.w3-dropdown-hover:first-child,.w3-dropdown-click:hover{background-color:#ccc;color:#000}
.w3-dropdown-hover:hover > .w3-button:first-child,.w3-dropdown-click:hover > .w3-button:first-child{background-color:#ccc;color:#000}
.w3-dropdown-content{cursor:auto;color:#000;background-color:#fff;display:none;position:absolute;min-width:160px;margin:0;padding:0;z-index:1}
.w3-check,.w3-radio{width:24px;height:24px;position:relative;top:6px}
.w3-sidebar{height:100%;width:200px;background-color:#fff;position:fixed!important;z-index:1;overflow:auto}
.w3-bar-block .w3-dropdown-hover,.w3-bar-block .w3-dropdown-click{width:100%}
.w3-bar-block .w3-dropdown-hover .w3-dropdown-content,.w3-bar-block .w3-dropdown-click .w3-dropdown-content{min-width:100%}
.w3-bar-block .w3-dropdown-hover .w3-button,.w3-bar-block .w3-dropdown-click .w3-button{width:100%;text-align:left;padding:8px 16px}
.w3-main,#main{transition:margin-left .4s}
.w3-modal{z-index:3;display:none;padding-top:100px;position:fixed;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgb(0,0,0);background-color:rgba(0,0,0,0.4)}
.w3-modal-content{margin:auto;background-color:#fff;position:relative;padding:0;outline:0;width:600px}
.w3-bar{width:100%;overflow:hidden}.w3-center .w3-bar{display:inline-block;width:auto}
.w3-bar .w3-bar-item{padding:8px 16px;float:left;width:auto;border:none;display:block;outline:0}
.w3-bar .w3-dropdown-hover,.w3-bar .w3-dropdown-click{position:static;float:left}
.w3-bar .w3-button{white-space:normal}
.w3-bar-block .w3-bar-item{width:100%;display:block;padding:8px 16px;text-align:left;border:none;white-space:normal;float:none;outline:0}
.w3-bar-block.w3-center .w3-bar-item{text-align:center}.w3-block{display:block;width:100%}
.w3-responsive{display:block;overflow-x:auto}
.w3-container:after,.w3-container:before,.w3-panel:after,.w3-panel:before,.w3-row:after,.w3-row:before,.w3-row-padding:after,.w3-row-padding:before,
.w3-cell-row:before,.w3-cell-row:after,.w3-clear:after,.w3-clear:before,.w3-bar:before,.w3-bar:after{content:"";display:table;clear:both}
.w3-col,.w3-half,.w3-third,.w3-twothird,.w3-threequarter,.w3-quarter{float:left;width:100%}
.w3-col.s1{width:8.33333%}.w3-col.s2{width:16.66666%}.w3-col.s3{width:24.99999%}.w3-col.s4{width:33.33333%}
.w3-col.s5{width:41.66666%}.w3-col.s6{width:49.99999%}.w3-col.s7{width:58.33333%}.w3-col.s8{width:66.66666%}
.w3-col.s9{width:74.99999%}.w3-col.s10{width:83.33333%}.w3-col.s11{width:91.66666%}.w3-col.s12{width:99.99999%}
@media (min-width:601px){.w3-col.m1{width:8.33333%}.w3-col.m2{width:16.66666%}.w3-col.m3,.w3-quarter{width:24.99999%}.w3-col.m4,.w3-third{width:33.33333%}
.w3-col.m5{width:41.66666%}.w3-col.m6,.w3-half{width:49.99999%}.w3-col.m7{width:58.33333%}.w3-col.m8,.w3-twothird{width:66.66666%}
.w3-col.m9,.w3-threequarter{width:74.99999%}.w3-col.m10{width:83.33333%}.w3-col.m11{width:91.66666%}.w3-col.m12{width:99.99999%}}
@media (min-width:993px){.w3-col.l1{width:8.33333%}.w3-col.l2{width:16.66666%}.w3-col.l3{width:24.99999%}.w3-col.l4{width:33.33333%}
.w3-col.l5{width:41.66666%}.w3-col.l6{width:49.99999%}.w3-col.l7{width:58.33333%}.w3-col.l8{width:66.66666%}
.w3-col.l9{width:74.99999%}.w3-col.l10{width:83.33333%}.w3-col.l11{width:91.66666%}.w3-col.l12{width:99.99999%}}
.w3-rest{overflow:hidden}.w3-stretch{margin-left:-16px;margin-right:-16px}
.w3-content,.w3-auto{margin-left:auto;margin-right:auto}.w3-content{max-width:980px}.w3-auto{max-width:1140px}
.w3-cell-row{display:table;width:100%}.w3-cell{display:table-cell}
.w3-cell-top{vertical-align:top}.w3-cell-middle{vertical-align:middle}.w3-cell-bottom{vertical-align:bottom}
.w3-hide{display:none!important}.w3-show-block,.w3-show{display:block!important}.w3-show-inline-block{display:inline-block!important}
@media (max-width:1205px){.w3-auto{max-width:95%}}
@media (max-width:600px){.w3-modal-content{margin:0 10px;width:auto!important}.w3-modal{padding-top:30px}
.w3-dropdown-hover.w3-mobile .w3-dropdown-content,.w3-dropdown-click.w3-mobile .w3-dropdown-content{position:relative}
.w3-hide-small{display:none!important}.w3-mobile{display:block;width:100%!important}.w3-bar-item.w3-mobile,.w3-dropdown-hover.w3-mobile,.w3-dropdown-click.w3-mobile{text-align:center}
.w3-dropdown-hover.w3-mobile,.w3-dropdown-hover.w3-mobile .w3-btn,.w3-dropdown-hover.w3-mobile .w3-button,.w3-dropdown-click.w3-mobile,.w3-dropdown-click.w3-mobile .w3-btn,.w3-dropdown-click.w3-mobile .w3-button{width:100%}}
@media (max-width:768px){.w3-modal-content{width:500px}.w3-modal{padding-top:50px}}
@media (min-width:993px){.w3-modal-content{width:900px}.w3-hide-large{display:none!important}.w3-sidebar.w3-collapse{display:block!important}}
@media (max-width:992px) and (min-width:601px){.w3-hide-medium{display:none!important}}
@media (max-width:992px){.w3-sidebar.w3-collapse{display:none}.w3-main{margin-left:0!important;margin-right:0!important}.w3-auto{max-width:100%}}
.w3-top,.w3-bottom{position:fixed;width:100%;z-index:1}.w3-top{top:0}.w3-bottom{bottom:0}
.w3-overlay{position:fixed;display:none;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.5);z-index:2}
.w3-display-topleft{position:absolute;left:0;top:0}.w3-display-topright{position:absolute;right:0;top:0}
.w3-display-bottomleft{position:absolute;left:0;bottom:0}.w3-display-bottomright{position:absolute;right:0;bottom:0}
.w3-display-middle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}
.w3-display-left{position:absolute;top:50%;left:0%;transform:translate(0%,-50%);-ms-transform:translate(-0%,-50%)}
.w3-display-right{position:absolute;top:50%;right:0%;transform:translate(0%,-50%);-ms-transform:translate(0%,-50%)}
.w3-display-topmiddle{position:absolute;left:50%;top:0;transform:translate(-50%,0%);-ms-transform:translate(-50%,0%)}
.w3-display-bottommiddle{position:absolute;left:50%;bottom:0;transform:translate(-50%,0%);-ms-transform:translate(-50%,0%)}
.w3-display-container:hover .w3-display-hover{display:block}.w3-display-container:hover span.w3-display-hover{display:inline-block}.w3-display-hover{display:none}
.w3-display-position{position:absolute}
.w3-circle{border-radius:50%}
.w3-round-small{border-radius:2px}.w3-round,.w3-round-medium{border-radius:4px}.w3-round-large{border-radius:8px}.w3-round-xlarge{border-radius:16px}.w3-round-xxlarge{border-radius:32px}
.w3-row-padding,.w3-row-padding>.w3-half,.w3-row-padding>.w3-third,.w3-row-padding>.w3-twothird,.w3-row-padding>.w3-threequarter,.w3-row-padding>.w3-quarter,.w3-row-padding>.w3-col{padding:0 8px}
.w3-container,.w3-panel{padding:0.01em 16px}.w3-panel{margin-top:16px;margin-bottom:16px}
.w3-code,.w3-codespan{font-family:Consolas,"courier new";font-size:16px}
.w3-code{width:auto;background-color:#fff;padding:8px 12px;border-left:4px solid #4CAF50;word-wrap:break-word}
.w3-codespan{color:crimson;background-color:#f1f1f1;padding-left:4px;padding-right:4px;font-size:110%}
.w3-card,.w3-card-2{box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12)}
.w3-card-4,.w3-hover-shadow:hover{box-shadow:0 4px 10px 0 rgba(0,0,0,0.2),0 4px 20px 0 rgba(0,0,0,0.19)}
.w3-spin{animation:w3-spin 2s infinite linear}@keyframes w3-spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}
.w3-animate-fading{animation:fading 10s infinite}@keyframes fading{0%{opacity:0}50%{opacity:1}100%{opacity:0}}
.w3-animate-opacity{animation:opac 0.8s}@keyframes opac{from{opacity:0} to{opacity:1}}
.w3-animate-top{position:relative;animation:animatetop 0.4s}@keyframes animatetop{from{top:-300px;opacity:0} to{top:0;opacity:1}}
.w3-animate-left{position:relative;animation:animateleft 0.4s}@keyframes animateleft{from{left:-300px;opacity:0} to{left:0;opacity:1}}
.w3-animate-right{position:relative;animation:animateright 0.4s}@keyframes animateright{from{right:-300px;opacity:0} to{right:0;opacity:1}}
.w3-animate-bottom{position:relative;animation:animatebottom 0.4s}@keyframes animatebottom{from{bottom:-300px;opacity:0} to{bottom:0;opacity:1}}
.w3-animate-zoom {animation:animatezoom 0.6s}@keyframes animatezoom{from{transform:scale(0)} to{transform:scale(1)}}
.w3-animate-input{transition:width 0.4s ease-in-out}.w3-animate-input:focus{width:100%!important}
.w3-opacity,.w3-hover-opacity:hover{opacity:0.60}.w3-opacity-off,.w3-hover-opacity-off:hover{opacity:1}
.w3-opacity-max{opacity:0.25}.w3-opacity-min{opacity:0.75}
.w3-greyscale-max,.w3-grayscale-max,.w3-hover-greyscale:hover,.w3-hover-grayscale:hover{filter:grayscale(100%)}
.w3-greyscale,.w3-grayscale{filter:grayscale(75%)}.w3-greyscale-min,.w3-grayscale-min{filter:grayscale(50%)}
.w3-sepia{filter:sepia(75%)}.w3-sepia-max,.w3-hover-sepia:hover{filter:sepia(100%)}.w3-sepia-min{filter:sepia(50%)}
.w3-tiny{font-size:10px!important}.w3-small{font-size:12px!important}.w3-medium{font-size:15px!important}.w3-large{font-size:18px!important}
.w3-xlarge{font-size:24px!important}.w3-xxlarge{font-size:36px!important}.w3-xxxlarge{font-size:48px!important}.w3-jumbo{font-size:64px!important}
.w3-left-align{text-align:left!important}.w3-right-align{text-align:right!important}.w3-justify{text-align:justify!important}.w3-center{text-align:center!important}
.w3-border-0{border:0!important}.w3-border{border:1px solid #ccc!important}
.w3-border-top{border-top:1px solid #ccc!important}.w3-border-bottom{border-bottom:1px solid #ccc!important}
.w3-border-left{border-left:1px solid #ccc!important}.w3-border-right{border-right:1px solid #ccc!important}
.w3-topbar{border-top:6px solid #ccc!important}.w3-bottombar{border-bottom:6px solid #ccc!important}
.w3-leftbar{border-left:6px solid #ccc!important}.w3-rightbar{border-right:6px solid #ccc!important}
.w3-section,.w3-code{margin-top:16px!important;margin-bottom:16px!important}
.w3-margin{margin:16px!important}.w3-margin-top{margin-top:16px!important}.w3-margin-bottom{margin-bottom:16px!important}
.w3-margin-left{margin-left:16px!important}.w3-margin-right{margin-right:16px!important}
.w3-padding-small{padding:4px 8px!important}.w3-padding{padding:8px 16px!important}.w3-padding-large{padding:12px 24px!important}
.w3-padding-16{padding-top:16px!important;padding-bottom:16px!important}.w3-padding-24{padding-top:24px!important;padding-bottom:24px!important}
.w3-padding-32{padding-top:32px!important;padding-bottom:32px!important}.w3-padding-48{padding-top:48px!important;padding-bottom:48px!important}
.w3-padding-64{padding-top:64px!important;padding-bottom:64px!important}
.w3-padding-top-64{padding-top:64px!important}.w3-padding-top-48{padding-top:48px!important}
.w3-padding-top-32{padding-top:32px!important}.w3-padding-top-24{padding-top:24px!important}
.w3-left{float:left!important}.w3-right{float:right!important}
.w3-button:hover{color:#000!important;background-color:#ccc!important}
.w3-transparent,.w3-hover-none:hover{background-color:transparent!important}
.w3-hover-none:hover{box-shadow:none!important}
.image{max-width:100%;height:auto}img{vertical-align:middle}a{color:inherit}
.table,.table-all{border-collapse:collapse;border-spacing:0;width:100%;display:table}.table-all{border:1px solid #ccc}
.bordered tr,.table-all tr{border-bottom:1px solid #ddd}.striped tbody tr:nth-child(even){background-color:#f1f1f1}
.table-all tr:nth-child(odd){background-color:#fff}.table-all tr:nth-child(even){background-color:#f1f1f1}
.hoverable tbody tr:hover,.ul.hoverable li:hover{background-color:#ccc}.centered tr th,.centered tr td{text-align:center}
.table td,.table th,.table-all td,.table-all th{padding:8px 8px;display:table-cell;text-align:left;vertical-align:top}
.table th:first-child,.table td:first-child,.table-all th:first-child,.table-all td:first-child{padding-left:16px}
.btn,.button{border:none;display:inline-block;padding:8px 16px;vertical-align:middle;overflow:hidden;text-decoration:none;color:inherit;background-color:inherit;text-align:center;cursor:pointer;white-space:nowrap}
.btn:hover{box-shadow:0 8px 16px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}
.btn,.button{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
.disabled,.btn:disabled,.button:disabled{cursor:not-allowed;opacity:0.3}.disabled *,:disabled *{pointer-events:none}
.btn.disabled:hover,.btn:disabled:hover{box-shadow:none}
.badge,.tag{background-color:#000;color:#fff;display:inline-block;padding-left:8px;padding-right:8px;text-align:center}.badge{border-radius:50%}
.ul{list-style-type:none;padding:0;margin:0}.ul li{padding:8px 16px;border-bottom:1px solid #ddd}.ul li:last-child{border-bottom:none}
.tooltip,.display-container{position:relative}.tooltip .text{display:none}.tooltip:hover .text{display:inline-block}
.ripple:active{opacity:0.5}.ripple{transition:opacity 0s}
.input{padding:8px;display:block;border:none;border-bottom:1px solid #ccc;width:100%}
.select{padding:9px 0;width:100%;border:none;border-bottom:1px solid #ccc}
.dropdown-click,.dropdown-hover{position:relative;display:inline-block;cursor:pointer}
.dropdown-hover:hover .dropdown-content{display:block}
.dropdown-hover:first-child,.dropdown-click:hover{background-color:#ccc;color:#000}
.dropdown-hover:hover > .button:first-child,.dropdown-click:hover > .button:first-child{background-color:#ccc;color:#000}
.dropdown-content{cursor:auto;color:#000;background-color:#fff;display:none;position:absolute;min-width:160px;margin:0;padding:0;z-index:1}
.check,.radio{width:24px;height:24px;position:relative;top:6px}
.sidebar{height:100%;width:200px;background-color:#fff;position:fixed!important;z-index:1;overflow:auto}
.bar-block .dropdown-hover,.bar-block .dropdown-click{width:100%}
.bar-block .dropdown-hover .dropdown-content,.bar-block .dropdown-click .dropdown-content{min-width:100%}
.bar-block .dropdown-hover .button,.bar-block .dropdown-click .button{width:100%;text-align:left;padding:8px 16px}
.main,#main{transition:margin-left .4s}
.modal{z-index:3;display:none;padding-top:100px;position:fixed;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgb(0,0,0);background-color:rgba(0,0,0,0.4)}
.modal-content{margin:auto;background-color:#fff;position:relative;padding:0;outline:0;width:600px}
.bar{width:100%;overflow:hidden}.center .bar{display:inline-block;width:auto}
.bar .bar-item{padding:8px 16px;float:left;width:auto;border:none;display:block;outline:0}
.bar .dropdown-hover,.bar .dropdown-click{position:static;float:left}
.bar .button{white-space:normal}
.bar-block .bar-item{width:100%;display:block;padding:8px 16px;text-align:left;border:none;white-space:normal;float:none;outline:0}
.bar-block.center .bar-item{text-align:center}.block{display:block;width:100%}
.responsive{display:block;overflow-x:auto}
.container:after,.container:before,.panel:after,.panel:before,.row:after,.row:before,.row-padding:after,.row-padding:before,
.cell-row:before,.cell-row:after,.clear:after,.clear:before,.bar:before,.bar:after{content:"";display:table;clear:both}
.col,.half,.third,.twothird,.threequarter,.quarter{float:left;width:100%}
.col.s1{width:8.33333%}.col.s2{width:16.66666%}.col.s3{width:24.99999%}.col.s4{width:33.33333%}
.col.s5{width:41.66666%}.col.s6{width:49.99999%}.col.s7{width:58.33333%}.col.s8{width:66.66666%}
.col.s9{width:74.99999%}.col.s10{width:83.33333%}.col.s11{width:91.66666%}.col.s12{width:99.99999%}
@media (min-width:601px){.col.m1{width:8.33333%}.col.m2{width:16.66666%}.col.m3,.quarter{width:24.99999%}.col.m4,.third{width:33.33333%}
.col.m5{width:41.66666%}.col.m6,.half{width:49.99999%}.col.m7{width:58.33333%}.col.m8,.twothird{width:66.66666%}
.col.m9,.threequarter{width:74.99999%}.col.m10{width:83.33333%}.col.m11{width:91.66666%}.col.m12{width:99.99999%}}
@media (min-width:993px){.col.l1{width:8.33333%}.col.l2{width:16.66666%}.col.l3{width:24.99999%}.col.l4{width:33.33333%}
.col.l5{width:41.66666%}.col.l6{width:49.99999%}.col.l7{width:58.33333%}.col.l8{width:66.66666%}
.col.l9{width:74.99999%}.col.l10{width:83.33333%}.col.l11{width:91.66666%}.col.l12{width:99.99999%}}
.rest{overflow:hidden}.stretch{margin-left:-16px;margin-right:-16px}
.content,.auto{margin-left:auto;margin-right:auto}.content{max-width:980px}.auto{max-width:1140px}
.cell-row{display:table;width:100%}.cell{display:table-cell}
.cell-top{vertical-align:top}.cell-middle{vertical-align:middle}.cell-bottom{vertical-align:bottom}
.hide{display:none!important}.show-block,.show{display:block!important}.show-inline-block{display:inline-block!important}
@media (max-width:1205px){.auto{max-width:95%}}
@media (max-width:600px){.modal-content{margin:0 10px;width:auto!important}.modal{padding-top:30px}
.dropdown-hover.mobile .dropdown-content,.dropdown-click.mobile .dropdown-content{position:relative}
.hide-small{display:none!important}.mobile{display:block;width:100%!important}.bar-item.mobile,.dropdown-hover.mobile,.dropdown-click.mobile{text-align:center}
.dropdown-hover.mobile,.dropdown-hover.mobile .btn,.dropdown-hover.mobile .button,.dropdown-click.mobile,.dropdown-click.mobile .btn,.dropdown-click.mobile .button{width:100%}}
@media (max-width:768px){.modal-content{width:500px}.modal{padding-top:50px}}
@media (min-width:993px){.modal-content{width:900px}.hide-large{display:none!important}.sidebar.collapse{display:block!important}}
@media (max-width:992px) and (min-width:601px){.hide-medium{display:none!important}}
@media (max-width:992px){.sidebar.collapse{display:none}.main{margin-left:0!important;margin-right:0!important}.auto{max-width:100%}}
.top,.bottom{position:fixed;width:100%;z-index:1}.top{top:0}.bottom{bottom:0}
.overlay{position:fixed;display:none;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.5);z-index:2}
.display-topleft{position:absolute;left:0;top:0}.display-topright{position:absolute;right:0;top:0}
.display-bottomleft{position:absolute;left:0;bottom:0}.display-bottomright{position:absolute;right:0;bottom:0}
.display-middle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}
.display-left{position:absolute;top:50%;left:0%;transform:translate(0%,-50%);-ms-transform:translate(-0%,-50%)}
.display-right{position:absolute;top:50%;right:0%;transform:translate(0%,-50%);-ms-transform:translate(0%,-50%)}
.display-topmiddle{position:absolute;left:50%;top:0;transform:translate(-50%,0%);-ms-transform:translate(-50%,0%)}
.display-bottommiddle{position:absolute;left:50%;bottom:0;transform:translate(-50%,0%);-ms-transform:translate(-50%,0%)}
.display-container:hover .display-hover{display:block}.display-container:hover span.display-hover{display:inline-block}.display-hover{display:none}
.display-position{position:absolute}
.circle{border-radius:50%}
.round-small{border-radius:2px}.round,.round-medium{border-radius:4px}.round-large{border-radius:8px}.round-xlarge{border-radius:16px}.round-xxlarge{border-radius:32px}
.row-padding,.row-padding>.half,.row-padding>.third,.row-padding>.twothird,.row-padding>.threequarter,.row-padding>.quarter,.row-padding>.col{padding:0 8px}
.container,.panel{padding:0.01em 16px}.panel{margin-top:16px;margin-bottom:16px}
.code,.codespan{font-family:Consolas,"courier new";font-size:16px}
.code{width:auto;background-color:#fff;padding:8px 12px;border-left:4px solid #4CAF50;word-wrap:break-word}
.codespan{color:crimson;background-color:#f1f1f1;padding-left:4px;padding-right:4px;font-size:110%}
.card,.card-2{box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12)}
.card-4,.hover-shadow:hover{box-shadow:0 4px 10px 0 rgba(0,0,0,0.2),0 4px 20px 0 rgba(0,0,0,0.19)}
.spin{animation:spin 2s infinite linear}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}
.animate-fading{animation:fading 10s infinite}@keyframes fading{0%{opacity:0}50%{opacity:1}100%{opacity:0}}
.animate-opacity{animation:opac 0.8s}@keyframes opac{from{opacity:0} to{opacity:1}}
.animate-top{position:relative;animation:animatetop 0.4s}@keyframes animatetop{from{top:-300px;opacity:0} to{top:0;opacity:1}}
.animate-left{position:relative;animation:animateleft 0.4s}@keyframes animateleft{from{left:-300px;opacity:0} to{left:0;opacity:1}}
.animate-right{position:relative;animation:animateright 0.4s}@keyframes animateright{from{right:-300px;opacity:0} to{right:0;opacity:1}}
.animate-bottom{position:relative;animation:animatebottom 0.4s}@keyframes animatebottom{from{bottom:-300px;opacity:0} to{bottom:0;opacity:1}}
.animate-zoom {animation:animatezoom 0.6s}@keyframes animatezoom{from{transform:scale(0)} to{transform:scale(1)}}
.animate-input{transition:width 0.4s ease-in-out}.animate-input:focus{width:100%!important}
.opacity,.hover-opacity:hover{opacity:0.60}.opacity-off,.hover-opacity-off:hover{opacity:1}
.opacity-max{opacity:0.25}.opacity-min{opacity:0.75}
.greyscale-max,.grayscale-max,.hover-greyscale:hover,.hover-grayscale:hover{filter:grayscale(100%)}
.greyscale,.grayscale{filter:grayscale(75%)}.greyscale-min,.grayscale-min{filter:grayscale(50%)}
.sepia{filter:sepia(75%)}.sepia-max,.hover-sepia:hover{filter:sepia(100%)}.sepia-min{filter:sepia(50%)}
.tiny{font-size:10px!important}.small{font-size:12px!important}.medium{font-size:15px!important}.large{font-size:18px!important}
.xlarge{font-size:24px!important}.xxlarge{font-size:36px!important}.xxxlarge{font-size:48px!important}.jumbo{font-size:64px!important}
.left-align{text-align:left!important}.right-align{text-align:right!important}.justify{text-align:justify!important}.center{text-align:center!important}
.border-0{border:0!important}.border{border:1px solid #ccc!important}
.border-top{border-top:1px solid #ccc!important}.border-bottom{border-bottom:1px solid #ccc!important}
.border-left{border-left:1px solid #ccc!important}.border-right{border-right:1px solid #ccc!important}
.topbar{border-top:6px solid #ccc!important}.bottombar{border-bottom:6px solid #ccc!important}
.leftbar{border-left:6px solid #ccc!important}.rightbar{border-right:6px solid #ccc!important}
.section,.code{margin-top:16px!important;margin-bottom:16px!important}
.margin{margin:16px!important}.margin-top{margin-top:16px!important}.margin-bottom{margin-bottom:16px!important}
.margin-left{margin-left:16px!important}.margin-right{margin-right:16px!important}
.padding-small{padding:4px 8px!important}.padding{padding:8px 16px!important}.padding-large{padding:12px 24px!important}
.padding-16{padding-top:16px!important;padding-bottom:16px!important}.padding-24{padding-top:24px!important;padding-bottom:24px!important}
.padding-32{padding-top:32px!important;padding-bottom:32px!important}.padding-48{padding-top:48px!important;padding-bottom:48px!important}
.padding-64{padding-top:64px!important;padding-bottom:64px!important}
.padding-top-64{padding-top:64px!important}.padding-top-48{padding-top:48px!important}
.padding-top-32{padding-top:32px!important}.padding-top-24{padding-top:24px!important}
.left{float:left!important}.right{float:right!important}
.button:hover{color:#000!important;background-color:#ccc!important}
.transparent,.hover-none:hover{background-color:transparent!important}
.hover-none:hover{box-shadow:none!important}
/* Colors */
.w3-amber,.w3-hover-amber:hover{color:#000!important;background-color:#ffc107!important}
.w3-aqua,.w3-hover-aqua:hover{color:#000!important;background-color:#00ffff!important}
.w3-blue,.w3-hover-blue:hover{color:#fff!important;background-color:#2196F3!important}
.w3-light-blue,.w3-hover-light-blue:hover{color:#000!important;background-color:#87CEEB!important}
.w3-brown,.w3-hover-brown:hover{color:#fff!important;background-color:#795548!important}
.w3-cyan,.w3-hover-cyan:hover{color:#000!important;background-color:#00bcd4!important}
.w3-blue-grey,.w3-hover-blue-grey:hover,.w3-blue-gray,.w3-hover-blue-gray:hover{color:#fff!important;background-color:#607d8b!important}
.w3-green,.w3-hover-green:hover{color:#fff!important;background-color:#4CAF50!important}
.w3-light-green,.w3-hover-light-green:hover{color:#000!important;background-color:#8bc34a!important}
.w3-indigo,.w3-hover-indigo:hover{color:#fff!important;background-color:#3f51b5!important}
.w3-khaki,.w3-hover-khaki:hover{color:#000!important;background-color:#f0e68c!important}
.w3-lime,.w3-hover-lime:hover{color:#000!important;background-color:#cddc39!important}
.w3-orange,.w3-hover-orange:hover{color:#000!important;background-color:#ff9800!important}
.w3-deep-orange,.w3-hover-deep-orange:hover{color:#fff!important;background-color:#ff5722!important}
.w3-pink,.w3-hover-pink:hover{color:#fff!important;background-color:#e91e63!important}
.w3-purple,.w3-hover-purple:hover{color:#fff!important;background-color:#9c27b0!important}
.w3-deep-purple,.w3-hover-deep-purple:hover{color:#fff!important;background-color:#673ab7!important}
.w3-red,.w3-hover-red:hover{color:#fff!important;background-color:#f44336!important}
.w3-sand,.w3-hover-sand:hover{color:#000!important;background-color:#fdf5e6!important}
.w3-teal,.w3-hover-teal:hover{color:#fff!important;background-color:#009688!important}
.w3-yellow,.w3-hover-yellow:hover{color:#000!important;background-color:#ffeb3b!important}
.w3-white,.w3-hover-white:hover{color:#000!important;background-color:#fff!important}
.w3-black,.w3-hover-black:hover{color:#fff!important;background-color:#000!important}
.w3-grey,.w3-hover-grey:hover,.w3-gray,.w3-hover-gray:hover{color:#000!important;background-color:#9e9e9e!important}
.w3-light-grey,.w3-hover-light-grey:hover,.w3-light-gray,.w3-hover-light-gray:hover{color:#000!important;background-color:#f1f1f1!important}
.w3-dark-grey,.w3-hover-dark-grey:hover,.w3-dark-gray,.w3-hover-dark-gray:hover{color:#fff!important;background-color:#616161!important}
.w3-pale-red,.w3-hover-pale-red:hover{color:#000!important;background-color:#ffdddd!important}
.w3-pale-green,.w3-hover-pale-green:hover{color:#000!important;background-color:#ddffdd!important}
.w3-pale-yellow,.w3-hover-pale-yellow:hover{color:#000!important;background-color:#ffffcc!important}
.w3-pale-blue,.w3-hover-pale-blue:hover{color:#000!important;background-color:#ddffff!important}
.w3-text-amber,.w3-hover-text-amber:hover{color:#ffc107!important}
.w3-text-aqua,.w3-hover-text-aqua:hover{color:#00ffff!important}
.w3-text-blue,.w3-hover-text-blue:hover{color:#2196F3!important}
.w3-text-light-blue,.w3-hover-text-light-blue:hover{color:#87CEEB!important}
.w3-text-brown,.w3-hover-text-brown:hover{color:#795548!important}
.w3-text-cyan,.w3-hover-text-cyan:hover{color:#00bcd4!important}
.w3-text-blue-grey,.w3-hover-text-blue-grey:hover,.w3-text-blue-gray,.w3-hover-text-blue-gray:hover{color:#607d8b!important}
.w3-text-green,.w3-hover-text-green:hover{color:#4CAF50!important}
.w3-text-light-green,.w3-hover-text-light-green:hover{color:#8bc34a!important}
.w3-text-indigo,.w3-hover-text-indigo:hover{color:#3f51b5!important}
.w3-text-khaki,.w3-hover-text-khaki:hover{color:#b4aa50!important}
.w3-text-lime,.w3-hover-text-lime:hover{color:#cddc39!important}
.w3-text-orange,.w3-hover-text-orange:hover{color:#ff9800!important}
.w3-text-deep-orange,.w3-hover-text-deep-orange:hover{color:#ff5722!important}
.w3-text-pink,.w3-hover-text-pink:hover{color:#e91e63!important}
.w3-text-purple,.w3-hover-text-purple:hover{color:#9c27b0!important}
.w3-text-deep-purple,.w3-hover-text-deep-purple:hover{color:#673ab7!important}
.w3-text-red,.w3-hover-text-red:hover{color:#f44336!important}
.w3-text-sand,.w3-hover-text-sand:hover{color:#fdf5e6!important}
.w3-text-teal,.w3-hover-text-teal:hover{color:#009688!important}
.w3-text-yellow,.w3-hover-text-yellow:hover{color:#d2be0e!important}
.w3-text-white,.w3-hover-text-white:hover{color:#fff!important}
.w3-text-black,.w3-hover-text-black:hover{color:#000!important}
.w3-text-grey,.w3-hover-text-grey:hover,.w3-text-gray,.w3-hover-text-gray:hover{color:#757575!important}
.w3-text-light-grey,.w3-hover-text-light-grey:hover,.w3-text-light-gray,.w3-hover-text-light-gray:hover{color:#f1f1f1!important}
.w3-text-dark-grey,.w3-hover-text-dark-grey:hover,.w3-text-dark-gray,.w3-hover-text-dark-gray:hover{color:#3a3a3a!important}
.w3-border-amber,.w3-hover-border-amber:hover{border-color:#ffc107!important}
.w3-border-aqua,.w3-hover-border-aqua:hover{border-color:#00ffff!important}
.w3-border-blue,.w3-hover-border-blue:hover{border-color:#2196F3!important}
.w3-border-light-blue,.w3-hover-border-light-blue:hover{border-color:#87CEEB!important}
.w3-border-brown,.w3-hover-border-brown:hover{border-color:#795548!important}
.w3-border-cyan,.w3-hover-border-cyan:hover{border-color:#00bcd4!important}
.w3-border-blue-grey,.w3-hover-border-blue-grey:hover,.w3-border-blue-gray,.w3-hover-border-blue-gray:hover{border-color:#607d8b!important}
.w3-border-green,.w3-hover-border-green:hover{border-color:#4CAF50!important}
.w3-border-light-green,.w3-hover-border-light-green:hover{border-color:#8bc34a!important}
.w3-border-indigo,.w3-hover-border-indigo:hover{border-color:#3f51b5!important}
.w3-border-khaki,.w3-hover-border-khaki:hover{border-color:#f0e68c!important}
.w3-border-lime,.w3-hover-border-lime:hover{border-color:#cddc39!important}
.w3-border-orange,.w3-hover-border-orange:hover{border-color:#ff9800!important}
.w3-border-deep-orange,.w3-hover-border-deep-orange:hover{border-color:#ff5722!important}
.w3-border-pink,.w3-hover-border-pink:hover{border-color:#e91e63!important}
.w3-border-purple,.w3-hover-border-purple:hover{border-color:#9c27b0!important}
.w3-border-deep-purple,.w3-hover-border-deep-purple:hover{border-color:#673ab7!important}
.w3-border-red,.w3-hover-border-red:hover{border-color:#f44336!important}
.w3-border-sand,.w3-hover-border-sand:hover{border-color:#fdf5e6!important}
.w3-border-teal,.w3-hover-border-teal:hover{border-color:#009688!important}
.w3-border-yellow,.w3-hover-border-yellow:hover{border-color:#ffeb3b!important}
.w3-border-white,.w3-hover-border-white:hover{border-color:#fff!important}
.w3-border-black,.w3-hover-border-black:hover{border-color:#000!important}
.w3-border-grey,.w3-hover-border-grey:hover,.w3-border-gray,.w3-hover-border-gray:hover{border-color:#9e9e9e!important}
.w3-border-light-grey,.w3-hover-border-light-grey:hover,.w3-border-light-gray,.w3-hover-border-light-gray:hover{border-color:#f1f1f1!important}
.w3-border-dark-grey,.w3-hover-border-dark-grey:hover,.w3-border-dark-gray,.w3-hover-border-dark-gray:hover{border-color:#616161!important}
.w3-border-pale-red,.w3-hover-border-pale-red:hover{border-color:#ffe7e7!important}.w3-border-pale-green,.w3-hover-border-pale-green:hover{border-color:#e7ffe7!important}
.w3-border-pale-yellow,.w3-hover-border-pale-yellow:hover{border-color:#ffffcc!important}.w3-border-pale-blue,.w3-hover-border-pale-blue:hover{border-color:#e7ffff!important}
.amber,.hover-amber:hover{color:#000!important;background-color:#ffc107!important}
.aqua,.hover-aqua:hover{color:#000!important;background-color:#00ffff!important}
.blue,.hover-blue:hover{color:#fff!important;background-color:#2196F3!important}
.light-blue,.hover-light-blue:hover{color:#000!important;background-color:#87CEEB!important}
.brown,.hover-brown:hover{color:#fff!important;background-color:#795548!important}
.cyan,.hover-cyan:hover{color:#000!important;background-color:#00bcd4!important}
.blue-grey,.hover-blue-grey:hover,.blue-gray,.hover-blue-gray:hover{color:#fff!important;background-color:#607d8b!important}
.green,.hover-green:hover{color:#fff!important;background-color:#4CAF50!important}
.light-green,.hover-light-green:hover{color:#000!important;background-color:#8bc34a!important}
.indigo,.hover-indigo:hover{color:#fff!important;background-color:#3f51b5!important}
.khaki,.hover-khaki:hover{color:#000!important;background-color:#f0e68c!important}
.lime,.hover-lime:hover{color:#000!important;background-color:#cddc39!important}
.orange,.hover-orange:hover{color:#000!important;background-color:#ff9800!important}
.deep-orange,.hover-deep-orange:hover{color:#fff!important;background-color:#ff5722!important}
.pink,.hover-pink:hover{color:#fff!important;background-color:#e91e63!important}
.purple,.hover-purple:hover{color:#fff!important;background-color:#9c27b0!important}
.deep-purple,.hover-deep-purple:hover{color:#fff!important;background-color:#673ab7!important}
.red,.hover-red:hover{color:#fff!important;background-color:#f44336!important}
.sand,.hover-sand:hover{color:#000!important;background-color:#fdf5e6!important}
.teal,.hover-teal:hover{color:#fff!important;background-color:#009688!important}
.yellow,.hover-yellow:hover{color:#000!important;background-color:#ffeb3b!important}
.white,.hover-white:hover{color:#000!important;background-color:#fff!important}
.black,.hover-black:hover{color:#fff!important;background-color:#000!important}
.grey,.hover-grey:hover,.gray,.hover-gray:hover{color:#000!important;background-color:#9e9e9e!important}
.light-grey,.hover-light-grey:hover,.light-gray,.hover-light-gray:hover{color:#000!important;background-color:#f1f1f1!important}
.dark-grey,.hover-dark-grey:hover,.dark-gray,.hover-dark-gray:hover{color:#fff!important;background-color:#616161!important}
.pale-red,.hover-pale-red:hover{color:#000!important;background-color:#ffdddd!important}
.pale-green,.hover-pale-green:hover{color:#000!important;background-color:#ddffdd!important}
.pale-yellow,.hover-pale-yellow:hover{color:#000!important;background-color:#ffffcc!important}
.pale-blue,.hover-pale-blue:hover{color:#000!important;background-color:#ddffff!important}
.text-amber,.hover-text-amber:hover{color:#ffc107!important}
.text-aqua,.hover-text-aqua:hover{color:#00ffff!important}
.text-blue,.hover-text-blue:hover{color:#2196F3!important}
.text-light-blue,.hover-text-light-blue:hover{color:#87CEEB!important}
.text-brown,.hover-text-brown:hover{color:#795548!important}
.text-cyan,.hover-text-cyan:hover{color:#00bcd4!important}
.text-blue-grey,.hover-text-blue-grey:hover,.text-blue-gray,.hover-text-blue-gray:hover{color:#607d8b!important}
.text-green,.hover-text-green:hover{color:#4CAF50!important}
.text-light-green,.hover-text-light-green:hover{color:#8bc34a!important}
.text-indigo,.hover-text-indigo:hover{color:#3f51b5!important}
.text-khaki,.hover-text-khaki:hover{color:#b4aa50!important}
.text-lime,.hover-text-lime:hover{color:#cddc39!important}
.text-orange,.hover-text-orange:hover{color:#ff9800!important}
.text-deep-orange,.hover-text-deep-orange:hover{color:#ff5722!important}
.text-pink,.hover-text-pink:hover{color:#e91e63!important}
.text-purple,.hover-text-purple:hover{color:#9c27b0!important}
.text-deep-purple,.hover-text-deep-purple:hover{color:#673ab7!important}
.text-red,.hover-text-red:hover{color:#f44336!important}
.text-sand,.hover-text-sand:hover{color:#fdf5e6!important}
.text-teal,.hover-text-teal:hover{color:#009688!important}
.text-yellow,.hover-text-yellow:hover{color:#d2be0e!important}
.text-white,.hover-text-white:hover{color:#fff!important}
.text-black,.hover-text-black:hover{color:#000!important}
.text-grey,.hover-text-grey:hover,.text-gray,.hover-text-gray:hover{color:#757575!important}
.text-light-grey,.hover-text-light-grey:hover,.text-light-gray,.hover-text-light-gray:hover{color:#f1f1f1!important}
.text-dark-grey,.hover-text-dark-grey:hover,.text-dark-gray,.hover-text-dark-gray:hover{color:#3a3a3a!important}
.border-amber,.hover-border-amber:hover{border-color:#ffc107!important}
.border-aqua,.hover-border-aqua:hover{border-color:#00ffff!important}
.border-blue,.hover-border-blue:hover{border-color:#2196F3!important}
.border-light-blue,.hover-border-light-blue:hover{border-color:#87CEEB!important}
.border-brown,.hover-border-brown:hover{border-color:#795548!important}
.border-cyan,.hover-border-cyan:hover{border-color:#00bcd4!important}
.border-blue-grey,.hover-border-blue-grey:hover,.border-blue-gray,.hover-border-blue-gray:hover{border-color:#607d8b!important}
.border-green,.hover-border-green:hover{border-color:#4CAF50!important}
.border-light-green,.hover-border-light-green:hover{border-color:#8bc34a!important}
.border-indigo,.hover-border-indigo:hover{border-color:#3f51b5!important}
.border-khaki,.hover-border-khaki:hover{border-color:#f0e68c!important}
.border-lime,.hover-border-lime:hover{border-color:#cddc39!important}
.border-orange,.hover-border-orange:hover{border-color:#ff9800!important}
.border-deep-orange,.hover-border-deep-orange:hover{border-color:#ff5722!important}
.border-pink,.hover-border-pink:hover{border-color:#e91e63!important}
.border-purple,.hover-border-purple:hover{border-color:#9c27b0!important}
.border-deep-purple,.hover-border-deep-purple:hover{border-color:#673ab7!important}
.border-red,.hover-border-red:hover{border-color:#f44336!important}
.border-sand,.hover-border-sand:hover{border-color:#fdf5e6!important}
.border-teal,.hover-border-teal:hover{border-color:#009688!important}
.border-yellow,.hover-border-yellow:hover{border-color:#ffeb3b!important}
.border-white,.hover-border-white:hover{border-color:#fff!important}
.border-black,.hover-border-black:hover{border-color:#000!important}
.border-grey,.hover-border-grey:hover,.border-gray,.hover-border-gray:hover{border-color:#9e9e9e!important}
.border-light-grey,.hover-border-light-grey:hover,.border-light-gray,.hover-border-light-gray:hover{border-color:#f1f1f1!important}
.border-dark-grey,.hover-border-dark-grey:hover,.border-dark-gray,.hover-border-dark-gray:hover{border-color:#616161!important}
.border-pale-red,.hover-border-pale-red:hover{border-color:#ffe7e7!important}.border-pale-green,.hover-border-pale-green:hover{border-color:#e7ffe7!important}
.border-pale-yellow,.hover-border-pale-yellow:hover{border-color:#ffffcc!important}.border-pale-blue,.hover-border-pale-blue:hover{border-color:#e7ffff!important}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,13 @@
Background color,Foreground color,name
#000000,#FFFFFF,Black,White
#000000,#CCCCCC,Black,Silver
#000000,#FFFF00,Black,Yellow
#000000,#FFCC66,Black,Goldenrod
#000000,#FF9900,Black,Orange
#000000,#00FF00,Black,Green
#000000,#00FFFF,Black,Cyan
#000000,#FF00FF,Black,Magenta
#696969,#DDDDDD,,
#4c26bc,#b7dc46,,
#eaef42,#1e14c0,,
#591513,#a3e7e9,,
1 Background color,Foreground color,name
2 #000000,#FFFFFF,Black,White
3 #000000,#CCCCCC,Black,Silver
4 #000000,#FFFF00,Black,Yellow
5 #000000,#FFCC66,Black,Goldenrod
6 #000000,#FF9900,Black,Orange
7 #000000,#00FF00,Black,Green
8 #000000,#00FFFF,Black,Cyan
9 #000000,#FF00FF,Black,Magenta
10 #696969,#DDDDDD,,
11 #4c26bc,#b7dc46,,
12 #eaef42,#1e14c0,,
13 #591513,#a3e7e9,,

View File

@ -8,7 +8,7 @@ window.handle.width: 4
window.active.label.text.font: shadow=y:shadowtint=70:shadowoffset=1
window.inactive.label.text.font: shadow=y:shadowtint=20:shadowoffset=1
*.active.border.color: #292929
*.active.border.color: #EEEEEE
*.inactive.border.color: #292929
window.active.grip.bg: parentrelative

View File

@ -0,0 +1,5 @@
#define close_width 12
#define close_height 12
static unsigned char close_bits[] = {
0x00, 0x00, 0x06, 0x06, 0x0e, 0x07, 0x9c, 0x03, 0xb8, 0x01, 0x70, 0x00,
0xe0, 0x00, 0xd8, 0x01, 0x9c, 0x03, 0x0e, 0x07, 0x06, 0x06, 0x00, 0x00 };

View File

@ -0,0 +1,5 @@
#define close_hover_width 12
#define close_hover_height 12
static unsigned char close_hover_bits[] = {
0x00, 0x00, 0x06, 0x06, 0x0e, 0x07, 0x9c, 0x03, 0x98, 0x01, 0x00, 0x00,
0x00, 0x00, 0x98, 0x01, 0x9c, 0x03, 0x0e, 0x07, 0x06, 0x06, 0x00, 0x00 };

View File

@ -0,0 +1,5 @@
#define close_pressed_width 12
#define close_pressed_height 12
static unsigned char close_pressed_bits[] = {
0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00 };

View File

@ -0,0 +1,5 @@
#define desk_width 12
#define desk_height 12
static unsigned char desk_bits[] = {
0x00, 0x00, 0x9e, 0x07, 0x9e, 0x04, 0x9e, 0x04, 0x9e, 0x07, 0x00, 0x00,
0x00, 0x00, 0x9e, 0x07, 0x92, 0x04, 0x92, 0x04, 0x9e, 0x07, 0x00, 0x00 };

View File

@ -0,0 +1,5 @@
#define desk_hover_width 12
#define desk_hover_height 12
static unsigned char desk_hover_bits[] = {
0x00, 0x00, 0x9e, 0x07, 0x9e, 0x07, 0x9e, 0x07, 0x9e, 0x07, 0x00, 0x00,
0x00, 0x00, 0x9e, 0x07, 0x9e, 0x07, 0x9e, 0x07, 0x9e, 0x07, 0x00, 0x00 };

View File

@ -0,0 +1,5 @@
#define desk_pressed_width 12
#define desk_pressed_height 12
static unsigned char desk_pressed_bits[] = {
0x00, 0x00, 0x02, 0x04, 0x0c, 0x03, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x0c, 0x03, 0x0c, 0x03, 0x02, 0x04, 0x00, 0x00 };

View File

@ -0,0 +1,5 @@
#define desk_toggled_width 12
#define desk_toggled_height 12
static unsigned char desk_toggled_bits[] = {
0x00, 0x00, 0x9e, 0x07, 0x9e, 0x07, 0x9e, 0x07, 0x9e, 0x07, 0x00, 0x00,
0x00, 0x00, 0x9e, 0x07, 0x9e, 0x07, 0x9e, 0x07, 0x9e, 0x07, 0x00, 0x00 };

View File

@ -0,0 +1,5 @@
#define desk_toggled_hover_width 12
#define desk_toggled_hover_height 12
static unsigned char desk_toggled_hover_bits[] = {
0x00, 0x00, 0x9e, 0x07, 0x9e, 0x04, 0x9e, 0x04, 0x9e, 0x07, 0x00, 0x00,
0x00, 0x00, 0x9e, 0x07, 0x92, 0x04, 0x92, 0x04, 0x9e, 0x07, 0x00, 0x00 };

View File

@ -0,0 +1,5 @@
#define desk_toggled_pressed_width 12
#define desk_toggled_pressed_height 12
static unsigned char desk_toggled_pressed_bits[] = {
0x00, 0x00, 0x02, 0x04, 0x0c, 0x03, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x0c, 0x03, 0x0c, 0x03, 0x02, 0x04, 0x00, 0x00 };

View File

@ -0,0 +1,5 @@
#define iconify_width 12
#define iconify_height 12
static unsigned char iconify_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x07, 0xfe, 0x07, 0x00, 0x00 };

View File

@ -0,0 +1,5 @@
#define iconify_hover_width 12
#define iconify_hover_height 12
static unsigned char iconify_hover_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0xfc, 0x03, 0x00, 0x00 };

View File

@ -0,0 +1,5 @@
#define iconify_pressed_width 12
#define iconify_pressed_height 12
static unsigned char iconify_pressed_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0xf8, 0x01, 0x00, 0x00 };

View File

@ -0,0 +1,5 @@
#define max_width 12
#define max_height 12
static unsigned char max_bits[] = {
0x00, 0x00, 0xfe, 0x07, 0xfe, 0x07, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04,
0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0xfe, 0x07, 0x00, 0x00 };

View File

@ -0,0 +1,5 @@
#define max_hover_width 12
#define max_hover_height 12
static unsigned char max_hover_bits[] = {
0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0x01, 0x08, 0x01, 0x08, 0x01, 0x08,
0x01, 0x08, 0x01, 0x08, 0x01, 0x08, 0x01, 0x08, 0x01, 0x08, 0xff, 0x0f };

View File

@ -0,0 +1,5 @@
#define max_toggled_width 12
#define max_toggled_height 12
static unsigned char max_toggled_bits[] = {
0xf0, 0x0f, 0xf0, 0x0f, 0x10, 0x08, 0x10, 0x08, 0xff, 0x08, 0xff, 0x08,
0x81, 0x08, 0x81, 0x0f, 0x81, 0x00, 0x81, 0x00, 0x81, 0x00, 0xff, 0x00 };

View File

@ -0,0 +1,5 @@
#define max_toggled_hover_width 12
#define max_toggled_hover_height 12
static unsigned char max_toggled_hover_bits[] = {
0x00, 0x09, 0x00, 0x05, 0x00, 0x03, 0x00, 0x0f, 0xff, 0x00, 0xff, 0x00,
0x81, 0x00, 0x81, 0x00, 0x81, 0x00, 0x81, 0x00, 0x81, 0x00, 0xff, 0x00 };

View File

@ -0,0 +1,5 @@
#define shade_width 12
#define shade_height 12
static unsigned char shade_bits[] = {
0x00, 0x00, 0x60, 0x00, 0xf0, 0x00, 0xf8, 0x01, 0xfc, 0x03, 0xfe, 0x07,
0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,5 @@
#define shade_hover_width 12
#define shade_hover_height 12
static unsigned char shade_hover_bits[] = {
0x00, 0x00, 0xfe, 0x07, 0xfe, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,5 @@
#define shade_pressed_width 12
#define shade_pressed_height 12
static unsigned char shade_pressed_bits[] = {
0x00, 0x00, 0xf8, 0x01, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,5 @@
#define shade_toggled_width 12
#define shade_toggled_height 12
static unsigned char shade_toggled_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
0xfe, 0x07, 0xfc, 0x03, 0xf8, 0x01, 0xf0, 0x00, 0x60, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,5 @@
#define shade_toggled_hover_width 12
#define shade_toggled_hover_height 12
static unsigned char shade_toggled_hover_bits[] = {
0x00, 0x00, 0xfe, 0x07, 0xfe, 0x07, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04,
0x02, 0x04, 0x02, 0x04, 0xfe, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,6 @@
#define close_width 14
#define close_height 14
static unsigned char close_bits[] = {
0x00, 0x00, 0x0e, 0x1c, 0x1e, 0x1e, 0x3e, 0x1f, 0x7c, 0x0f, 0xf8, 0x06,
0xf0, 0x01, 0xe0, 0x03, 0xd8, 0x07, 0xbc, 0x0f, 0x3e, 0x1f, 0x1e, 0x1e,
0x0e, 0x1c, 0x00, 0x00 };

View File

@ -0,0 +1,6 @@
#define close_hover_width 14
#define close_hover_height 14
static unsigned char close_hover_bits[] = {
0x00, 0x00, 0x0e, 0x1c, 0x1e, 0x1e, 0x3e, 0x1f, 0x3c, 0x0f, 0x38, 0x07,
0x00, 0x00, 0x00, 0x00, 0x38, 0x07, 0x3c, 0x0f, 0x3e, 0x1f, 0x1e, 0x1e,
0x0e, 0x1c, 0x00, 0x00 };

View File

@ -0,0 +1,6 @@
#define close_pressed_width 14
#define close_pressed_height 14
static unsigned char close_pressed_bits[] = {
0x00, 0x00, 0x0e, 0x1c, 0x0e, 0x1c, 0x0e, 0x1c, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x1c, 0x0e, 0x1c,
0x0e, 0x1c, 0x00, 0x00 };

View File

@ -0,0 +1,6 @@
#define desk_width 14
#define desk_height 14
static unsigned char desk_bits[] = {
0x00, 0x00, 0x3e, 0x1f, 0x3e, 0x11, 0x3e, 0x11, 0x3e, 0x11, 0x3e, 0x1f,
0x00, 0x00, 0x00, 0x00, 0x3e, 0x1f, 0x22, 0x11, 0x22, 0x11, 0x22, 0x11,
0x3e, 0x1f, 0x00, 0x00 };

View File

@ -0,0 +1,6 @@
#define desk_hover_width 14
#define desk_hover_height 14
static unsigned char desk_hover_bits[] = {
0x00, 0x00, 0x3e, 0x1f, 0x3e, 0x1f, 0x3e, 0x1f, 0x3e, 0x1f, 0x3e, 0x1f,
0x00, 0x00, 0x00, 0x00, 0x3e, 0x1f, 0x3e, 0x1f, 0x3e, 0x1f, 0x3e, 0x1f,
0x3e, 0x1f, 0x00, 0x00 };

View File

@ -0,0 +1,6 @@
#define desk_pressed_width 14
#define desk_pressed_height 14
static unsigned char desk_pressed_bits[] = {
0x00, 0x00, 0x06, 0x18, 0x1e, 0x1e, 0x1c, 0x0e, 0x1c, 0x0e, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x0e, 0x1c, 0x0e, 0x1e, 0x1e,
0x06, 0x18, 0x00, 0x00 };

View File

@ -0,0 +1,6 @@
#define desk_toggled_width 14
#define desk_toggled_height 14
static unsigned char desk_toggled_bits[] = {
0x00, 0x00, 0x3e, 0x1f, 0x3e, 0x1f, 0x3e, 0x1f, 0x3e, 0x1f, 0x3e, 0x1f,
0x00, 0x00, 0x00, 0x00, 0x3e, 0x1f, 0x3e, 0x1f, 0x3e, 0x1f, 0x3e, 0x1f,
0x3e, 0x1f, 0x00, 0x00 };

View File

@ -0,0 +1,6 @@
#define desk_toggled_hover_width 14
#define desk_toggled_hover_height 14
static unsigned char desk_toggled_hover_bits[] = {
0x00, 0x00, 0x3e, 0x1f, 0x3e, 0x11, 0x3e, 0x11, 0x3e, 0x11, 0x3e, 0x1f,
0x00, 0x00, 0x00, 0x00, 0x3e, 0x1f, 0x22, 0x11, 0x22, 0x11, 0x22, 0x11,
0x3e, 0x1f, 0x00, 0x00 };

View File

@ -0,0 +1,6 @@
#define desk_toggled_pressed_width 14
#define desk_toggled_pressed_height 14
static unsigned char desk_toggled_pressed_bits[] = {
0x00, 0x00, 0x06, 0x18, 0x1e, 0x1e, 0x1c, 0x0e, 0x1c, 0x0e, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x0e, 0x1c, 0x0e, 0x1e, 0x1e,
0x06, 0x18, 0x00, 0x00 };

View File

@ -0,0 +1,6 @@
#define iconify_width 14
#define iconify_height 14
static unsigned char iconify_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x1f, 0xfe, 0x1f,
0xfe, 0x1f, 0x00, 0x00 };

View File

@ -0,0 +1,6 @@
#define iconify_hover_width 14
#define iconify_hover_height 14
static unsigned char iconify_hover_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x07,
0x00, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,6 @@
#define iconify_pressed_width 14
#define iconify_pressed_height 14
static unsigned char iconify_pressed_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x3f,
0xff, 0x3f, 0x00, 0x00 };

View File

@ -0,0 +1,6 @@
#define max_width 14
#define max_height 14
static unsigned char max_bits[] = {
0x00, 0x00, 0xfe, 0x1f, 0xfe, 0x1f, 0xfe, 0x1f, 0x02, 0x10, 0x02, 0x10,
0x02, 0x10, 0x02, 0x10, 0x02, 0x10, 0x02, 0x10, 0x02, 0x10, 0x02, 0x10,
0xfe, 0x1f, 0x00, 0x00 };

View File

@ -0,0 +1,6 @@
#define max_hover_width 14
#define max_hover_height 14
static unsigned char max_hover_bits[] = {
0xff, 0x3f, 0xff, 0x3f, 0xff, 0x3f, 0xff, 0x3f, 0x03, 0x30, 0x03, 0x30,
0x03, 0x30, 0x03, 0x30, 0x03, 0x30, 0x03, 0x30, 0x03, 0x30, 0x03, 0x30,
0xff, 0x3f, 0xff, 0x3f };

View File

@ -0,0 +1,6 @@
#define max_toggled_width 14
#define max_toggled_height 14
static unsigned char max_toggled_bits[] = {
0xe0, 0x3f, 0xe0, 0x3f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xff, 0x21,
0xff, 0x21, 0x01, 0x21, 0x01, 0x3f, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0xff, 0x01 };

View File

@ -0,0 +1,6 @@
#define max_toggled_hover_width 14
#define max_toggled_hover_height 14
static unsigned char max_toggled_hover_bits[] = {
0x00, 0x22, 0x00, 0x12, 0x00, 0x0a, 0x00, 0x06, 0x00, 0x3e, 0xff, 0x01,
0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0xff, 0x01 };

View File

@ -0,0 +1,6 @@
#define shade_width 14
#define shade_height 14
static unsigned char shade_bits[] = {
0xc0, 0x00, 0xe0, 0x01, 0xf0, 0x03, 0xf8, 0x07, 0xfc, 0x0f, 0xfe, 0x1f,
0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00,
0x00, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,6 @@
#define shade_hover_width 14
#define shade_hover_height 14
static unsigned char shade_hover_bits[] = {
0x00, 0x00, 0xfe, 0x1f, 0xfe, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,6 @@
#define shade_pressed_width 14
#define shade_pressed_height 14
static unsigned char shade_pressed_bits[] = {
0x00, 0x00, 0xff, 0x3f, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,6 @@
#define shade_toggled_width 14
#define shade_toggled_height 14
static unsigned char shade_toggled_bits[] = {
0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00,
0xc0, 0x00, 0xc0, 0x00, 0xfe, 0x1f, 0xfc, 0x0f, 0xf8, 0x07, 0xf0, 0x03,
0xe0, 0x01, 0xc0, 0x00 };

View File

@ -0,0 +1,6 @@
#define shade_toggled_hover_width 14
#define shade_toggled_hover_height 14
static unsigned char shade_toggled_hover_bits[] = {
0x00, 0x00, 0xfe, 0x1f, 0xfe, 0x1f, 0x02, 0x10, 0x02, 0x10, 0x02, 0x10,
0x02, 0x10, 0x02, 0x10, 0x02, 0x10, 0x02, 0x10, 0xfe, 0x1f, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00 };