about summary refs log tree commit diff
path: root/home/modules/emacs.nix
blob: 71d7cbf70efedb91b398cec8229984957ab2c830 (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
{ pkgs, 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
 # };
in {
  # imports = [ ./lib/cloneRepo.nix ];

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

  home.packages = with pkgs; [
    # haskellPackages.Agda BROKEN

    # LaTeX (for org export)
    (pkgs.texlive.combine {
      inherit (pkgs.texlive)
        scheme-basic collection-fontsrecommended ulem
        fncychap titlesec tabulary varwidth framed fancyvrb float parskip
        wrapfig upquote capt-of needspace;
    })

    ispell

    ripgrep
    coreutils
    fd
    clang
    gnutls
  ];

  nixpkgs.overlays = [
    (import (builtins.fetchTarball {
      url = "https://github.com/nix-community/emacs-overlay/archive/54afb061bdd12c61bbfcc13bad98b7a3aab7d8d3.tar.gz";
      sha256 = "0hrbg65d5h0cb0nky7a46md7vlvhajq1hf0328l2f7ln9hznqz6j";
    }))
  ];

  programs.emacs = {
    enable = true;
    package = pkgs.emacsUnstable;
  };

  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"];
    };
  };

  # Notes
  services.syncthing = {
    enable = true;
    tray = true;
  };
}