Commit 08d30697 authored by Roman Alifanov's avatar Roman Alifanov

gui: many improvements

parent f24f565c
......@@ -3,8 +3,17 @@
# shellcheck source=/usr/bin/shell-config
source shell-config
CONFIG_DIR="/etc/ximper-unified-theme-switcher"
CONFIG_FILE="$CONFIG_DIR/themes"
export GDK_BACKEND="x11"
SWITCHER_TMP_PATH=$(mktemp -d -t ximper-unified-theme-switcher-gui.XXXXXXX)
cleanup() {
rm -rf "$SWITCHER_TMP_PATH"
}
trap "cleanup" EXIT
SYSTEM_CONFIG_DIR="/etc/ximper-unified-theme-switcher"
SYSTEM_CONFIG_FILE="$SYSTEM_CONFIG_DIR/themes"
HOME_CONFIG_DIR="$HOME/.config/ximper-unified-theme-switcher"
HOME_CONFIG_FILE="$HOME_CONFIG_DIR/themes"
......@@ -12,9 +21,9 @@ HOME_CONFIG_FILE="$HOME_CONFIG_DIR/themes"
# Функция для создания конфига в домашнем каталоге
create_config() {
if [ "$(id -u)" -eq 0 ]; then
mkdir -p "$CONFIG_DIR"
touch "$CONFIG_FILE"
echo "$CONFIG_FILE"
mkdir -p "$SYSTEM_CONFIG_DIR"
touch "$SYSTEM_CONFIG_FILE"
echo "$SYSTEM_CONFIG_FILE"
else
mkdir -p "$HOME_CONFIG_DIR"
touch "$HOME_CONFIG_FILE"
......@@ -24,8 +33,8 @@ create_config() {
cfg_check() {
# Проверка наличия конфига в /etc
if [ -f "$CONFIG_FILE" ] && [ -w "$CONFIG_FILE" ]; then
echo "$CONFIG_FILE"
if [ -f "$SYSTEM_CONFIG_FILE" ] && [ -w "$SYSTEM_CONFIG_FILE" ]; then
echo "$SYSTEM_CONFIG_FILE"
else
# Если нет конфига в /etc, ищем в домашнем каталоге
if [ -f "$HOME_CONFIG_FILE" ]; then
......@@ -35,6 +44,7 @@ cfg_check() {
fi
fi
}
EDITABLE_CONFIG_FILE=$(cfg_check)
echo "$EDITABLE_CONFIG_FILE"
......@@ -113,32 +123,70 @@ kv-themes-list() {
echo "$OUTPUT" | tr '\n' '!' | sed 's/.$//'
}
change-style() {
local CURRENT_THEME
CURRENT_THEME=$(gsettings get org.gnome.desktop.interface color-scheme | awk -F"'" '{print $2}')
if [ "$CURRENT_THEME" == "default" ]; then
gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
else
gsettings set org.gnome.desktop.interface color-scheme 'default'
fi
}
export -f change-style
YAD_RANDOM=$RANDOM
while true; do
yad --form \
--plug=$YAD_RANDOM --tabnum=1 \
--columns=2 --align=center \
--field="change style to light/dark:FBTN" \
"bash -c 'change-style'" \
&
yad --form \
--plug=$YAD_RANDOM --tabnum=2 \
--columns=2 -align=center \
\
--field="Kvantum light theme:CB" \
"$(kv-themes-list light)" \
--field="Kvantum dark theme:CB" \
"$(kv-themes-list dark)" \
\
--field="GTK3 light theme:CB" \
"$(gtk3-themes-list light)" \
--field="GTK3 dark theme:CB" \
"$(gtk3-themes-list dark)" \
\
> "${SWITCHER_TMP_PATH}/SETTINGS" \
&
yad --paned \
--key=$YAD_RANDOM \
--title="ximper-unified-theme-switcher-gui" --class="ximper-unified-theme-switcher-gui" \
--orient=vert --splitter=0 --width=300 --height=200 \
\
--button="yad-apply:0" \
--button="yad-cancel:1"
if [[ $? == 252 || $? == 1 ]]; then
echo "EXIT"
break
fi
NEW_SETTINGS=$(yad --form --columns=2 \
--field="Kvantum light theme:CB" "$(kv-themes-list light)" \
--field="Kvantum dark theme:CB" "$(kv-themes-list dark)" \
--field="GTK3 light theme:CB" "$(gtk3-themes-list light)" \
--field="GTK3 dark theme:CB" "$(gtk3-themes-list dark)" \
\
--button="yad-apply:0" \
--button="yad-cancel:1" \
)
if [[ $? == 252 || $? == 1 ]]; then
echo "EXIT"
exit 0
fi
IFS='|' read -r KV_LIGHT KV_DARK GTK3_LIGHT GTK3_DARK <<< "$NEW_SETTINGS"
NEW_SETTINGS=$(cat "$SWITCHER_TMP_PATH/SETTINGS")
IFS='|' read -r KV_LIGHT KV_DARK GTK3_LIGHT GTK3_DARK <<< "$NEW_SETTINGS"
declare -A THEMES=(
["KV_LIGHT_THEME"]="$KV_LIGHT"
["KV_DARK_THEME"]="$KV_DARK"
["GTK3_LIGHT_THEME"]="$GTK3_LIGHT"
["GTK3_DARK_THEME"]="$GTK3_DARK"
)
for THEME in "${!THEMES[@]}"; do
shell_config_set "$EDITABLE_CONFIG_FILE" "$THEME" "${THEMES[$THEME]}"
done
\ No newline at end of file
done
done
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment