diff --git a/oni/home/rincewind/config.scm b/oni/home/rincewind/config.scm index 710daa1..2a0980e 100644 --- a/oni/home/rincewind/config.scm +++ b/oni/home/rincewind/config.scm @@ -1,33 +1,36 @@ (define-module (oni home data config) - #:use-module (gnu home) - #:use-module (gnu home services) #:use-module (gnu home services guix) - #:use-module (gnu packages) - #:use-module (gnu packages video) - #:use-module (gnu packages music) - #:use-module (gnu packages emacs) + #:use-module (gnu home services) + #:use-module (gnu home) #:use-module (gnu packages commencement) + #:use-module (gnu packages emacs) + #:use-module (gnu packages emacs-xyz) + #:use-module (gnu packages linux) + #:use-module (gnu packages music) + #:use-module (gnu packages video) + #:use-module (gnu packages) #:use-module (gnu services) - #:use-module (guix packages) - #:use-module (guix gexp) - #:use-module (guix store) - #:use-module (guix derivations) #:use-module (guix channels) + #:use-module (guix derivations) + #:use-module (guix gexp) + #:use-module (guix packages) + #:use-module (guix store) #:use-module (guix transformations) - #:use-module (oni home services environment) - #:use-module (oni home services rofi) - #:use-module (oni home services polybar) + #:use-module (oni home common config) #:use-module (oni home services dunst) - #:use-module (oni home services zsh) + #:use-module (oni home services emacs) + #:use-module (oni home services environment) #:use-module (oni home services kdeconnect) + #:use-module (oni home services polybar) + #:use-module (oni home services rofi) #:use-module (oni home services syncthing) + #:use-module (oni home services zsh) + #:use-module (oni packages count-emails) #:use-module (oni packages hlwm-run-or-raise) - #:use-module (oni packages pick-random-wallpaper) + #:use-module (oni packages inbox-size) #:use-module (oni packages notmuch-collect-tasks) #:use-module (oni packages notmuch-tag-mailinglists) - #:use-module (oni packages inbox-size) - #:use-module (oni packages count-emails) - #:use-module (oni home common config)) + #:use-module (oni packages pick-random-wallpaper)) (define (with-master-branch package) "Apply a transformation to PACKAGE so that it uses the master branch." @@ -36,17 +39,20 @@ package)) (home-environment - (packages (list mpv mpv-mpris easytag emacs-next + (packages (list mpv mpv-mpris easytag (specification->package+output "glibc-locales") (specification->package+output "font-fantasque-sans") (specification->package+output "font-comic-neue") hlwm-run-or-raise pick-random-wallpaper - gcc-toolchain ;Needed for emacs-next? notmuch-collect-tasks notmuch-tag-mailinglists (inbox-size emacs-next) - count-emails)) + count-emails + emacs-org-roam + emacs-vterm + fakeroot ; Needed for build arch packages + )) (services (list @@ -91,4 +97,8 @@ (bar "rincewind"))) (service home-kdeconnect-service-type) - (service home-syncthing-service-type)))) + (service home-syncthing-service-type) + + (service home-emacs-service-type + (home-emacs-configuration + (package emacs-next)))))) 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."))) diff --git a/oni/home/services/rofi.scm b/oni/home/services/rofi.scm index 56b08a8..8bc6aa9 100644 --- a/oni/home/services/rofi.scm +++ b/oni/home/services/rofi.scm @@ -146,7 +146,7 @@ (define (add-rofi-xbindkeys-keybindings config) (home-xbindkeys-extension (keybindings - '(((mod4 r) . "herbstclient spawn rofi -show run") + '(((mod4 r) . "herbstclient spawn rofi -modi drun -show drun") ((mod4 w) . "herbstclient spawn rofi -show window -window-command \"/home/chelys/usr/bin/hlwm-switch-to-window {window}\""))))) (define home-rofi-service-type