/
emacs.nix
74 lines (74 loc) · 1.61 KB
/
emacs.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
{ writeTextFile
, emacsConfigText ? ''
(setq mouse-wheel-scroll-amount '(1 ((shift) . 1)))
(setq mouse-wheel-progressive-speed nil)
(set-variable 'inhibit-startup-screen t)
(setq whitespace-style '(tab-mark face trailing tabs))
(global-whitespace-mode)
(global-undo-tree-mode)
(require 'evil)
(evil-set-initial-state 'vterm-mode 'emacs)
(evil-set-initial-state 'ivy-occur-mode 'emacs)
(evil-set-initial-state 'ivy-occur-grep-mode 'emacs)
(evil-mode)
(require 'magit)
(require 'notmuch)
(counsel-mode)
(global-set-key (kbd "C-x f") 'counsel-rg)
(global-set-key (kbd "C-c u") 'browse-url-at-point)
(direnv-mode)
''
, buildEnv
, haskellPackages
, runCommandNoCC
, emacsPackagesFor
, callPackage
, notmuch
, linkFarm
, emacs
}:
let
emacsConfig = writeTextFile {
name = "default.el";
destination = "/share/emacs/site-lisp/default.el";
text = emacsConfigText;
};
packagesFun = ps: [ emacsConfig ] ++ (with ps; [
evil
markdown-mode
nix-mode
haskell-mode
sudo-edit
magit
forge
flycheck
yaml-mode
rust-mode
dhall-mode
docbook
company
lsp-mode
lsp-ui
lsp-haskell
lsp-ivy
helm-lsp
php-mode
transpose-frame
typescript-mode
counsel
notmuch.emacs
jq-mode
undo-tree
vterm
vterm-toggle
keyfreq
direnv
scad-mode
]);
nixpkgs-emacs = (emacsPackagesFor emacs).emacsWithPackages packagesFun;
my-emacs = buildEnv {
name = "emacs-packages";
paths = packagesFun (emacsPackagesFor emacs);
pathsToLink = ["/share/emacs"];
};
in nixpkgs-emacs