diff options
Diffstat (limited to 'guix/jd/home/services/emacs.scm')
-rw-r--r-- | guix/jd/home/services/emacs.scm | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/guix/jd/home/services/emacs.scm b/guix/jd/home/services/emacs.scm new file mode 100644 index 0000000..5eb74e8 --- /dev/null +++ b/guix/jd/home/services/emacs.scm | |||
@@ -0,0 +1,112 @@ | |||
1 | (define-module (jd home services emacs) | ||
2 | #:use-module (jd packages emacs) | ||
3 | |||
4 | #:use-module (gnu packages) | ||
5 | #:use-module (gnu packages emacs) | ||
6 | |||
7 | #:use-module (gnu services) | ||
8 | #:use-module (gnu services configuration) | ||
9 | #:use-module (gnu home services) | ||
10 | #:use-module (gnu home services shepherd) | ||
11 | #:use-module (gnu home services desktop) | ||
12 | |||
13 | #:use-module (guix gexp) | ||
14 | #:use-module (guix packages) | ||
15 | #:use-module (guix profiles)) | ||
16 | |||
17 | (define-configuration home-emacs-service-configuration | ||
18 | (emacs-package | ||
19 | (package emacs-next-pgtk) | ||
20 | "Emacs packages")) | ||
21 | |||
22 | (define (emacs-profile-service config) | ||
23 | (append (list emacs-org-roam-ui | ||
24 | emacs-lsp-mode! | ||
25 | (home-emacs-service-configuration-emacs-package | ||
26 | config)) | ||
27 | (specifications->packages '("emacs-sway" | ||
28 | "emacs-shackle" | ||
29 | "emacs-ytdl" | ||
30 | "emacs-desktop-environment" | ||
31 | "emacs-exwm" | ||
32 | "emacs-perspective" | ||
33 | "emacs-mu4e-alert" | ||
34 | "mu" | ||
35 | "isync" | ||
36 | "emacs-htmlize" | ||
37 | "emacs-bluetooth" | ||
38 | "emacs-nov-el" | ||
39 | "emacs-password-store" | ||
40 | "emacs-mastodon" | ||
41 | "emacs-elfeed" | ||
42 | "emacs-pdf-tools" | ||
43 | "emacs-emms" | ||
44 | "emacs-all-the-icons-dired" | ||
45 | "emacs-vterm" | ||
46 | "emacs-restclient" | ||
47 | "emacs-magit" | ||
48 | "emacs-neotree" | ||
49 | "emacs-projectile" | ||
50 | "emacs-company-box" | ||
51 | "emacs-company" | ||
52 | "emacs-docker" | ||
53 | "emacs-yaml-mode" | ||
54 | "emacs-web-mode" | ||
55 | "emacs-flycheck" | ||
56 | "emacs-tide" | ||
57 | "emacs-cider" | ||
58 | "emacs-typescript-mode" | ||
59 | "emacs-pyvenv" | ||
60 | "emacs-geiser-guile" | ||
61 | "emacs-racket-mode" | ||
62 | "emacs-geiser-racket" | ||
63 | "emacs-geiser" | ||
64 | "emacs-sly" | ||
65 | "emacs-rainbow-delimiters" | ||
66 | "emacs-paredit" | ||
67 | ;; "emacs-lsp-ivy" | ||
68 | ;; "emacs-lsp-mode" | ||
69 | "emacs-org-pomodoro" | ||
70 | "emacs-org-roam" | ||
71 | "emacs-org-roam-bibtex" | ||
72 | "emacs-org-superstar" | ||
73 | "emacs-org" | ||
74 | "emacs-ox-pandoc" | ||
75 | "emacs-beacon" | ||
76 | "emacs-all-the-icons" | ||
77 | "emacs-which-key" | ||
78 | "emacs-counsel" | ||
79 | "emacs-ivy" | ||
80 | "emacs-hl-todo" | ||
81 | "emacs-diminish" | ||
82 | "emacs-solarized-theme" | ||
83 | "font-terminus" | ||
84 | "emacs-undo-tree" | ||
85 | "emacs-hydra" | ||
86 | "emacs-multiple-cursors" | ||
87 | "emacs-general" | ||
88 | "emacs-guix" | ||
89 | "emacs-doom-modeline" | ||
90 | "emacs-use-package")))) | ||
91 | |||
92 | (define (emacs-shepherd-services config) | ||
93 | (list (shepherd-service | ||
94 | (documentation "Emacs daemon.") | ||
95 | (provision '(emacs)) | ||
96 | (start #~(make-forkexec-constructor | ||
97 | (list #$(file-append (home-emacs-service-configuration-emacs-package | ||
98 | config) | ||
99 | "/bin/emacs") | ||
100 | "--fg-daemon"))) | ||
101 | (stop #~(make-kill-destructor))))) | ||
102 | |||
103 | (define-public home-emacs-service-type | ||
104 | (service-type (name 'home-emacs) | ||
105 | (extensions (list (service-extension home-profile-service-type | ||
106 | emacs-profile-service) | ||
107 | (service-extension home-shepherd-service-type | ||
108 | emacs-shepherd-services) | ||
109 | )) | ||
110 | (default-value (home-emacs-service-configuration)) | ||
111 | (description "Runs emacs daemon service."))) | ||
112 | |||