some chores

This commit is contained in:
yigid balaban 2024-07-03 01:30:18 +03:00
parent b651859895
commit a8f68c3a52
Signed by: fyb
GPG Key ID: E21FEB2C244CB7EB
5 changed files with 201 additions and 0 deletions

40
chores/mode/firefox_theme.sh Executable file
View File

@ -0,0 +1,40 @@
#!/usr/bin/env bash
# reve desktop environment framework
# Yigid BALABAN <fyb@fybx.dev> 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

35
chores/mode/gtk_theme.sh Executable file
View File

@ -0,0 +1,35 @@
#!/usr/bin/env bash
# reve desktop environment framework
# Yigid BALABAN <fyb@fybx.dev> 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

38
chores/mode/kitty_theme.sh Executable file
View File

@ -0,0 +1,38 @@
#!/usr/bin/env bash
# reve desktop environment framework
# Yigid BALABAN <fyb@fybx.dev> 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

45
chores/mode/swww_single.sh Executable file
View File

@ -0,0 +1,45 @@
#!/usr/bin/env bash
# reve desktop environment framework
# Yigid BALABAN <fyb@fybx.dev> 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

43
chores/mode/vscodium_theme.sh Executable file
View File

@ -0,0 +1,43 @@
#!/usr/bin/env bash
# reve desktop environment framework
# Yigid BALABAN <fyb@fybx.dev> 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