diff options
author | Tom Willemse | 2022-10-04 23:19:34 -0700 |
---|---|---|
committer | Tom Willemse | 2022-10-04 23:19:34 -0700 |
commit | a85ad3fddd0d9bd30185d2af669a81e9433a8eee (patch) | |
tree | 8dfddd4dc411abebffc412221506cdc79d3f2ba6 /oni/home/services/emacs.scm | |
parent | 6cdda0dc5acc2ce9b3abf9e68a3e61a4ba5f4b91 (diff) | |
download | new-dotfiles-a85ad3fddd0d9bd30185d2af669a81e9433a8eee.tar.gz new-dotfiles-a85ad3fddd0d9bd30185d2af669a81e9433a8eee.zip |
Update rincewind configuration
- Sort all use-module directives
- Remove ‘gcc-toolchain’ from the installed packages because it appears that the
regular emacs-next (not from a git checkout) works fine without it.
- Add ‘emacs-org-roam’ and ‘emacs-vterm’ packages because they both come with C
modules and installing them on-the-fly in Emacs wasn't working properly.
- Add ‘fakeroot’ package because it appears to be needed now that I'm using
guix-home if I want to build packages for Archlinux. This still happens when I
need to install some proprietary program from the AUR.
- Add an Emacs configuration service. For now this just ensures that the
‘emacs-next’ package is installed and creates a shepherd service that starts
Emacs when I log in.
- Change the default run dialog from ‘rofi -show run’ to ‘rofi -show drun’ to
run .desktop files. This offers more control over what does and doesn't show
up in the list and allows me to put only stuff in there that actually works in
a graphical environment.
Diffstat (limited to 'oni/home/services/emacs.scm')
-rw-r--r-- | oni/home/services/emacs.scm | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/oni/home/services/emacs.scm b/oni/home/services/emacs.scm new file mode 100644 index 0000000..07c5458 --- /dev/null +++ b/oni/home/services/emacs.scm @@ -0,0 +1,46 @@ +(define-module (oni home services emacs) + #:use-module (gnu services configuration) + #:use-module (gnu packages emacs) + #:use-module (gnu home services) + #:use-module (gnu home services shepherd) + #:use-module (gnu home services utils) + #:use-module (guix packages) + #:use-module (guix gexp) + + #:export (home-emacs-service-type + home-emacs-configuration)) + +(define-configuration home-emacs-configuration + (package + (package emacs) + "Package to use for setting Emacs")) + +(define (add-emacs-packages config) + (list (home-emacs-configuration-package config))) + +(define (home-emacs-shepherd-service config) + (list + (shepherd-service + (documentation "Start Emacs") + (provision '(emacs)) + (auto-start? #t) + (start + #~(make-forkexec-constructor + (list #$(file-append (home-emacs-configuration-package config) "/bin/emacs") + "--fg-daemon") + #:log-file (format #f "~a/.local/var/log/xbindkeys.log" (getenv "HOME")))) + (stop #~(make-kill-destructor))))) + +(define home-emacs-service-type + (service-type + (name 'home-emacs) + (extensions + (list (service-extension + home-profile-service-type + add-emacs-packages) + (service-extension + home-shepherd-service-type + home-emacs-shepherd-service))) + (compose identity) + (default-value (home-emacs-configuration)) + (description "Install and configure Emacs."))) |