From a8f68c3a529502d9611d1c28827c74ca1fea236a Mon Sep 17 00:00:00 2001 From: Yigid BALABAN Date: Wed, 3 Jul 2024 01:30:18 +0300 Subject: [PATCH] some chores --- chores/mode/firefox_theme.sh | 40 +++++++++++++++++++++++++++++++ chores/mode/gtk_theme.sh | 35 +++++++++++++++++++++++++++ chores/mode/kitty_theme.sh | 38 +++++++++++++++++++++++++++++ chores/mode/swww_single.sh | 45 +++++++++++++++++++++++++++++++++++ chores/mode/vscodium_theme.sh | 43 +++++++++++++++++++++++++++++++++ 5 files changed, 201 insertions(+) create mode 100755 chores/mode/firefox_theme.sh create mode 100755 chores/mode/gtk_theme.sh create mode 100755 chores/mode/kitty_theme.sh create mode 100755 chores/mode/swww_single.sh create mode 100755 chores/mode/vscodium_theme.sh diff --git a/chores/mode/firefox_theme.sh b/chores/mode/firefox_theme.sh new file mode 100755 index 0000000..df3259e --- /dev/null +++ b/chores/mode/firefox_theme.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash + +# reve desktop environment framework +# Yigid BALABAN 2024 + +# chore script +# type mode +# name firefox_theme.sh +# desc changes the Firefox theme CSS depending on the desktop_mode +# vars fcss_dark, fcss_light + +if ! command -v firefox &> /dev/null; then + echo "Mozilla Firefox is not installed. Please install it and try again." + exit 1 +fi + +reve_folder="$HOME/.config/reve" +reve_desktop_mode="$reve_folder/desktop_mode" +target="$reve_folder/chore/firefox/target" +css_dark="$reve_folder/chore/firefox/css_dark" +css_light="$reve_folder/chore/firefox/css_light" + +util_readf () { + local filename=$1 + + if [[ -f "$filename" ]]; then + cat "$filename" + else + echo "util_readf: File not found: $filename" >&2 + return 1 + fi +} + +rt_target=$( util_readf "$target" ) +current_mode=$( util_readf "$reve_desktop_mode" ) +if [[ $current_mode == "dark" ]]; then + cp $( util_readf "$css_dark" ) "$rt_target" +else + cp $( util_readf "$css_light" ) "$rt_target" +fi diff --git a/chores/mode/gtk_theme.sh b/chores/mode/gtk_theme.sh new file mode 100755 index 0000000..e78d193 --- /dev/null +++ b/chores/mode/gtk_theme.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash + +# reve desktop environment framework +# Yigid BALABAN 2024 + +# chore script +# type mode +# name gtk_theme.sh +# desc changes the GTK theme and color-scheme according to desktop_mode +# vars gtk_dark_theme, gtk_light_theme + +reve_folder="$HOME/.config/reve" +reve_desktop_mode="$reve_folder/desktop_mode" +gtk_dark_theme="$reve_folder/chore/gtk_dark_theme" +gtk_light_theme="$reve_folder/chore/gtk_light_theme" + +util_readf () { + local filename=$1 + + if [[ -f "$filename" ]]; then + cat "$filename" + else + echo "util_readf: File not found: $filename" >&2 + return 1 + fi +} + +current_mode=$( util_readf "$reve_desktop_mode" ) +if [[ "$current_mode" == "dark" ]]; then + gsettings set org.gnome.desktop.interface gtk-theme $( util_readf "$gtk_dark_theme" ) + gsettings set org.gnome.desktop.interface color-scheme prefer-dark +else + gsettings set org.gnome.desktop.interface gtk-theme $( util_readf "$gtk_light_theme" ) + gsettings set org.gnome.desktop.interface color-scheme prefer-light +fi diff --git a/chores/mode/kitty_theme.sh b/chores/mode/kitty_theme.sh new file mode 100755 index 0000000..81c2ca9 --- /dev/null +++ b/chores/mode/kitty_theme.sh @@ -0,0 +1,38 @@ +#!/usr/bin/env bash + +# reve desktop environment framework +# Yigid BALABAN 2024 + +# chore script +# type mode +# name kitty_theme.sh +# desc changes kitty's theme depending on desktop_mode +# vars kitty_dark_theme, kitty_light_theme + +if ! command -v kitty &> /dev/null; then + echo "kitty is not installed. Please install it and try again." + exit 1 +fi + +reve_folder="$HOME/.config/reve" +reve_desktop_mode="$reve_folder/desktop_mode" +kitty_dark_theme="$reve_folder/chore/kitty/dark" +kitty_light_theme="$reve_folder/chore/kitty/light" + +util_readf () { + local filename=$1 + + if [[ -f "$filename" ]]; then + cat "$filename" + else + echo "util_readf: File not found: $filename" >&2 + return 1 + fi +} + +current_mode=$( util_readf "$reve_desktop_mode" ) +if [[ $current_mode == "dark" ]]; then + kitten themes --reload-in=all "$( util_readf "$kitty_dark_theme" )" +else + kitten themes --reload-in=all "$( util_readf "$kitty_light_theme" )" +fi diff --git a/chores/mode/swww_single.sh b/chores/mode/swww_single.sh new file mode 100755 index 0000000..dca167e --- /dev/null +++ b/chores/mode/swww_single.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash + +# reve desktop environment framework +# Yigid BALABAN 2024 + +# chore script +# type mode +# name swww_single.sh +# desc changes the background depending on the desktop_mode +# vars bg_dark, bg_light + +if ! command -v swww &> /dev/null; then + echo "swww is not installed. Please install it and try again." + exit 1 +fi + +reve_folder="$HOME/.config/reve" +reve_desktop_mode="$reve_folder/desktop_mode" +bg_dark="$reve_folder/chore/bg_dark" +bg_light="$reve_folder/chore/bg_light" + +util_readf () { + local filename=$1 + + if [[ -f "$filename" ]]; then + cat "$filename" + else + echo "util_readf: File not found: $filename" >&2 + return 1 + fi +} + +current_mode=$( util_readf "$reve_desktop_mode" ) +types=("left" "right" "top" "bottom" "wipe" "wave" "grow" "outer") +ltypes=${#types[@]} +rindex=$((RANDOM % ltypes)) +rtype=${types[rindex]} + +if [[ $current_mode == "dark" ]]; then + swww img --transition-type "$rtype" --transition-pos 1,1 --transition-step 90 "$bg_dark" + notify-send --urgency=low --expire-time=1450 --icon="$bg_dark" --app-name="reve: swww_single" "Wallpaper changed" "Wallpaper changed and saved on dark mode." +else + swww img --transition-type "$rtype" --transition-pos 1,1 --transition-step 90 "$bg_light" + notify-send --urgency=low --expire-time=1450 --icon="$bg_light" --app-name="reve: swww_single" "Wallpaper changed" "Wallpaper changed and saved on light mode." +fi diff --git a/chores/mode/vscodium_theme.sh b/chores/mode/vscodium_theme.sh new file mode 100755 index 0000000..a1e0d7e --- /dev/null +++ b/chores/mode/vscodium_theme.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env bash + +# reve desktop environment framework +# Yigid BALABAN 2024 + +# chore script +# type mode +# name vscodium_theme.sh +# desc changes the VSCodium theme according to the desktop_mode and preferences set in VSCodium config +# vars internal VSCodium preferences + +if ! command -v vscodium &> /dev/null; then + echo "vscodium is not installed. Please install it and try again." + exit 1 +fi + +reve_folder="$HOME/.config/reve" +reve_desktop_mode="$reve_folder/desktop_mode" +path_settings="$HOME/.config/VSCodium/User/settings.json" +preferred_dark=$(grep -o '"workbench.preferredDarkColorTheme": *"[^"]*"' < "$path_settings" | cut -d '"' -f4) +preferred_light=$(grep -o '"workbench.preferredLightColorTheme": *"[^"]*"' < "$path_settings" | cut -d '"' -f4) + +util_readf () { + local filename=$1 + + if [[ -f "$filename" ]]; then + cat "$filename" + else + echo "util_readf: File not found: $filename" >&2 + return 1 + fi +} + +case $( util_readf $reve_desktop_mode ) in + 'light' | l) + sed -i "s/\"workbench.colorTheme\": \"[^\"]*\"/\"workbench.colorTheme\": \"$preferred_light\"/" "$path_settings";; + 'dark' | d) + sed -i "s/\"workbench.colorTheme\": \"[^\"]*\"/\"workbench.colorTheme\": \"$preferred_dark\"/" "$path_settings";; + *) + echo "[vscodium_theme] [W] Provided argument: $reve_desktop_mode" + echo "[vscodium_theme] [E] Invalid argument. Please provide either 'light' or 'dark'." + exit 1;; +esac