about summary refs log tree commit diff
path: root/users/grfn/system/home/modules/emacs.nix
blob: 4130379c3d1f58f1a3c1722d5abff01cbf568e24 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
{ pkgs, lib, config, ... }:

with lib;

let
  # doom-emacs = pkgs.callPackage (builtins.fetchTarball {
  #   url = https://github.com/vlaci/nix-doom-emacs/archive/master.tar.gz;
  # }) {
  #   doomPrivateDir = ./doom.d;  # Directory containing your config.el init.el
  #                               # and packages.el files
  # };

  depot = config.lib.depot;

in
{
  imports = [
    ./lib/cloneRepo.nix
  ];

  # home.packages = [ doom-emacs ];
  # home.file.".emacs.d/init.el".text = ''
  #     (load "default.el")
  # '';
  #

  config = mkMerge [
    {
      home.packages = with pkgs; [
        # LaTeX (for org export)
        (pkgs.texlive.combine {
          inherit (pkgs.texlive)
            capt-of
            collection-fontsrecommended
            dvipng
            fancyvrb
            float
            fncychap
            framed
            mathpartir
            needspace
            parskip
            scheme-basic
            semantic
            tabulary
            titlesec
            ulem
            upquote
            varwidth
            wrapfig
            bussproofs
            bussproofs-extra
            ;
        })

        ispell

        ripgrep
        coreutils
        fd
        clang
        gnutls
        emacsPackages.telega
      ];

      programs.emacs = {
        enable = true;
        package = pkgs.emacs-unstable;
        extraPackages = (epkgs:
          (with epkgs; [
            tvlPackages.dottime
            tvlPackages.tvl
            vterm
            telega
          ])
        );
      };

      grfn.impure.clonedRepos = {
        orgClubhouse = {
          github = "glittershark/org-clubhouse";
          path = "code/org-clubhouse";
        };

        doomEmacs = {
          github = "hlissner/doom-emacs";
          path = ".emacs.d";
          after = [ "emacs.d" ];
          onClone = "bin/doom install";
        };

        "emacs.d" = {
          github = "glittershark/emacs.d";
          path = ".doom.d";
          after = [ "orgClubhouse" ];
        };
      };

      programs.zsh.shellAliases = {
        "ec" = "emacsclient";
      };
    }
    (mkIf pkgs.stdenv.isLinux {
      # Notes
      services.syncthing.enable = true;
    })
  ];
}