summary refs log tree commit diff stats
path: root/user/settings/darwin.nix
diff options
context:
space:
mode:
Diffstat (limited to 'user/settings/darwin.nix')
-rw-r--r--user/settings/darwin.nix33
1 files changed, 33 insertions, 0 deletions
diff --git a/user/settings/darwin.nix b/user/settings/darwin.nix
index 2ca4ddf6..75df5271 100644
--- a/user/settings/darwin.nix
+++ b/user/settings/darwin.nix
@@ -78,6 +78,39 @@
         StandardOutputPath = "/dev/null";
       };
     };
+    dark-light-mode = {
+      enable = true;
+      config = {
+        WatchPaths = [ "${config.home.homeDirectory}/Library/Preferences/.GlobalPreferences.plist" ];
+        ProgramArguments = [
+          "/bin/sh"
+          (
+            toString
+              (
+                pkgs.writeShellScript
+                  "toggle-dark-light-mode"
+                  ''
+                    if defaults read -g AppleInterfaceStyle &>/dev/null ; then
+                      MODE="dark"
+                    else
+                      MODE="light"
+                    fi
+                    emacsSwitchTheme () {
+                      if pgrep -q Emacs; then
+                        if [[  $MODE == "dark"  ]]; then
+                            emacsclient --eval "(modus-themes-load-theme (cadr modus-themes-to-toggle))"
+                        elif [[  $MODE == "light"  ]]; then
+                            emacsclient --eval "(modus-themes-load-theme (car modus-themes-to-toggle))"
+                        fi
+                      fi
+                    }
+                    emacsSwitchTheme $@
+                  ''
+              )
+          )
+        ];
+      };
+    };
   };
 
   programs.zsh.shellAliases = {