From a2eb9eea905ebcb700771489e0759db1f9af409d Mon Sep 17 00:00:00 2001 From: Tamas Herman Date: Wed, 13 May 2026 23:27:47 +0800 Subject: [PATCH] Darwin support Co-Authored-By: Claude Opus 4.7 (1M context) --- modules/features/emacs.nix | 64 ++++++++++++++++++++++---------------- modules/flake/systems.nix | 1 + 2 files changed, 39 insertions(+), 26 deletions(-) diff --git a/modules/features/emacs.nix b/modules/features/emacs.nix index 0a1f7a7..fe9a3cf 100644 --- a/modules/features/emacs.nix +++ b/modules/features/emacs.nix @@ -1,3 +1,31 @@ +let + extraEmacsPackages = epkgs: [ + epkgs.auto-dark + epkgs.batppuccin + epkgs.cider + epkgs.clojure-mode + epkgs.clojure-ts-mode + epkgs.corfu + epkgs.eat + epkgs.gptel + epkgs.magit + epkgs.nix-mode + epkgs.nix-ts-mode + epkgs.orderless + epkgs.ox-reveal + epkgs.paredit + epkgs.pdf-tools + epkgs.rainbow-delimiters + epkgs.solarized-theme + epkgs.terraform-mode + (epkgs.treesit-grammars.with-grammars (p: [ + p.tree-sitter-java + p.tree-sitter-json + p.tree-sitter-nix + p.tree-sitter-yaml + ])) + ]; +in { flake.modules.homeManager.emacs = { pkgs, ... }: @@ -5,32 +33,7 @@ programs.emacs = { enable = true; package = pkgs.emacs-pgtk; - extraPackages = epkgs: [ - epkgs.auto-dark - epkgs.batppuccin - epkgs.cider - epkgs.clojure-mode - epkgs.clojure-ts-mode - epkgs.corfu - epkgs.eat - epkgs.gptel - epkgs.magit - epkgs.nix-mode - epkgs.nix-ts-mode - epkgs.orderless - epkgs.ox-reveal - epkgs.paredit - epkgs.pdf-tools - epkgs.rainbow-delimiters - epkgs.solarized-theme - epkgs.terraform-mode - (epkgs.treesit-grammars.with-grammars (p: [ - p.tree-sitter-java - p.tree-sitter-json - p.tree-sitter-nix - p.tree-sitter-yaml - ])) - ]; + extraPackages = extraEmacsPackages; }; services.emacs = { @@ -40,4 +43,13 @@ socketActivation.enable = true; }; }; + + perSystem = + { pkgs, ... }: + let + basePackage = if pkgs.stdenv.isDarwin then pkgs.emacs else pkgs.emacs-pgtk; + in + { + packages.emacs = (pkgs.emacsPackagesFor basePackage).emacsWithPackages extraEmacsPackages; + }; } diff --git a/modules/flake/systems.nix b/modules/flake/systems.nix index 991fba3..4c0c40c 100644 --- a/modules/flake/systems.nix +++ b/modules/flake/systems.nix @@ -2,5 +2,6 @@ systems = [ "x86_64-linux" "aarch64-linux" + "aarch64-darwin" ]; }