diff options
Diffstat (limited to 'lass/2configs/themes.nix')
-rw-r--r-- | lass/2configs/themes.nix | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/lass/2configs/themes.nix b/lass/2configs/themes.nix index dd98b2ef2..118619c1d 100644 --- a/lass/2configs/themes.nix +++ b/lass/2configs/themes.nix @@ -1,12 +1,18 @@ { config, lib, pkgs, ... }: let switch-theme = pkgs.writers.writeDashBin "switch-theme" '' - if test -e "/etc/themes/$1"; then + set -efux + if [ "$1" = toggle ]; then + if [ "$(${pkgs.coreutils}/bin/cat /var/theme/current_theme)" = dark ]; then + ${placeholder "out"}/bin/switch-theme light + else + ${placeholder "out"}/bin/switch-theme dark + fi + elif test -e "/etc/themes/$1"; then ${pkgs.rsync}/bin/rsync --chown=lass:users -a --delete "/etc/themes/$1/" /var/theme/config/ echo "$1" > /var/theme/current_theme - chown lass:users /var/theme/current_theme + ${pkgs.coreutils}/bin/chown lass:users /var/theme/current_theme ${pkgs.procps}/bin/pkill -HUP xsettingsd - else echo "theme $1 not found" fi @@ -15,6 +21,7 @@ in { systemd.services.xsettingsd = { wantedBy = [ "multi-user.target" ]; + after = [ "display-manager.service" ]; environment.DISPLAY = ":0"; serviceConfig = { ExecStart = "${pkgs.xsettingsd}/bin/xsettingsd -c /var/theme/config/xsettings.conf"; |