gnome-therminal-autotheme/sync-terminal-theme.sh
2025-04-16 16:47:59 +02:00

55 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
# Get the default profile UUID
PROFILE_ID=$(gsettings get org.gnome.Terminal.ProfilesList default | tr -d \')
PROFILE_PATH="/org/gnome/terminal/legacy/profiles:/:$PROFILE_ID"
# Define themes
set_dark_theme() {
gsettings set org.gnome.Terminal.Legacy.Settings theme-variant 'dark'
dconf write $PROFILE_PATH/use-theme-colors false
dconf write $PROFILE_PATH/foreground-color "'#d4d4d4'"
dconf write $PROFILE_PATH/background-color "'#1e1e1e'"
dconf write $PROFILE_PATH/palette "['#1e1e1e', '#f44747', '#619955', '#ffaf00', '#85dfff', '#d27bff', '#4EC9B0', '#d4d4d4', '#808080', '#f44747', '#619955', '#ffaf00', '#85dfff', '#d27bff', '#4EC9B0', '#ffffff']"
dconf write $PROFILE_PATH/cursor-color "'#d4d4d4'"
}
set_light_theme() {
gsettings set org.gnome.Terminal.Legacy.Settings theme-variant 'light'
dconf write $PROFILE_PATH/use-theme-colors false
dconf write $PROFILE_PATH/foreground-color "'#000000'"
dconf write $PROFILE_PATH/background-color "'#ffffff'"
dconf write $PROFILE_PATH/palette "['#000000', '#cc0000', '#4e9a06', '#c4a000', '#3465a4', '#75507b', '#06989a', '#d3d7cf', '#555753', '#ef2929', '#8ae234', '#fce94f', '#729fcf', '#ad7fa8', '#34e2e2', '#eeeeec']"
dconf write $PROFILE_PATH/cursor-color "'#000000'"
}
update_terminal_theme() {
SCHEME=$(gsettings get org.gnome.desktop.interface color-scheme)
if [[ "$SCHEME" == *"dark"* ]]; then
set_dark_theme
else
set_light_theme
fi
}
# Check for manual arguments (light or dark)
if [[ "${1:-}" == "light" ]]; then
set_light_theme
echo "[sync-script] Applied light theme manually."
exit 0
elif [[ "${1:-}" == "dark" ]]; then
set_dark_theme
echo "[sync-script] Applied dark theme manually."
exit 0
fi
# Run once immediately to apply based on the current GNOME theme
update_terminal_theme
# Monitor and auto-update GNOME theme changes
echo "[sync-script] Monitoring GNOME theme changes..."
gsettings monitor org.gnome.desktop.interface color-scheme | while read -r; do
update_terminal_theme
done