diff options
Diffstat (limited to 'sigils/home')
-rw-r--r-- | sigils/home/services/xdg.scm | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/sigils/home/services/xdg.scm b/sigils/home/services/xdg.scm new file mode 100644 index 0000000..f9ccc90 --- /dev/null +++ b/sigils/home/services/xdg.scm @@ -0,0 +1,30 @@ +(define-module (sigils home services xdg) + #:use-module (gnu home services) + #:use-module (gnu packages) + #:use-module (guix gexp) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1)) + +(define xdg-autostart-files-directory "autostart") + +(define (xdg-autostart-files files) + "Put each file in FILES into the autostart directory +FILES is an array of pairs in the form of @lisp{(package . filename.desktop)}. +If filename.desktop exists in the package, it will be placed in the autostart directory." + (map (match-lambda + ((package . desktop-file) + (list (string-append xdg-autostart-files-directory "/" desktop-file) + (file-append + package + (string-append "/share/applications/" desktop-file))))) + files)) + +(define-public home-xdg-autostart-files-service-type +(service-type (name 'home-xdg-autostart) + (extensions + (list (service-extension home-xdg-configuration-files-service-type + xdg-autostart-files))) + (compose concatenate) + (extend append) + (default-value '()) + (description "Files that will be put in @file{~/.guix-home/config/autostart} for XDG autostart compliance."))) |