reve/chores/mode/vscodium_theme.sh
2024-07-03 01:30:18 +03:00

44 lines
1.5 KiB
Bash
Executable File

#!/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