#!/usr/bin/env sh # Switch the COSMIC desktop between light and dark mode, and optionally the # wallpaper with it: set SYSTEM_THEME_WALLPAPER_DARK and # SYSTEM_THEME_WALLPAPER_LIGHT to image files. Emacs's auto-dark follows the # desktop's mode on its own. On another desktop, this is the file to rewrite. COSMIC="${XDG_CONFIG_HOME:-$HOME/.config}/cosmic" set_wallpaper() { [ -n "$1" ] || return 0 wallpaper="$(realpath "$1")" || return 1 sed -i 's|^.*source: Path(".*"),$| source: Path("'"$wallpaper"'"),|' \ "$COSMIC/com.system76.CosmicBackground/v1/all" } case "$1" in dark) echo "true" > "$COSMIC/com.system76.CosmicTheme.Mode/v1/is_dark" set_wallpaper "${SYSTEM_THEME_WALLPAPER_DARK:-}" ;; light) echo "false" > "$COSMIC/com.system76.CosmicTheme.Mode/v1/is_dark" set_wallpaper "${SYSTEM_THEME_WALLPAPER_LIGHT:-}" ;; *) echo "usage: system-theme dark|light" >&2 exit 1 ;; esac