summaryrefslogtreecommitdiff
path: root/sigils/services/xdg.scm
diff options
context:
space:
mode:
authorSisiutl <sisiutl@egregore.fun>2024-09-30 15:10:42 +0200
committerSisiutl <sisiutl@egregore.fun>2024-09-30 15:10:42 +0200
commit6b2480dfa85f2a38cb1b5c0c59458b0f89672317 (patch)
tree3c4f747075815018bb5d532ddb062cbae1bcaa77 /sigils/services/xdg.scm
parentd9e62d0588d63f5996735ab49caef5ba29d7ebc4 (diff)
xdg: new service
Diffstat (limited to 'sigils/services/xdg.scm')
-rw-r--r--sigils/services/xdg.scm26
1 files changed, 26 insertions, 0 deletions
diff --git a/sigils/services/xdg.scm b/sigils/services/xdg.scm
new file mode 100644
index 0000000..b0725b7
--- /dev/null
+++ b/sigils/services/xdg.scm
@@ -0,0 +1,26 @@
+(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.")))