summaryrefslogtreecommitdiffstats
path: root/guix/jd/home/services/emacs.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix/jd/home/services/emacs.scm')
-rw-r--r--guix/jd/home/services/emacs.scm112
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