guix-config/modules/fox/services.scm

47 lines
1.5 KiB
Scheme
Raw Normal View History

(define-module (fox services)
#:use-module (fox packages)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages emacs)
#:use-module (gnu home services)
#:use-module (gnu home services shepherd)
#:use-module (gnu services)
#:export (oh-my-zsh-service-type
home-emacs-service-type))
(define oh-my-zsh-service-type
(service-type (name 'oh-my-zsh)
(description "oh my zsh")
(extensions
(list (service-extension
home-files-service-type
(lambda (_) (list `(".oh-my-zsh" ,oh-my-zsh))))))
(default-value '())))
(define (home-emacs-shepherd-service config)
(list
(shepherd-service
(documentation "Start Emacs")
(provision '(emacs))
(auto-start? #t)
(start
#~(make-forkexec-constructor
(list "/usr/bin/emacs"
"--fg-daemon")
#:log-file (format #f "~a/.local/var/log/emacs.log" (getenv "HOME"))))
(stop
#~(make-system-destructor
"/usr/bin/emacsclient --eval '(kill-emacs)'")))))
(define home-emacs-service-type
(service-type (name 'emacs-configuration)
(extensions
(list (service-extension
home-shepherd-service-type
home-emacs-shepherd-service)))
(default-value '())
(description "Configures Emacs and installs packages to home-profile.")))