Compare commits

...

82 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
Daniel Napora d6d5c85b29 conky module improvements 2023-01-11 12:30:15 +01:00
Daniel Napora 7f86da54be use menu colors,position 2023-01-10 15:23:33 +01:00
Daniel Napora 72ad7ba4c1 checkupdates fix 2023-01-08 02:26:59 +01:00
Daniel Napora 34b1503e8d upd 2023-01-08 01:22:16 +01:00
Daniel Napora 661a120efb more on conky handling 2023-01-07 23:10:48 +01:00
Daniel Napora 997222b9ab upd 2023-01-05 19:42:32 +01:00
Daniel Napora 9ea2e57349 upd 2023-01-05 19:28:22 +01:00
Daniel Napora df900b8961 start work to handle foreign Conkys 2023-01-05 19:02:40 +01:00
Daniel Napora 0f088cb864 main window upd 2022-12-30 08:38:43 +01:00
Daniel Napora 05ca4a7fea fix obtheme from wp dark and light 2022-12-28 12:43:26 +01:00
Daniel Napora 1398be067c randomizer small fixes 2022-12-25 19:48:00 +01:00
Daniel Napora f42d8e040a upd 2022-12-23 22:51:29 +01:00
Daniel Napora af889291cf upd 2022-12-23 13:48:01 +01:00
Daniel Napora 53748b45d0 wall2theme completed 2022-12-23 11:10:27 +01:00
Daniel Napora f194a8dd21 upd 2022-12-22 02:33:00 +01:00
Daniel Napora 9ce4ec0442 Conky 2022-12-21 10:43:12 +01:00
Daniel Napora 320a9e986f upd 2022-12-20 09:46:47 +01:00
Daniel Napora 01a532e80c main window update 2022-12-20 00:35:35 +01:00
Daniel Napora 66ef501bae big update 2022-12-19 22:22:23 +01:00
Daniel Napora 4d3c79a930 glyphs 2022-12-17 12:50:10 +01:00
Daniel Napora d2214decdc upd 2022-12-17 12:12:52 +01:00
Daniel Napora 52ed781df7 upd 2022-12-08 17:48:55 +01:00
Daniel Napora 9001278bfc small fixes 2022-12-03 18:44:36 +01:00
Daniel Napora 76ac2a37aa big conky update 2022-12-03 16:23:34 +01:00
Daniel Napora 4dfcccc9eb conky context menu improvements 2022-11-21 12:31:17 +01:00
Daniel Napora 37a0fcb5e4 conky module update 2022-10-27 01:10:17 +02:00
Daniel Napora b39ca72853 conky module improvements 2022-10-17 14:48:35 +02:00
Daniel Napora f132019078 conky contextmenu pick colors fix 2022-10-15 12:19:57 +02:00
Daniel Napora 4d6499568a conky context menu - initial 2022-10-05 19:44:22 +02:00
Daniel Napora 52141e5c80 checkupdates disable unnecesary aur checking 2022-09-29 00:18:06 +02:00
Daniel Napora 6666e1dc50 small fixes 2022-09-26 10:02:47 +02:00
Daniel Napora 4fb6e64b10 choose actions also for populart accent colors 2022-09-21 15:06:03 +02:00
Daniel Napora 2a438d003c gradient reverse for menus 2022-09-21 13:37:15 +02:00
Daniel Napora 0e5a3f9c6b fix conky session file update 2022-09-21 00:27:41 +02:00
109 changed files with 7306 additions and 1531 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*)
@ -42,17 +44,17 @@ case "$1" in
-g)
CONKYPID=$(pgrep -f sysinfo_graph_mbcolor)
;;
*)
:
-m)
CONKYPID=$(pgrep -f mabox_info_mbcolor)
;;
esac
if [ -f /tmp/"$CONKYPID" ]; then
PKGS=$(pamac checkupdates -aq| wc -l)
PKGS=$(checkupdates | wc -l)
if [ "$PKGS" != "0" ]; then
if [[ "$update_notifications" == "true" ]];then
notify-send.sh -t 0 -i mbcc "$AVAIL_UPDATES" "$PKGS_TO_UPDATE $PKGS" -o "$YAY_UPD:terminator -T '$YAY_UPD' -e yay" \
notify-send.sh -u critical -i mbcc "$AVAIL_UPDATES" "$PKGS_TO_UPDATE $PKGS" -o "$YAY_UPD:terminator -T '$YAY_UPD' -e yay" \
-o "$PAMAC_UPD:pamac-manager --updates" -o "$DISABLE:mb-setvar update_notifications=false ${CNF_FILE}"
fi
printf "\${font}\${alignr} $AVAIL_UPDATES: \${color red}"
@ -61,5 +63,5 @@ if [ -f /tmp/"$CONKYPID" ]; then
printf "\${font}\${color}\${alignr} $UPTODATE"
fi
else
echo "$SUM" > /tmp/${CONKYPID}
echo "$1" > /tmp/"${CONKYPID}"
fi

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,92 +23,48 @@ 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
# 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=accent
# Different colors for each/some Conkys: yes or no
conky_diff_colors=yes
# Gradients: change openbox theme? (active window titlebar)
gradient_obtheme=yes
# Gradients: change menu/panels background?
gradient_menu=yes
# Gradients: change Conky bg colors based on gradient
gradient_conkies=no
gradient_menu=no
EOF
# Copy new nitrogen wrapper
cp -a /usr/share/mabox/common/wrappers/nitrogen ~/.local/bin/
fi
source "$CNF_FILE"
case "$LANG" in
pl*)
REGENERATE="(Re)Generuj..."
REGENERATE="(Re)Generuj z kolorów tapety..."
REGENERATEALL="Regeneruj wszystko"
ASCONFIGURED="wg konfiguracji"
REVERSE="odwrotnie"
CURRENTCONF="Obecna konfiguracja"
MODULES="Moduły"
OBTHEME="Motyw Openbox"
MENUPANELS="Menu i Panele"
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>"
USERWALLPAPER="Tapety <b>użytkownika</b>"
GRADIENTS="Gradienty"
PRE_GRADIENTS="Gotowe Gradienty"
PRE_GRADIENTS="Gradienty"
GRAD_OB="Stosować do motywu OpenBox?"
GRAD_MENU="Stosować do Menu/Paneli?"
GRAD_CONKY="Stosować do Conky?"
SETTINGS_AND_HELP="Pomoc i Ustawienia"
SETTINGS="Ustawienia"
COLORIZER_SETTINGS="Ustawienia Colorizera"
AUTOGEN_THEMES="Autogenerowanie motywów?"
GENERATETHEMES="Generować motywy po zmianie tapety?"
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"
@ -136,47 +92,29 @@ 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="Pomoc"
HELP="Okno główne i Pomoc"
RESET_COLORS="Resetuj kolory"
RESET_CHOOSE="Resetuj..."
RESET_SEP="Resetuj kolory dla"
RES_OB_WD="Dekoracje okien OpenBox"
RES_CONKY="Conky"
RES_MENU="Menu i Paneli"
RES_ALL="Wszystko <i>(OB, menu, conky)</i>"
COLORIZE="Szybko Pokoloruj lub Resetuj..."
;;
*)
REGENERATE="(Re)Generate..."
REGENERATE="(Re)Generate from wallpaper colors..."
REGENERATEALL="Regenerate all"
ASCONFIGURED="as configured"
REVERSE="reverse"
CURRENTCONF="Current configuration"
MODULES="Modules"
OBTHEME="Openbox Theme"
MENUPANELS="Menus/Panels"
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"
@ -188,11 +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?"
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"
@ -210,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"
@ -220,11 +154,16 @@ 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="About and Help"
HELP="Main Window and Help"
RESET_COLORS="Reset Colors"
RESET_CHOOSE="Reset..."
RESET_SEP="Reset Colors of ..."
RES_OB_WD="OpenBox Window Decorations"
RES_CONKY="Conkies"
RES_MENU="Menus / Panels"
RES_ALL="All <i>(OB, menus, conky)</i>"
COLORIZE="Quickly Colorize or Reset..."
;;
esac
@ -240,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
@ -259,109 +208,74 @@ mint+=("#6cabcd" "#5b73c4" "#aa876a" "#9d9d9d" "#db9d61" "#c76199" "#8c6ec9" "#c
out+=("^sep(Mabox Colorizer)")
out+=(" $REGENERATE,^checkout(regen)")
out2+=("^tag(regen)")
out2+=("^sep($REGENERATEALL)")
out2+=(" $ASCONFIGURED,w2theme colorize;colorizer -s")
out2+=(" $REVERSE,w2theme reverse;colorizer -s")
#out2+=("^sep($CURRENTCONF)")
#out2+=("$MENUPANELS [ <b>${wall2themes_menu}</b> ],^checkout(mp)")
#out2+=("Conky [ <b>${wall2themes_conky}</b> ],^checkout(conky)")
#out2+=("PyRadio [ <b>${wall2themes_pyradio}</b> ],^checkout(pyradio)")
out+=(" $COLORIZE,^pipe(randomizer c)")
out+=("^sep($MODULES)")
out+=("$OBTHEME,^pipe(colorizer-ob)")
out+=("Conky,^pipe(colorizer-conky)")
out+=("$MENUPANELS,^pipe(colorizer-menus)")
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,^pipe(colorizer-pyradio)")
fi
#if pgrep -f pyradio >/dev/null ;then
# out+=("^sep()")
out+=("PyRadio,colorizer-pyradio -s")
#fi
out+=("^sep($WALLCOLORS)")
[[ $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")
#if pgrep -f cava >/dev/null ;then
# out+=("^sep()")
out+=("$CAVA,colorizer-cava -s")
#fi
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 out2+=("<tt><small>$i</small> <span bgcolor='$i'> </span></tt>,w2theme accent '${i}';colorizer -s");done
out2+=("^sep(Mint)")
for i in ${mint[@]};do out2+=("<tt><small>$i</small> <span bgcolor='$i'> </span></tt>,w2theme accent '${i}';colorizer -s");done
out2+=("^sep(Plasma)")
for i in ${plasma[@]};do out2+=("<tt><small>$i</small> <span bgcolor='$i'> </span></tt>,w2theme accent '${i}';colorizer -s");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")
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()")
out+=("$WALLPAPERS,^checkout(wallpapersettings)")
fi
if [[ "$gradient_obtheme" == "yes" || "$gradient_menu" == "yes" || "gradient_conkies" == "yes" ]];then
out+=("^sep($GRADIENTS)")
out+=("$PRE_GRADIENTS,^pipe(mbgrad)")
out+=("^sep($SETTINGS)")
out+=(" $SETTINGS,^checkout(settings)")
LNG=${LANG:0:2}
if [[ -f "/usr/share/mabox-colorizer/help/$LNG.html" ]];then
out+=(" $HELP,yhtml /usr/share/mabox-colorizer/help/$LNG.html 'Mabox Colorizer'")
else
out+=(" $HELP,yhtml /usr/share/mabox-colorizer/help/en.html 'Mabox Colorizer'")
fi
### RESET ACTIONS (replaced by Randomizer)
#out+=("^sep($RESET_COLORS)")
#out+=("$RESET_CHOOSE,^checkout(resetroot)")
#out2+=("^tag(resetroot)")
#out2+=("^sep($RESET_SEP)")
#out2+=("$RES_OB_WD,obtctl resetMBcolors;colorizer -s")
#out2+=("$RES_MENU,jgctl reset;colorizer -s")
#out2+=("$RES_CONKY,conkyctl resetcolorsall;colorizer -s")
#out2+=("^sep()")
#out2+=("\"\"\"$RES_ALL\"\"\",obtctl resetMBcolors;conkyctl resetcolorsall;jgctl reset;colorizer -s")
if [[ "$related_tools" == "show" ]];then
out+=(". $CUSTOM_COMMANDS_FILE")
fi
@ -369,124 +283,75 @@ fi
#out+=("^sep()")
#out+=("Pin current colors to wallpaper")
###
out+=("^sep($SETTINGS_AND_HELP)")
out+=(" $SETTINGS,^checkout(settings)")
out2+=("^tag(settings)")
out2+=("^sep($COLORIZER_SETTINGS)")
if [[ -f "$HOME/.config/tint2/launcherapps/colorizer.desktop" ]]; then
out2+=("$DELETELAUNCHER,rm ~/.config/tint2/launcherapps/colorizer.desktop;killall -SIGUSR1 tint2;colorizer -s")
#out2+=("$WALLPAPERS,^checkout(wallpapersettings)")
out3+=("^tag(wallpapersettings)")
out3+=("^sep($SYSWALLPAPER ($syswallp))")
out3+=("^sep(<i>/usr/share/backgrounds</i>)")
out3+=(" $OPENDIR,xdg-open /usr/share/backgrounds")
out3+=(" $OPENDIR_VIEWNIOR,viewnior /usr/share/backgrounds")
out3+=(" $SETRANDOM,nitrogen --random /usr/share/backgrounds --set-scaled --save;colorizer -s")
out3+=("^sep($USERWALLPAPER ($userwallp))")
if [[ -d "${user_wallpapers_dir}" ]]; then
# dir exist
out3+=("^sep(<i>${user_wallpapers_dir}</i>)")
out3+=(" $OPENDIR ,xdg-open ${user_wallpapers_dir}")
out3+=(" $OPENDIR_VIEWNIOR ,viewnior ${user_wallpapers_dir}")
out3+=(" $SETRANDOM,nitrogen --random ${user_wallpapers_dir} --set-scaled --save;colorizer -s")
out3+=("^sep()")
out3+=(" $CHANGE ($EDITCONF),xdg-open $CNF_FILE")
else
out2+=("$ADDLAUNCHER,cp /usr/share/applications/colorizer.desktop ~/.config/tint2/launcherapps/;killall -SIGUSR1 tint2;colorizer -s")
# dir not exist
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_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")
#out3+=("$NO,mb-setvar gradient_conkies=no $CNF_FILE;colorizer -s")
out2+=("^sep($OTHER_SETTINGS)")
#out2+=("^sep($COLORIZER_SETTINGS)")
#if [[ -f "$HOME/.config/tint2/launcherapps/colorizer.desktop" ]]; then
#out2+=("$DELETELAUNCHER,rm ~/.config/tint2/launcherapps/colorizer.desktop;killall -SIGUSR1 tint2;colorizer -s")
#else
#out2+=("$ADDLAUNCHER,cp /usr/share/applications/colorizer.desktop ~/.config/tint2/launcherapps/;killall -SIGUSR1 tint2;colorizer -s")
#fi
out2+=("$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+=("$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+=("^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+=("$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+=("^sep()")
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+=("^sep()")
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)")
out3+=("^sep($SYSWALLPAPER ($syswallp))")
out3+=("^sep(<i>/usr/share/backgrounds</i>)")
out3+=(" $OPENDIR,xdg-open /usr/share/backgrounds")
out3+=(" $OPENDIR_VIEWNIOR,viewnior /usr/share/backgrounds")
out3+=(" $SETRANDOM,nitrogen --random /usr/share/backgrounds --set-scaled --save;colorizer -s")
out3+=("^sep($USERWALLPAPER ($userwallp))")
if [[ -d "${user_wallpapers_dir}" ]]; then
# dir exist
out3+=("^sep(<i>${user_wallpapers_dir}</i>)")
out3+=(" $OPENDIR ,xdg-open ${user_wallpapers_dir}")
out3+=(" $OPENDIR_VIEWNIOR ,viewnior ${user_wallpapers_dir}")
out3+=(" $SETRANDOM,nitrogen --random ${user_wallpapers_dir} --set-scaled --save;colorizer -s")
out3+=("^sep()")
out3+=(" $CHANGE ($EDITCONF),xdg-open $CNF_FILE")
else
# dir not exist
out3+=("^sep(<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)")
out3+=("^tag(grad_conky")
out3+=("^sep($GRAD_CONKY)")
out3+=("$YES,mb-setvar gradient_conkies=yes $CNF_FILE;colorizer -s")
out3+=("$NO,mb-setvar gradient_conkies=no $CNF_FILE;colorizer -s")
out2+=("^sep($OTHER_SETTINGS)")
out2+=("$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+=(" $EDIT_RELATED,xdg-open $CUSTOM_COMMANDS_FILE")
out3+=("󰁯 $RESET_RELATED,rm $CUSTOM_COMMANDS_FILE;colorizer -s")
out2+=("^sep()")
out2+=(" $EDITCONF,xdg-open $CNF_FILE")
out2+=(" $RESET,rm $CNF_FILE;colorizer -s")
LNG=${LANG:0:2}
if [[ -f "/usr/share/mabox-colorizer/help/$LNG.html" ]];then
out+=(" $HELP,yhtml /usr/share/mabox-colorizer/help/$LNG.html 'Mabox Help - Colorizer'")
else
out+=(" $HELP,yhtml /usr/share/mabox-colorizer/help/en.html 'Mabox Help - Colorizer'")
fi
out2+=(" $EDITCONF,xdg-open $CNF_FILE")
out2+=("󰁯 $RESET,rm $CNF_FILE;colorizer -s")
### RUN
@ -498,7 +363,7 @@ if [[ "$1" == "-s" ]]; then
eval $(xdotool getdisplaygeometry --shell)
MENU_HEIGHT_MIN="$HEIGHT"
MENU_HEIGHT_MAX=$MENU_HEIGHT_MIN
MENU_RADIUS="0"
jgtools_radius=0
menu_margin_x="0"
else
MENU_VALIGN="center"
@ -508,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}
@ -524,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
@ -540,10 +406,12 @@ if [[ "$1" == "-s" ]]; then
mkconfigfile
#THUMB="$(DISPLAY=:0 scrot -t 220x100 -o $HOME/.config/mabox/colorizer.png -e 'echo $m')"
cat <<EOF > ${MENU_ITEMS}
@icon,,$((jgtools_padding + 4)),$((jgtools_padding + 4)),270,150,4,left,top,,,${THUMB}
@rect,,$((jgtools_padding + 4)),$((jgtools_padding + 100)),270,54,0,left,top,#222222 20,#222222 70,
@text,,$((jgtools_padding + 198)),$((jgtools_padding + 124)),120,30,0,left,top,#FFFFFF ,${WINCLR}, <b>Colorizer</b>
@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,8 +1,38 @@
#!/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"
rsync -a /usr/share/mabox-colorizer/themes/conky/* ${CONKYTHEMEDIR}/
fi
LNG=${LANG:0:2}
if [ ! -f "${BASECONKY}" ]; then
if [ -d "/usr/share/mabox/lang/$LNG/.config/conky" ]; then
@ -20,70 +50,137 @@ 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="Pokoloruj Conky"
COLORIZECONKY="Conky Manager"
NO_CONKY_RUNNING="Brak uruchomionych Conky"
RUN_CONKY_SESSION="Uruchom zapisaną sesję"
MOVEABLEALL="Ustaw wszystkie (<i>przeciągaj</i>)..."
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 (zmień dla wszystkich)"
GLOBALSETTINGS="Ustawienia globalne <small>(dla wszystkich)</small>"
REGENERATE="Motywy kolorów"
OPENTHEMEDIR="Otwórz katalog motywów"
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"
BORDERS="Obramowanie"
STIPPLED_BORDERS="Nakrapiane"
SOLID_LINE="linia ciągła"
INDSETTINGS="Ustawiania indywidualne"
RUNNING_CONKIES="Uruchomione Conky"
STOP_ALL="Zatrzymaj wszystkie"
MORECONKIES="Więcej Conky..."
CLICKTOSTART="Kliknij aby uruchomić"
STARTALL="Uruchom wszystkie"
RESET="Resetuj"
RESETALL="Resetuj wszystkie"
RESETCOLORS="Przywróć domyślne kolory"
AREYOUSURE="Czy aby napewno?"
_COLORIZER_ROOT="<b>Colorizer</b> - menu główne"
;;
*)
COLORIZECONKY="Colorize Conky"
COLORIZECONKY="Conky Manager"
NO_CONKY_RUNNING="No Conky running"
RUN_CONKY_SESSION="Run Conky session"
MOVEABLEALL="Make moveable all..."
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 (apply to all)"
GLOBALSETTINGS="Global settings <small>(apply to all)</small>"
REGENERATE="Color schemes"
OPENTHEMEDIR="Open schemes dir"
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"
BORDERS="Borders"
STIPPLED_BORDERS="Stippled borders"
SOLID_LINE="solid line"
INDSETTINGS="Individual settings"
RUNNING_CONKIES="Running Conkys"
STOP_ALL="Stop All"
MORECONKIES="More Conkies Available"
CLICKTOSTART="click to start"
CLICKTOSTART="...click to start"
STARTALL="Start all"
RESET="Reset"
RESETALL="Reset all to defaults"
RESETCOLORS="Restore default colors"
AREYOUSURE="Are you sure?"
_COLORIZER_ROOT="<b>Colorizer</b> rootmenu"
;;
esac
@ -111,65 +208,27 @@ 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+=("^sep($GENERATEFROMWP)")
out+=("$LIGHTBG,w2theme conky light;$me")
out+=("$DARKBG,w2theme conky dark;$me")
out+=("^sep(<small><i>$GLOBALSETTINGS</i></small>)")
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()")
if [ "$WINTRANS" == false ];then
out+=("<small><span bgcolor='$WINCLR'> </span><span weight='bold' ${BG} fgcolor='$WINCLR'> AbCd </span></small> $BACKGROUND,^checkout(trans)")
else
out+=("<small><span>transparent </span></small> $BACKGROUND,^checkout(trans)")
fi
out2+=("^tag(trans)")
out2+=("^sep($TRANSPARENT)")
out2+=("$YES,conkyctl transparent_all true;$me")
out2+=("$NO,conkyctl transparent_all false;$me")
out2+=("^sep()")
out2+=("<small><span bgcolor='$WINCLR'> </span></small> $BACKGROUND,^pipe(mbclr '$WINCLR' conkyctl win_bgcolor_all '${BACKGROUND}' '$me')")
out+=("^sep()")
out+=("$FONTS [ <b>$FONT $FONTSIZE</b> ],^checkout(font)")
out2+=("^tag(font)")
out2+=("^sep($FONTS)")
out2+=("$SELECTFONT,mb-setfont conky_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")
out+=("^sep()")
out+=("$BORDERS [ <b>$BORD $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")
#out+=("^sep($COLORIZECONKY)")
#while read -r pid b c confpath
#do
# filename=${confpath##*/}
@ -178,47 +237,225 @@ 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.*mbcolor" | cut -d' ' -f4)
readarray -t running < <(pgrep -u $USER -af "conky -c " | cut -d' ' -f4)
#array with all supported conkies
for i in "$CONKYDIR"/*_mbcolor*; do
supported+=("$i")
#array with all conkies found
#for i in "$CONKYDIR"/*.con* "$CONKYDIR"/**/*.con*; do
for i in "$CONKYDIR"/*.conkyrc "$CONKYDIR"/*.conf "$CONKYDIR"/**/*.conkyrc "$CONKYDIR"/**/*.conf; do
if [[ "$i" == *mbcolor* ]];then
supported+=("$i")
else
if [[ "$i" != *"/*"* ]];then
unsupported+=("$i")
fi
fi
done
#array with not started conkies
notstarted=($(echo ${running[@]} ${supported[@]} | tr ' ' '\n' | sort | uniq -u))
notstarted=($(echo ${running[@]} ${supported[@]} ${unsupported[@]} ${unsupported[@]}| tr ' ' '\n' | sort | uniq -u))
notstarted_unsupported=($(echo ${running[@]} ${supported[@]} ${supported[@]} ${unsupported[@]} | tr ' ' '\n' | sort | uniq -u))
RCONKIES="${#running[@]}"
NSCONKIES="${#notstarted[@]}"
ALLSUPP=$(($RCONKIES+$NSCONKIES))
#notify-send.sh "$ALLSUPP" "$RCONKIES $NSCONKIES"
if [[ ${#running[@]} > 0 ]];then
out+=("^sep($INDSETTINGS)")
out+=("^sep($RUNNING_CONKIES)")
for c in ${running[@]};do
filename=${c##*/}
name=${filename%%_mb*}
title=${name//_/ }
name2=${name%%.con*}
title=${name2//_/ }
out+=("${title^},^pipe(conkyctl single ${c})")
done
if [[ ${#notstarted[@]} > 0 ]];then
out+=("^sep($MORECONKIES)")
out+=("^sep()")
out+=("$STOP_ALL (${#running[@]}),conky_toggle;sleep .5;$me")
fi
if [[ ${#notstarted[@]} > 0 ]];then
out+=("^sep($MORECONKIES)")
if [[ "$ALLSUPP" < 12 ]];then
out+=("^sep(<small><i>$CLICKTOSTART</i></small>)")
for c in ${notstarted[@]};do
filename=${c##*/}
name=${filename%%_mb*}
title=${name//_/ }
out+=("${title^},conkyctl startone ${c};$me")
done
filename=${c##*/}
name=${filename%%_mb*}
title=${name//_/ }
out+=("${title^},conkyctl startone ${c};$me")
done
if [[ ${#notstarted[@]} > 1 ]];then
out+=("^sep()")
out+=("$STARTALL (${#notstarted[@]}),conkyctl startall;$me")
fi
fi
else # too many conkies not started -> show them in submenu
out+=("$CLICKTOSTART (${#notstarted[@]}),^checkout(nstarted)")
out2+=("^tag(nstarted)")
for c in ${notstarted[@]};do
filename=${c##*/}
name=${filename%%_mb*}
title=${name//_/ }
out2+=("${title^},conkyctl startone ${c};$me")
done
if [[ ${#notstarted[@]} > 1 ]];then
out2+=("^sep()")
out2+=("$STARTALL (${#notstarted[@]}),conkyctl startall;$me")
fi
fi
fi
out+=("^sep($RESET)")
out+=(" $RESETALL,^checkout(resetall)")
out2+=("^tag(resetall)")
out2+=("^sep($AREYOUSURE)")
out2+=("$YES,rm $BASECONKY;$me")
if [[ ${#notstarted_unsupported[@]} > 0 ]];then
out+=("^sep()")
out+=("$NOT_FULLY_SUPPORTED (${#notstarted_unsupported[@]}),^checkout(unsup)")
out2+=("^tag(unsup)")
out2+=("^sep($UNSUPPORTED)")
out2+=("^sep($UNSUPPORTED_START)")
for c in ${notstarted_unsupported[@]};do
filename=${c##*/}
name=${filename%%.con*}
title=${name//_/ }
out2+=("${title^},conkyctl startone ${c};$me")
done
fi
#GLOBAL START
out+=("^sep($GLOBALSETTINGS)")
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($MONOCHROMATIC)")
out2+=("^sep(<i>$CHOOSE_AND_PICK</i>)")
out2+=("<big></big> $DARKBG...,conkyctl mono pick dark")
out2+=("<big></big> $LIGHTBG...,conkyctl mono pick light")
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+=("<big>󰛖</big> $FONTS [ <b><span font_family=\"${FONT}\">$FONT</span> $FONTSIZE</b> ],^checkout(font)")
out2+=("^tag(font)")
out2+=("^sep($FONTS)")
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()")
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()")
[[ "$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?)")
[[ "$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")
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)")
#out2+=("$YES,rm $BASECONKY;$me")
else
out+=("^sep(No supported Conky running)")
out+=("^sep($NO_CONKY_RUNNING)")
SESSIONFILE=$HOME/.config/conky/conky-sessionfile
if [ -f "$SESSIONFILE" ];then
read N REST <<< $(wc -l "${SESSIONFILE}")
if [[ "$N" -gt "0" ]];then
out+=("$RUN_CONKY_SESSION ($N Conky),conky_toggle;$me")
fi
fi
out+=("^sep(<small><i>$CLICKTOSTART</i></small>)")
for confpath in "$CONKYDIR"/*_mb*;
do
@ -239,13 +476,13 @@ 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)
MENU_HEIGHT_MIN="$HEIGHT"
MENU_HEIGHT_MAX=$MENU_HEIGHT_MIN
MENU_RADIUS="0"
jgtools_radius=0
menu_margin_x="0"
else
MENU_VALIGN="center"
@ -257,30 +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}
@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
@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
@ -289,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,16 +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"
ITEM="pozycja menu (element)"
PRE_GRADIENTS="Zastosuj gradient"
GRADIENT_REVERSE="Odwróć kolory Gradientu"
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"
@ -64,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"
@ -85,16 +191,30 @@ case "$LANG" in
TOP_RIGHT="top_right"
BOTTOM_LEFT="bottom_left"
BOTTOM_RIGHT="bottom_right"
PRE_GRADIENTS="Predefined gradients"
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 "
@ -110,6 +230,7 @@ case "$LANG" in
EDIT="Edit"
FILE="file"
SET_RANDOM="Set random menu theme"
_COLORIZER_ROOT="<b>Colorizer</b> rootmenu"
;;
esac
@ -137,86 +258,310 @@ 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)")
out+=("$PRE_GRADIENTS,^pipe(mbgrad menu)")
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')")
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)")
### 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")
out2+=(" $BOTTOM,jgctl menu_gradient_pos bottom;$me")
out2+=(" $LEFT,jgctl menu_gradient_pos left;$me")
out2+=(" $TOP_LEFT,jgctl menu_gradient_pos top_left;$me")
out2+=(" $TOP_RIGHT,jgctl menu_gradient_pos top_right;$me")
out2+=(" $BOTTOM_LEFT,jgctl menu_gradient_pos bottom_left;$me")
out2+=(" $BOTTOM_RIGHT,jgctl menu_gradient_pos bottom_right;$me")
out2+=(" $TOP,jgctl menu_gradient_pos top;$me")
out2+=(" $RIGHT,jgctl menu_gradient_pos right;$me")
out2+=(" $BOTTOM,jgctl menu_gradient_pos bottom;$me")
out2+=(" $LEFT,jgctl menu_gradient_pos left;$me")
out2+=(" $TOP_LEFT,jgctl menu_gradient_pos top_left;$me")
out2+=(" $TOP_RIGHT,jgctl menu_gradient_pos top_right;$me")
out2+=(" $BOTTOM_LEFT,jgctl menu_gradient_pos bottom_left;$me")
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")
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
@ -227,13 +572,13 @@ 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)
MENU_HEIGHT_MIN="$HEIGHT"
MENU_HEIGHT_MAX=$MENU_HEIGHT_MIN
MENU_RADIUS="0"
jgtools_radius=0
menu_margin_x="0"
else
MENU_VALIGN="center"
@ -247,25 +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}
@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
@ -273,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,13 +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 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"
@ -41,11 +106,13 @@ case "$LANG" in
PADDING="Odstęp"
VERTICAL="W pionie"
HORIZONTAL="W poziomie"
RAISED_OR_FLAT="Płaski, Podniesiony czy Wklęsły"
RAISED_OR_FLAT="Płaski, Uniesiony, Wklęsły"
FLAT="płaski - <b>flat</b>"
RAISED="podniesiony - <b>raised</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"
@ -59,8 +126,8 @@ case "$LANG" in
INACTIVE_BG_TO="Tło nieaktywnego okna 2"
BORDER="Obramowanie okna"
BORDER_PX="Obramowanie (px)"
ACTIVE_BORDER="Obramowanie aktywnego okna"
INACTIVE_BORDER="Obramowanie nieaktywnego okna"
ACTIVE_BORDER="Obramowanie akt. okna"
INACTIVE_BORDER="Obramowanie nieakt. okna"
HANDLEWIDTH="Uchwyt - rozmiar"
ACTIVEHANDLE="Aktywny Uchwyt"
YES="Tak"
@ -70,16 +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 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"
@ -97,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"
@ -106,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"
@ -121,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
@ -158,64 +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
out+=("^sep($OBTHEME_LBL: <i>$OBTHEME</i>)")
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($TITLEBAR)")
out+=("<big>󰛖</big> $TITLEBAR_FONT [ <b> ${FNAME} ${FSIZE} </b> ],^checkout(titletext)")
out+=("<big>󰧈</big> $PADDING [ <b>$PHEIGHT $PWIDTH</b> ],^checkout(padding)")
out+=("<tt><span bgcolor='$ABG' fgcolor='$AFG'><small>    </small></span></tt> $BUTTONS_LBL,^checkout(tbuttons)")
out+=("^sep($ACTIVE_WINDOW)")
out+=("<tt><span bgcolor='$ABG'> </span></tt> $ACTIVE_BG,^pipe(mbclr '$ABG' obtctl clractivebg '${ACTIVE_BG}' '$me')")
[[ ! -z "$ABGTO" ]] && out+=("<tt><span bgcolor='$ABG'> </span><span bgcolor='$ABGTO'> </span></tt> $ACTIVE_BG_TO,^pipe(mbclr '$ABGTO' obtctl clractivebgto '${ACTIVE_BG_TO}' '$me')")
out+=("<tt><span bgcolor='$ABG' fgcolor='$AFG'> <b>AbCd</b> </span></tt> $TITLEBAR_TEXT,^checkout(titletext)")
out+=("^sep()")
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+=("$PRE_GRADIENTS,^pipe(mbgrad ob)")
out+=(" $GRADIENT_REVERSE,obtctl activegradient '${ABGTO}' '${ABG}';$me")
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+=("<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}")
@ -228,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")
@ -300,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 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 vertical;$me")
out2+=("$HORIZONTAL,obtctl gradient horizontal;$me")
out2+=("$MIRRORHORIZONTAL,obtctl gradient mirrorhorizontal;$me")
out2+=("$SPLITVERTICAL,obtctl gradient splitvertical;$me")
out2+=("$DIAGONAL,obtctl gradient diagonal;$me")
out2+=("$CROSSDIAGONAL,obtctl gradient crossdiagonal;$me")
out2+=("$PYRAMID,obtctl gradient pyramid;$me")
[[ "$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")
@ -337,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
@ -354,14 +665,14 @@ 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)
MENU_HEIGHT_MIN="$HEIGHT"
MENU_HEIGHT_MAX=$MENU_HEIGHT_MIN
MENU_RADIUS="0"
jgtools_radius=0
menu_margin_x="0"
else
MENU_VALIGN="center"
@ -375,28 +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
@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
@ -406,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 obecne kolory 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 current colors 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
@ -65,47 +109,58 @@ read MB1 MB2 MBFG<<< "$(grep '^Messages Border ' ${THEMERC})"
getvalues
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($GENERATEFROMWP)")
out+=("$LIGHTBG,w2theme pyradio light;$me")
out+=("$DARKBG,w2theme pyradio dark;$me")
#out+=("$START_PYRADIO,terminator --geometry=420x440-20-20 -e pyradio")
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()")
@ -113,13 +168,13 @@ read MB1 MB2 MBFG<<< "$(grep '^Messages Border ' ${THEMERC})"
out+=("^sep($CONFIG_AND_DOCS)")
#out+=("PyRadio README,cat /usr/share/doc/pyradio/README.html| yad --html --no-buttons --no-escape --height=800 --width=600")
out+=(" $README,xdg-open /usr/share/doc/pyradio/README.html")
out+=(" $MANUAL,^term(man pyradio)")
out+=(" $README,xdg-open /usr/share/doc/pyradio/README.html")
out+=(" $MANUAL,^term(man pyradio)")
out+=("^sep()")
out+=(" $EDITCONF,xdg-open ~/.config/pyradio/config")
out+=(" $EDITSTATIONS,xdg-open ~/.config/pyradio/stations.csv")
out+=(" $EDITCONF,xdg-open ~/.config/pyradio/config")
out+=(" $EDITSTATIONS,xdg-open ~/.config/pyradio/stations.csv")
out+=("^sep()")
out+=(" $CONFIGDIR,^pipe(jgbrowser ~/.config/pyradio)")
out+=(" $CONFIGDIR,^pipe(jgbrowser ~/.config/pyradio)")
### RUN
@ -132,13 +187,13 @@ 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)
MENU_HEIGHT_MIN="$HEIGHT"
MENU_HEIGHT_MAX=$MENU_HEIGHT_MIN
MENU_RADIUS="0"
jgtools_radius=0
menu_margin_x="0"
else
MENU_VALIGN="center"
@ -151,27 +206,33 @@ 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 + 144)),$((jgtools_padding + 122)),120,30,4,left,top,#FFFFFF 60,#222222 80,
@text,,$((jgtools_padding + 150)),$((jgtools_padding + 122)),120,30,0,left,top,#FFFFFF,${WINCLR}, <b>PyRadio</b>
@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[@]}")
$(printf '%s\n' "${out2[@]}")

View File

@ -0,0 +1,27 @@
#!/bin/bash
CFGFILE="$HOME/.config/conky/Network_mbcolor.conkyrc"
rm /tmp/xx*
cd /tmp
csplit -s ${CFGFILE} /conky.text/
#IFACE=$(ip route get 8.8.8.8 | awk -- '{printf $5}')
IFACE=$(ip route get 8.8.8.8 | awk '{for(i=1; i<NF; i++) {if($i=="dev") dev=i+1} print $dev}')
cat <<EOF >> /tmp/xx00
conky.text = [[
\${color}NETWORK
\${color}Device \${alignr}$IFACE
\${color}IP \${alignr}\${addr $IFACE}
\${color}Download \$color0\${downspeed $IFACE} \${alignr}\${color0}\${upspeed $IFACE}\${color} Upload
\${color2}\${downspeedgraph $IFACE 30,100 -t} \${alignr} \${upspeedgraph $IFACE 30,100 -t}
\${color}Total Down \${color0}\${totaldown $IFACE} \${alignr}\${color0}\${totalup $IFACE}\${color} Total Up
\${color}\${hr}
\${execi 30 netstat -ept | grep ESTAB | awk '{print \$9}' | cut -d/ -f2 | sort | uniq -c | sort -nr}
]];
EOF
cat /tmp/xx00 > ${CFGFILE}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,25 @@
#!/bin/bash
getdata () {
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}
echo "$MOUNTLBL\${goto 90}\${color2}\${fs_bar 6,64 $MOUNT}\${color}\${goto 160}$USED\${goto 200}$PERCENT\${alignr}$SIZE"
done
}
case "$LANG" in
pl*)
MOUNTPOINTS="Punkty montowania"
USED="użyte"
SIZE="rozmiar"
;;
*)
MOUNTPOINTS="MOUNT POINTS"
USED="used"
SIZE="size"
;;
esac
echo "$MOUNTPOINTS"
echo "\${goto 160}$USED\${goto 200}%\${alignr}$SIZE"
getdata

161
bin/convert.lua 100755
View File

@ -0,0 +1,161 @@
#! /usr/bin/lua
local usage = [[
Usage: convert.lua old_conkyrc [new_conkyrc]
Tries to convert conkyrc from the old v1.x format to the new, lua-based format.
Keep in mind that there is no guarantee that the output will work correctly
with conky, or that it will be able to convert every conkyrc. However, it
should provide a good starting point.
Although you can use this script with only 1 arg and let it overwrite the old
config, it's suggested to use 2 args so that the new config is written in a new
file (so that you have backup if something went wrong).
Optional: Install dos2unix. We will attempt to use this if it is available
because Conky configs downloaded from Internet sometimes are created on DOS/Windows
machines with different line endings than Conky configs created on Unix/Linux.
For more information about the new format, read the wiki page
<https://github.com/brndnmtthws/conky/wiki>
]];
local function quote(s)
if not s:find("[\n'\\]") then
return "'" .. s .. "'";
end;
local q = '';
while s:find(']' .. q .. ']', 1, true) do
q = q .. '=';
end;
return string.format('[%s[\n%s]%s]', q, s, q);
end;
local bool_setting = {
background = true, disable_auto_reload = true, double_buffer = true, draw_borders = true,
draw_graph_borders = true, draw_outline = true, draw_shades = true, extra_newline = true,
format_human_readable = true, no_buffers = true, out_to_console = true,
out_to_wayland = true,
out_to_ncurses = true, out_to_stderr = true, out_to_x = true, override_utf8_locale = true,
own_window = true, own_window_argb_visual = true, own_window_transparent = true,
short_units = true, show_graph_range = true, show_graph_scale = true,
times_in_seconds = true, top_cpu_separate = true, uppercase = true, use_xft = true,
draw_blended = true, forced_redraw = true
};
local num_setting = {
border_inner_margin = true, border_outer_margin = true, border_width = true,
cpu_avg_samples = true, diskio_avg_samples = true, gap_x = true, gap_y = true,
imlib_cache_flush_interval = true, imlib_cache_size = true,
max_port_monitor_connections = true, max_text_width = true, max_user_text = true,
maximum_width = true, mpd_port = true, music_player_interval = true, net_avg_samples = true,
own_window_argb_value = true, pad_percents = true, stippled_borders = true,
text_buffer_size = true, top_name_width = true, total_run_times = true,
update_interval = true, update_interval_on_battery = true, xftalpha = true,
xinerama_head = true,
};
local split_setting = {
default_bar_size = true, default_gauge_size = true, default_graph_size = true,
minimum_size = true
};
local colour_setting = {
color0 = true, color1 = true, color2 = true, color3 = true, color4 = true, color5 = true,
color6 = true, color7 = true, color8 = true, color9 = true, default_color = true,
default_outline_color = true, default_shade_color = true, own_window_colour = true
};
local function alignment_map(value)
local map = { m = 'middle', t = 'top', b = 'bottom', r = 'right', l = 'left' };
if map[value] == nil then
return value;
else
return map[value];
end;
end;
local function handle(setting, value)
setting = setting:lower();
if setting == '' then
return '';
end;
if split_setting[setting] then
local x, y = value:match('^(%S+)%s*(%S*)$');
local ret = setting:gsub('_size', '_width = ') .. x .. ',';
if y ~= '' then
ret = ret .. ' ' .. setting:gsub('_size', '_height = ') .. y .. ',';
end;
return '\t' .. ret;
end;
if bool_setting[setting] then
value = value:lower();
if value == 'yes' or value == 'true' or value == '1' or value == '' then
value = 'true';
else
value = 'false';
end;
elseif not num_setting[setting] then
if setting == 'alignment' and value:len() == 2 then
value = alignment_map(value:sub(1,1)) .. '_' .. alignment_map(value:sub(2,2));
elseif colour_setting[setting] and value:match('^[0-9a-fA-F]+$') then
value = '#' .. value;
elseif setting == 'xftfont' then
setting = 'font';
end;
value = quote(value);
end;
return '\t' .. setting .. ' = ' .. value .. ',';
end;
local function convert(s)
local setting, comment = s:match('^([^#]*)#?(.*)\n$');
if comment ~= '' then
comment = '--' .. comment;
end;
comment = comment .. '\n';
return handle(setting:match('^%s*(%S*)%s*(.-)%s*$')) .. comment;
end;
local input;
local output;
if conky == nil then --> standalone program
-- 1 arg: arg is input and outputfile
-- 2 args: 1st is inputfile, 2nd is outputfile
-- 0, 3 or more args: print usage to STDERR and quit
if #arg == 1 or #arg == 2 then
if os.execute('command -v dos2unix 2>&1 >/dev/null') == 0 then
os.execute('dos2unix ' .. arg[1]);
end
input = io.input(arg[1]);
else
io.stderr:write(usage);
return;
end;
else
-- we are called from conky, the filename is the first argument
input = io.open(..., 'r');
end;
local config = input:read('*a');
input:close();
local settings, text = config:match('^(.-)TEXT\n(.*)$');
local converted = 'conky.config = {\n' .. settings:gsub('.-\n', convert) .. '};\n\nconky.text = ' ..
quote(text) .. ';\n';
if conky == nil then
if #arg == 2 then
output = io.output(arg[2]);
else
output = io.output(arg[1]);
end
output:write(converted);
output:close();
else
return assert(load(converted, 'converted config'));
end;

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()

268
bin/jgctl
View File

@ -15,12 +15,24 @@ esac
if [ ! -f "${THEMERC}.bak" ]; then
cp ${THEMERC} ${THEMERC}.bak
fi
theme () {
mb-setvar jgmenu_theme=${1}
}
reset () {
rm ${THEMERC}
mv ${THEMERC}.bak ${THEMERC}
}
resetMBcolors() {
mb-setvar jgmenu_theme=MBcolors
mb-setvar item_height_factor=200
reset
case "$1" in
show)
colorizer-menus -s
;;
*):;;
esac
}
color_menu_bg () {
read MBG MBGA<<< "$(grep 'color_menu_bg ' ${THEMERC} | cut -d'=' -f2)"
case "${#1}" in
@ -62,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}
@ -204,9 +234,205 @@ 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 ;;
resetMBcolors) resetMBcolors "$2";;
color_menu_bg) color_menu_bg "$2";;
color_menu_bg_to) color_menu_bg_to "$2";;
color_menu_border) color_menu_border "$2";;
@ -224,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

227
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,70 +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,23 @@ 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}
rsync -a /usr/share/mabox-colorizer/themes/MBcolors/openbox-3/* ${MBCOLORSDIR}/
fi
if [ ! -f "${THEMERC}.bak" ]; then
cp ${THEMERC} ${THEMERC}.bak
fi
@ -17,9 +34,49 @@ reset () {
rm ${THEMERC}
mv ${THEMERC}.bak ${THEMERC}
}
resetonlycolors () {
theme MBcolors
clractivebg "#579c8e"
clractivebgto "#41756a"
}
resetMBcolors() {
theme MBcolors
rsync -a /usr/share/mabox-colorizer/themes/MBcolors/openbox-3/* ${MBCOLORSDIR}/
#set font
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="ActiveWindow"]/a:size' -v "9" "$cfg"
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:weight' -v "Bold" "$cfg"
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:slant' -v "Normal" "$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="InactiveWindow"]/a:size' -v "9" "$cfg"
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="InactiveWindow"]/a:weight' -v "Bold" "$cfg"
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="InactiveWindow"]/a:slant' -v "Normal" "$cfg"
}
borderWidth () {
sd "^border.width:.*$" "border.width: $1" ${THEMERC}
case "$1" in
increase)
read BWIDTH <<< "$(grep border.width: ${THEMERC} | cut -d':' -f2)"
BWIDTH=$((BWIDTH+1))
sd "^border.width:.*$" "border.width: ${BWIDTH}" ${THEMERC}
;;
decrease)
read BWIDTH <<< "$(grep border.width: ${THEMERC} | cut -d':' -f2)"
if [ "$BWIDTH" -gt "0" ];then
BWIDTH=$((BWIDTH-1))
sd "^border.width:.*$" "border.width: ${BWIDTH}" ${THEMERC}
fi
;;
*)
sd "^border.width:.*$" "border.width: $1" ${THEMERC}
;;
esac
}
activeborderColor () {
sd "\.active.border.color:.*$" ".active.border.color: $1" ${THEMERC}
@ -28,8 +85,27 @@ inactiveborderColor () {
sd "\.inactive.border.color:.*$" ".inactive.border.color: $1" ${THEMERC}
}
paddingHeight () {
sd "^padding.height:.*$" "padding.height: $1" ${THEMERC}
sd "^padding.width:.*$" "padding.width: $1" ${THEMERC}
case "$1" in
increase)
read PHEIGHT <<< "$(grep ^padding.height: ${THEMERC} | cut -d':' -f2)"
PHEIGHT=$((PHEIGHT+1))
sd "^padding.height:.*$" "padding.height: ${PHEIGHT}" ${THEMERC}
sd "^padding.width:.*$" "padding.width: ${PHEIGHT}" ${THEMERC}
;;
decrease)
read PHEIGHT <<< "$(grep ^padding.height: ${THEMERC} | cut -d':' -f2)"
if [ "$PHEIGHT" -gt "0" ];then
PHEIGHT=$((PHEIGHT-1))
sd "^padding.height:.*$" "padding.height: ${PHEIGHT}" ${THEMERC}
sd "^padding.width:.*$" "padding.width: ${PHEIGHT}" ${THEMERC}
fi
;;
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}
;;
esac
}
paddingWidth () {
sd "^padding.width:.*$" "padding.width: $1" ${THEMERC}
@ -39,17 +115,17 @@ textjustify () {
}
shadow () {
case "$1" in
0)
0|no)
sd "\.active.label.text.font:.*$" ".active.label.text.font: shadow=n:shadowtint=70:shadowoffset=1" ${THEMERC}
sd "\.inactive.label.text.font:.*$" ".inactive.label.text.font: shadow=n:shadowtint=20:shadowoffset=1" ${THEMERC}
;;
1)
1|dark)
sd "\.active.label.text.font:.*$" ".active.label.text.font: shadow=y:shadowtint=70:shadowoffset=1" ${THEMERC}
sd "\.inactive.label.text.font:.*$" ".inactive.label.text.font: shadow=y:shadowtint=20:shadowoffset=1" ${THEMERC}
#sd "\.inactive.label.text.font:.*$" ".inactive.label.text.font: shadow=y:shadowtint=20:shadowoffset=1" ${THEMERC}
;;
2)
sd "\.active.label.text.font:.*$" ".active.label.text.font: shadow=y:shadowtint=-70:shadowoffset=1" ${THEMERC}
sd "\.inactive.label.text.font:.*$" ".inactive.label.text.font: shadow=y:shadowtint=-20:shadowoffset=1" ${THEMERC}
2|light)
sd "\.active.label.text.font:.*$" ".active.label.text.font: shadow=y:shadowtint=-40:shadowoffset=1" ${THEMERC}
#sd "\.inactive.label.text.font:.*$" ".inactive.label.text.font: shadow=y:shadowtint=-20:shadowoffset=1" ${THEMERC}
;;
esac
@ -58,27 +134,27 @@ handlewidth () {
sd "\.handle.width:.*$" ".handle.width: $1" ${THEMERC}
}
raised () {
#flat or raised
#flat 0 or raised 1 or sunken 2
read WINRAISED REST <<< "$(grep .title.bg: ${THEMERC} | cut -d':' -f2)"
case "$1" in
0)
0|flat)
sd "\.title.bg:.*$" ".title.bg: flat ${REST}" ${THEMERC}
sd "\.handle.bg:.*$" ".handle.bg: flat ${REST}" ${THEMERC}
sd "\.grip.bg:.*$" ".grip.bg: flat ${REST}" ${THEMERC}
;;
1)
1|raised)
sd "\.title.bg:.*$" ".title.bg: raised ${REST}" ${THEMERC}
sd "\.handle.bg:.*$" ".handle.bg: raised ${REST}" ${THEMERC}
sd "\.grip.bg:.*$" ".grip.bg: raised ${REST}" ${THEMERC}
;;
2)
2|sunken)
sd "\.title.bg:.*$" ".title.bg: sunken ${REST}" ${THEMERC}
sd "\.handle.bg:.*$" ".handle.bg: sunken ${REST}" ${THEMERC}
sd "\.grip.bg:.*$" ".grip.bg: sunken ${REST}" ${THEMERC}
;;
esac
}
gradient () {
gradient_type () {
#solid or gradient gradient-type
read WINRAISED REST <<< "$(grep .title.bg: ${THEMERC} | cut -d':' -f2)"
case "$1" in
@ -94,19 +170,72 @@ gradient () {
;;
esac
}
random_gradient () {
GRADIENT_FILE="$HOME"/.config/colorizer/gradients_all.inc
if [ ! -f $GRADIENT_FILE ]; then
cp -a /usr/share/mabox-colorizer/gradients_all.inc $GRADIENT_FILE
fi
read CLR CLRTO REST <<< "$(shuf -n 1 $GRADIENT_FILE)"
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 ${1}|pastel format hex)
TITLE_FG=$(pastel textcolor ${2}|pastel format hex)
if [[ "${TITLE_FG}" == *"ffffff"* ]];then
TITLE_FG="#EEEEEE"
TITLE_FG="#E5E5E5"
else
TITLE_FG="#222222"
fi
@ -114,8 +243,56 @@ activegradient () {
# 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
}
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 () {
@ -154,7 +331,20 @@ activehandle () {
;;
esac
}
clractivebg_only () {
sd "^window.active.title.bg.color:.*$" "window.active.title.bg.color: ${1}" ${THEMERC}
# calculate color for title.fg and buttons
TITLE_FG=$(pastel textcolor ${1}|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}"
}
clractivebg () {
colorTo=$(pastel darken 0.1 "${1}"|pastel format hex)
#activehandle?
@ -176,47 +366,59 @@ clractivebg () {
sd "menu.items.active.bg.color:.*$" "menu.items.active.bg.color: ${1}" ${THEMERC}
sd "menu.items.active.bg.colorTo:.*$" "menu.items.active.bg.colorTo: ${colorTo}" ${THEMERC}
# calculate color for title.fg and buttons
TITLE_FG=$(pastel textcolor ${colorTo}|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}"
}
clrnormalbg_only () {
sd "^window.inactive.title.bg.color:.*$" "window.inactive.title.bg.color: ${1}" ${THEMERC}
}
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 () {
sd "\.active.label.text.color:.*$" ".active.label.text.color: ${1}" ${THEMERC}
activebuttonscolors ${1}
}
inactivetextcolor () {
sd "\.inactive.label.text.color:.*$" ".inactive.label.text.color: ${1}" ${THEMERC}
@ -224,20 +426,410 @@ 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 () {
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 "${1}" "$cfg"
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="InactiveWindow"]/a:name' -v "${1}" "$cfg"
}
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
}
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"
WEIGHT=$(xmlstarlet sel -N a="$nspace" -t -v '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:weight' "$cfg")
if [ "$WEIGHT" = "Normal" ];then
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:weight' -v "Bold" "$cfg"
else
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:weight' -v "Normal" "$cfg"
fi
}
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"
SLANT=$(xmlstarlet sel -N a="$nspace" -t -v '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:slant' "$cfg")
if [ "$SLANT" = "Normal" ];then
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:slant' -v "Italic" "$cfg"
else
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:slant' -v "Normal" "$cfg"
fi
}
randomizer () {
# 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)
### Maybe better is not to change shadow? for now
#SHADOWS=(no dark light)
#rand=$((RANDOM%3))
#SHADOW="${SHADOWS[$rand]}"
#shadow "${SHADOW}"
shadow no
### RANDOM GRADIENT COLORS
GRADIENT_FILE="$HOME"/.config/colorizer/gradients_all.inc
if [ ! -f $GRADIENT_FILE ]; then
cp -a /usr/share/mabox-colorizer/gradients_all.inc $GRADIENT_FILE
fi
read CLR CLRTO GRAD_NAME <<< "$(shuf -n 1 $GRADIENT_FILE)"
#obtctl random_gradient
activegradient "$CLR" "$CLRTO"
### rand gradient type
TYPES=(solid vertical horizontal mirrorhorizontal diagonal mirrorhorizontal)
rand=$((RANDOM%6))
G_TYPE="${TYPES[$rand]}"
gradient_type "${G_TYPE}"
#rand
### Random border
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)
rand=$((RANDOM%4))
PADDING="${PADDINGS[$rand]}"
paddingHeight "${PADDING}"
### TITLEBAR STYLE
STYLES=(flat raised raised sunken)
rand=$((RANDOM%4))
STYLE="${STYLES[$rand]}"
raised "${STYLE}"
### TEXT ALIGN
ALIGNS=(left center right)
rand=$((RANDOM%3))
ALIGN="${ALIGNS[$rand]}"
textjustify "${ALIGN}"
### FONT FAMILY
FAMILIES=(Ubuntu "Noto Sans" "Roboto Condensed" "GE Inspira" "JetBrains Mono")
rand=$((RANDOM%5))
FAMILY="${FAMILIES[$rand]}"
fontfamily "${FAMILY}"
### FONT WEIGHT
WEIGHTS=(Bold Normal)
rand=$((RANDOM%2))
WEIGHT="${WEIGHTS[$rand]}"
fontweight "${WEIGHT}"
### FONT SLANT
SLANTS=(Italic Normal)
rand=$((RANDOM%2))
SLANT="${SLANTS[$rand]}"
fontslant "${SLANT}"
### FONT SIZE
FONTSIZES=(8 10 11 12 14 16)
rand=$((RANDOM%6))
FONTSIZE="${FONTSIZES[$rand]}"
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
#Gradient
#name: <b>${GRAD_NAME}</b>
#colors: <b>${CLR}</b> to <b>${CLRTO}</b>
#type: <b>$G_TYPE</b>
#Border: <b>${BORDER}</b>
#Padding: <b>${PADDING}</b>
#Titlebar style: <b>${STYLE}</b>
#Buttons: <b>${BUTTON}</b>
#Title align: <b>${ALIGN}</b>
#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"
}
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
theme) theme "$2";;
reset) reset;;
resetonlycolors) resetonlycolors;;
resetMBcolors) resetMBcolors;;
borderWidth) borderWidth "$2";;
activeborderColor) activeborderColor "$2";;
inactiveborderColor) inactiveborderColor "$2";;
@ -247,17 +839,37 @@ case "$1" in
shadow) shadow "$2";;
handlewidth) handlewidth "$2";;
raised) raised "$2";;
gradient) gradient "$2";;
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";;
clractivebgto) clractivebgto "$2";;
clrnormalbg_only) clrnormalbg_only "$2";;
clrnormalbg) clrnormalbg "$2";;
clrnormalbgto) clrnormalbgto "$2";;
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

23
bin/pcmanwp 100755
View File

@ -0,0 +1,23 @@
#!/bin/bash
# pcmanfm based wallpaper chooser
# simple command for now
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

109
bin/randomizer 100755
View File

@ -0,0 +1,109 @@
#!/bin/bash
# randomizer
ob () {
obtctl randomizer
}
menu () {
mb-setvar jgmenu_theme=$(basename -s .colorrc $(ls ~/.config/mabox/jgobthemes/*.colorrc | shuf -n 1))
case "$1" in
show) colorizer-menus -s;;
*):;;
esac
}
conky () {
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
}
all () {
ob
conky
[[ "$1" == "show" ]] && menu show || menu
}
resetall () {
conkyctl resetcolorsall
obtctl resetMBcolors
[[ "$1" == "show" ]] && jgctl resetMBcolors show || jgctl resetMBcolors
}
pipemenu () {
me=""
[[ "$1" == "l" ]] && me="mb-jgtools places"
[[ "$1" == "c" ]] && me="colorizer -s"
#notify-send.sh "Me $me"
case "$LANG" in
pl*)
SETRANDOM="Ustaw losowy motyw dla..."
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"
;;
es*)
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"
;;
*)
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"
;;
esac
out+=("^sep($SETRANDOM)")
out+=("$MENUS,randomizer menu;$me")
out+=("$OBWD,randomizer ob;$me")
out+=("Conky,randomizer conky;$me")
out+=("^sep()")
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+=("<big>󰁯</big> $ALLRESET,randomizer resetall;$me")
if [[ "$1" != "c" ]];then
out+=("^sep(Colorizer)")
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[@]}"
}
case "$1" in
ob) ob;;
menu) menu "${2}";;
conky) conky;;
wp) wp;;
all) all "$2";;
resetall)resetall "$2";;
l|c|*) pipemenu "$1";;
esac

View File

@ -1,21 +1,49 @@
#!/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
dark) #dark bg
jgctl color_menu_bg "${w[2]}"
@ -46,6 +74,12 @@ menu_theme () {
#sleep 1
;;
esac
case "$2" in
show)
colorizer-menus -s
;;
*):;;
esac
}
conky_colors() {
source ~/.config/colorizer/colorizer.conf
@ -53,29 +87,40 @@ 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
case "$1" in
dark) #dark bg
conkyctl win_bgcolor "${w[0]}" "${2}"
conkyctl default_color "${w[-1]}" "${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[4]}" "${2}"
conkyctl color1 "${w[5]}" "${2}"
;;
esac
conkyctl color2_all "${accents[ $RANDOM % ${#accents[@]} ]}" "${2}"
}
pyradio_theme() {
case "$1" in
@ -103,10 +148,25 @@ 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)
obtctl clractivebgto ${colorTo}
#obtctl clractivebg ${1}
#colorTo=$(pastel darken 0.2 "${1}"|pastel format hex)
#obtctl clractivebgto ${colorTo}
# JGMENU based menus, sidepanels and tools
#jgctl color_title_bg ${1}
#TITLE_FG=$(pastel textcolor ${colorTo}|pastel format hex)
@ -189,7 +249,43 @@ conkygradient () {
fi
done
}
obtheme () {
case "$1" in
dark)
obtctl clractivebg ${w[2]}
TITLE_FG=$(pastel textcolor ${w[2]}|pastel format hex)
if [[ "$TITLE_FG" == *"ffffff"* ]];then
obtctl activetextcolor "#E5E5E5"
#obtctl activetextcolor ${w[-1]}
#obtctl activebuttonscolors ${w[-1]}
else
obtctl activetextcolor "#222222"
#obtctl activetextcolor ${w[0]}
#obtctl activebuttonscolors ${w[0]}
fi
obtctl clractivebgto ${w[4]}
obtctl clrnormalbg ${w[0]}
obtctl clrnormalbgto "$(pastel darken 0.1 "${w[0]}"|pastel format hex)"
;;
light)
obtctl clractivebg ${w[-2]}
TITLE_FG=$(pastel textcolor ${w[-2]}|pastel format hex)
if [[ "$TITLE_FG" == *"ffffff"* ]];then
obtctl activetextcolor "#E5E5E5"
#obtctl activetextcolor ${w[-1]}
#obtctl activebuttonscolors ${w[-1]}
else
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
# CONKY
@ -216,19 +312,13 @@ colorize () {
light) menu_theme light;;
*) : ;;
esac
# Openbox
obtctl clractivebg ${w[3]}
TITLE_FG=$(pastel textcolor ${w[3]}|pastel format hex)
if [[ "$TITLE_FG" == *"ffffff"* ]];then
obtctl activetextcolor ${w[-1]}
obtctl activebuttonscolors ${w[-1]}
else
obtctl activetextcolor ${w[0]}
obtctl activebuttonscolors ${w[0]}
fi
obtctl clractivebgto ${w[4]}
obtctl clrnormalbg ${w[0]}
obtctl clrnormalbgto "$(pastel darken 0.1 "${w[0]}"|pastel format hex)"
# Openbox (TUTAJ WARUNEK)
case "$wall2themes_ob" in
dark) obtheme dark;;
light) obtheme light;;
*) : ;;
esac
# PYRADIO THEME
case "$wall2themes_pyradio" in
dark) pyradio_theme dark;;
@ -265,11 +355,12 @@ reverse () {
light) menu_theme dark;;
*) : ;;
esac
# Openbox
obtctl clractivebg ${w[3]}
obtctl clractivebgto ${w[4]}
obtctl clrnormalbg ${w[0]}
obtctl clrnormalbgto "$(pastel darken 0.1 "${w[0]}"|pastel format hex)"
# Openbox (TUTAJ WARUNEK)
case "$wall2themes_ob" in
dark) obtheme light;;
light) obtheme dark;;
*) : ;;
esac
# PYRADIO THEME
case "$wall2themes_pyradio" in
dark) pyradio_theme light;;
@ -278,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
@ -293,13 +400,16 @@ rm -rf ~/.config/colorizer/pinned/$WALLNAME
case "$1" in
ob) obtheme "$2";;
menu) menu_theme "$2";;
menu) menu_theme "$2" "$3";;
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

10
bin/ycolorizer 100755
View File

@ -0,0 +1,10 @@
#!/bin/bash
# ycolorizer - launch Colorizer main window and Help
LNG=${LANG:0:2}
if [[ -f "/usr/share/mabox-colorizer/help/$LNG.html" ]];then
yhtml /usr/share/mabox-colorizer/help/$LNG.html 'Mabox Colorizer'
else
yhtml /usr/share/mabox-colorizer/help/en.html 'Mabox Colorizer'
fi

View File

@ -0,0 +1,12 @@
[Desktop Entry]
Version=1.0
Type=Application
Name=Colorizer Menu
Comment=Mabox Colorizer
Keywords=
StartupNotify=false
Icon=colorizer
TryExec=colorizer -s
Exec=colorizer -s
Categories=Settings;
#NoDisplay=true

View File

@ -6,7 +6,7 @@ Comment=Mabox Colorizer
Keywords=
StartupNotify=false
Icon=colorizer
TryExec=colorizer -s
Exec=colorizer -s
TryExec=ycolorizer
Exec=ycolorizer
Categories=Settings;
#NoDisplay=true

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

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 @@
own_window_colour='#142c2c'
default_color='#309552'
color0='#accdc7'
color1='#61c4bc'
color2='#E8CB2D'

View File

@ -0,0 +1,5 @@
own_window_colour='#282c34'
default_color='#bbc2cf'
color0='#98be65'
color1='#c678dd'
color2='#da8548'

View File

@ -0,0 +1,5 @@
own_window_colour='#282936'
default_color='#e9e9f4'
color0='#ea51b2'
color1='#00f769'
color2='#ebff87'

View File

@ -0,0 +1,5 @@
own_window_colour='#282828'
default_color='#ebdbb2'
color0='#98971a'
color1='#d79921'
color2='#cc241d'

View File

@ -0,0 +1,5 @@
own_window_colour='#DACEA9'
default_color='#9D0006'
color0='#797410'
color1='#427B58'
color2='#076678'

View File

@ -0,0 +1,5 @@
own_window_colour='#8A1538'
default_color='#f8f8f4'
color0='#d9d9d9'
color1='#310617'
color2='#ff1f1f'

View File

@ -0,0 +1,5 @@
own_window_colour='#1e0528'
default_color='#b900b1'
color0='#ffeeff'
color1='#550068'
color2='#955ae7'

View File

@ -0,0 +1,5 @@
own_window_colour='#00222b'
default_color='#00ccff'
color0='#007a99'
color1='#99ebff'
color2='#66e0ff'

View File

@ -0,0 +1,5 @@
own_window_colour='#2b0c00'
default_color='#ff3600'
color0='#b32700'
color1='#ff9b80'
color2='#661600'

View File

@ -0,0 +1,5 @@
own_window_colour='#403500'
default_color='#ffd300'
color0='#b39500'
color1='#ffe14d'
color2='#806a00'

View File

@ -0,0 +1,5 @@
own_window_colour='#2D2A2E'
default_color='#AB9DF2'
color0='#FCFCFA'
color1='#78DCE8'
color2='#A9DC76'

View File

@ -0,0 +1,5 @@
own_window_colour='#2E3440'
default_color='#B48EAD'
color0='#D8DEE9'
color1='#88C0D0'
color2='#EBCB8B'

View File

@ -0,0 +1,5 @@
own_window_colour='#1b2b34'
default_color='#c594c5'
color0='#d8dee9'
color1='#6699cc'
color2='#99c794'

View File

@ -0,0 +1,5 @@
own_window_colour='#E1E1E1'
default_color='#C18401'
color0='#A0A1A7'
color1='#0184BD'
color2='#FAFAFA'

View File

@ -0,0 +1,5 @@
own_window_colour='#292d3e'
default_color='#c792ea'
color0='#d0d0d0'
color1='#82aaff'
color2='#ffcb6b'

View File

@ -0,0 +1,5 @@
own_window_colour='#184956'
default_color='#adbcbc'
color0='#ff665c'
color1='#84c747'
color2='#ebc13d'

View File

@ -0,0 +1,5 @@
own_window_colour='#ECE3CC'
default_color='#3A4D53'
color0='#AD8900'
color1='#CC1729'
color2='#428B00'

View File

@ -0,0 +1,5 @@
own_window_colour='#151718'
default_color='#D6D6D6'
color0='#CD3F45'
color1='#9FCA56'
color2='#E6CD69'

View File

@ -0,0 +1,5 @@
own_window_colour='#1d1f21'
default_color='#b294bb'
color0='#c5c8c6'
color1='#81a2be'
color2='#b5bd68'

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 };

Some files were not shown because too many files have changed in this diff Show More