btw i use nix
1{
2 pkgs,
3 lib,
4 config,
5 ...
6}:
7
8let
9 cfg = config.custom.emacs;
10 emacs = (pkgs.emacsPackagesFor pkgs.emacs29-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}