at master 890 B view raw
1{ 2 pkgs, 3 lib, 4 config, 5 ... 6}: 7 8let 9 cfg = config.custom.emacs; 10 emacs = (pkgs.emacsPackagesFor pkgs.emacs30-pgtk).emacsWithPackages ( 11 epkgs: with epkgs; [ 12 treesit-grammars.with-all-grammars 13 vterm 14 mu4e 15 ] 16 ); 17in 18{ 19 options.custom.emacs.enable = lib.mkEnableOption "emacs"; 20 21 config = lib.mkIf cfg.enable { 22 home.packages = with pkgs; [ 23 binutils 24 emacs 25 gnutls 26 imagemagick 27 pinentry-emacs 28 # for undo-fu-session/undo-tree compression 29 zstd 30 ]; 31 32 programs.zsh.initExtra = lib.mkAfter '' 33 PATH="''${XDG_CONFIG_HOME:-$HOME/.config}/emacs/bin":$PATH 34 ''; 35 36 home.file = { 37 ".mail.cap".text = '' 38 application/pdf; xdg-open %s 39 ''; 40 }; 41 42 services.emacs = { 43 enable = true; 44 package = emacs; 45 socketActivation.enable = true; 46 # defaultEditor = true; 47 }; 48 }; 49}