-
Notifications
You must be signed in to change notification settings - Fork 0
/
emacs-deps.nix
104 lines (87 loc) · 2.06 KB
/
emacs-deps.nix
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
{
pkgs,
lib,
config,
...
}:
with lib;
let
cfg = config.myModules.emacs;
myEmacs = pkgs.emacs29.override {
# Already default to true.
# withNativeCompile = true;
# withImageMagick = true;
};
in
{
config = mkIf cfg.enable (mkMerge [
# Generic dependencies.
{
home.packages = with pkgs; [
ripgrep
fd
emacs-lsp-booster
math-preview
ghostscript
pandoc
imagemagick
aspellDicts.en
nodePackages.prettier
universal-ctags
# Nix LSP
nil
myEmacs
];
# So that enchant-2 and aspell can find installed dictionaries.
# REVIEW: why this patch does not take effects? https://github.com/NixOS/nixpkgs/blob/ad0b5eed1b6031efaed382844806550c3dcb4206/pkgs/development/libraries/aspell/default.nix#L30
home.file.".aspell.conf".text = ''
dict-dir ${config.home.profileDirectory}/lib/aspell
'';
}
# Dynamic modules
{
home.packages =
with pkgs;
let
jinx-mod = callPackage ./pkgs/jinx-module { };
vterm-module = callPackage ./pkgs/vterm-module { };
in
[
jinx-mod
vterm-module
];
}
# Lisp files extract from sources.
{
home.packages = with pkgs; [
emacsPackages.gn-mode-from-sources
emacsPackages.cmake-mode
emacsPackages.ninja-mode
];
}
# macOS dependencies.
{
home.packages = mkIf pkgs.stdenv.hostPlatform.isDarwin (
with pkgs;
let
soffice-cli = writeShellApplication {
name = "soffice-cli";
text = ''
${libreoffice-bin}/Applications/LibreOffice.app/Contents/MacOS/soffice "$@"
'';
};
in
[
pngpaste
soffice-cli
]
);
}
{
programs.zsh.shellAliases = {
emacs-kill-server = "emacsclient -e '(save-buffers-kill-emacs)'";
};
home.sessionPath = mkAfter [ "${config.xdg.configHome}/emacs/bin" ];
}
]);
}