blob: 5eb74e8d63003bdb985c98776040f179926d9a27 (
plain)
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
105
106
107
108
109
110
111
112
|
(define-module (jd home services emacs)
#:use-module (jd packages emacs)
#:use-module (gnu packages)
#:use-module (gnu packages emacs)
#:use-module (gnu services)
#:use-module (gnu services configuration)
#:use-module (gnu home services)
#:use-module (gnu home services shepherd)
#:use-module (gnu home services desktop)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix profiles))
(define-configuration home-emacs-service-configuration
(emacs-package
(package emacs-next-pgtk)
"Emacs packages"))
(define (emacs-profile-service config)
(append (list emacs-org-roam-ui
emacs-lsp-mode!
(home-emacs-service-configuration-emacs-package
config))
(specifications->packages '("emacs-sway"
"emacs-shackle"
"emacs-ytdl"
"emacs-desktop-environment"
"emacs-exwm"
"emacs-perspective"
"emacs-mu4e-alert"
"mu"
"isync"
"emacs-htmlize"
"emacs-bluetooth"
"emacs-nov-el"
"emacs-password-store"
"emacs-mastodon"
"emacs-elfeed"
"emacs-pdf-tools"
"emacs-emms"
"emacs-all-the-icons-dired"
"emacs-vterm"
"emacs-restclient"
"emacs-magit"
"emacs-neotree"
"emacs-projectile"
"emacs-company-box"
"emacs-company"
"emacs-docker"
"emacs-yaml-mode"
"emacs-web-mode"
"emacs-flycheck"
"emacs-tide"
"emacs-cider"
"emacs-typescript-mode"
"emacs-pyvenv"
"emacs-geiser-guile"
"emacs-racket-mode"
"emacs-geiser-racket"
"emacs-geiser"
"emacs-sly"
"emacs-rainbow-delimiters"
"emacs-paredit"
;; "emacs-lsp-ivy"
;; "emacs-lsp-mode"
"emacs-org-pomodoro"
"emacs-org-roam"
"emacs-org-roam-bibtex"
"emacs-org-superstar"
"emacs-org"
"emacs-ox-pandoc"
"emacs-beacon"
"emacs-all-the-icons"
"emacs-which-key"
"emacs-counsel"
"emacs-ivy"
"emacs-hl-todo"
"emacs-diminish"
"emacs-solarized-theme"
"font-terminus"
"emacs-undo-tree"
"emacs-hydra"
"emacs-multiple-cursors"
"emacs-general"
"emacs-guix"
"emacs-doom-modeline"
"emacs-use-package"))))
(define (emacs-shepherd-services config)
(list (shepherd-service
(documentation "Emacs daemon.")
(provision '(emacs))
(start #~(make-forkexec-constructor
(list #$(file-append (home-emacs-service-configuration-emacs-package
config)
"/bin/emacs")
"--fg-daemon")))
(stop #~(make-kill-destructor)))))
(define-public home-emacs-service-type
(service-type (name 'home-emacs)
(extensions (list (service-extension home-profile-service-type
emacs-profile-service)
(service-extension home-shepherd-service-type
emacs-shepherd-services)
))
(default-value (home-emacs-service-configuration))
(description "Runs emacs daemon service.")))
|