(define-module (sigils 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" (map (match-lambda ((desktop-file package) (cons (string-append xdg-autostart-files-directory "/" desktop-file ".desktop") `(,(file-append (specification->package package) (string-append "/share/applications/" desktop-file ".desktop")))))) 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.")))