Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Set the DISPLAY variable (usually :0 for the primary display)
- export DISPLAY=:0
- logger -t toggle_darkmode "DISPLAY: $DISPLAY"
- # Attempt to find the DBUS_SESSION_BUS_ADDRESS
- # Get all PIDs for gnome-session
- GNOME_PIDS=$(pgrep gnome-session)
- # Check if any PIDs were found
- if [ -z "$GNOME_PIDS" ]; then
- logger -t toggle_darkmode "Could not find any running gnome-session PIDs."
- exit 1
- fi
- DBUS_ADDRESS_FOUND=""
- for PID_SINGLE in $GNOME_PIDS; do
- # Try to extract DBUS_SESSION_BUS_ADDRESS from this specific PID's environment
- CURRENT_DBUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS "/proc/$PID_SINGLE/environ" | tr '\0' '\n' | cut -d= -f2-)
- # CURRENT_DBUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS "/proc/$PID_SINGLE/environ" | cut -d= -f2-)
- if [ -n "$CURRENT_DBUS_ADDRESS" ]; then
- DBUS_ADDRESS_FOUND="$CURRENT_DBUS_ADDRESS"
- export DBUS_SESSION_BUS_ADDRESS="$DBUS_ADDRESS_FOUND"
- break # Found it, so exit the loop
- else
- logger -t toggle_darkmode "PID $PID_SINGLE does not have DBUS_SESSION_BUS_ADDRESS."
- fi
- done
- logger -t toggle_darkmode "DBUS_SESSION_BUS_ADDRESS: $DBUS_SESSION_BUS_ADDRESS"
- # Funktion zum Umschalten auf Dark Mode
- set_dark_mode() {
- # Gnome
- gsettings set org.gnome.desktop.interface gtk-theme 'Adwaita-dark'
- gsettings set org.gnome.shell.extensions.user-theme name 'Adwaita-dark'
- gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
- # wezterm, ensure that config.automatically_reload_config = true
- sed -i 's/config.color_scheme = .*/config.color_scheme = "Catppuccin Mocha"/' ~/.wezterm.lua
- logger -t toggle_darkmode "entering dark mode"
- }
- # Funktion zum Umschalten auf Light Mode
- set_light_mode() {
- # Gnome
- gsettings set org.gnome.desktop.interface gtk-theme 'Adwaita'
- gsettings set org.gnome.shell.extensions.user-theme name 'Adwaita'
- gsettings set org.gnome.desktop.interface color-scheme 'prefer-light'
- # wezterm, ensure that config.automatically_reload_config = true
- sed -i 's/config.color_scheme = .*/config.color_scheme = "Catppuccin Latte"/' ~/.wezterm.lua
- logger -t toggle_darkmode "entering light mode"
- }
- # Funktion für den Auto-Modus basierend auf Uhrzeit
- set_auto_mode() {
- # Aktuelle Stunde im 24h-Format (z. B. 14 für 14:00 Uhr)
- current_hour=$(date +%H)
- # Zwischen 6:00 und 20:00 Uhr Light Mode, sonst Dark Mode
- if [ "$current_hour" -ge 6 ] && [ "$current_hour" -lt 20 ]; then
- set_light_mode
- else
- set_dark_mode
- fi
- }
- if [ "$1" = "light" ]; then
- set_light_mode
- elif [ "$1" = "dark" ]; then
- set_dark_mode
- elif [ "$1" = "auto" ]; then
- set_auto_mode
- else
- echo "Unknown parameter, must be [light|dark|auto]."
- exit 1
- fi
Advertisement
Add Comment
Please, Sign In to add comment