(define-module (oni home services xsession) #:use-module (gnu services configuration) #:use-module (gnu home services) #:use-module (gnu home services utils) #:use-module (guix packages) #:use-module (guix gexp) #:use-module (oni gexp) #:use-module (srfi srfi-1) #:export (home-xsession-service-type home-xsession-configuration)) (define-configuration home-xsession-configuration (configuration (text-config '()) "Configuration")) (define (xsession-home-files config) `((".xsession" ,(mixed-executable-file "xsession" (serialize-text-config 'configuration (home-xsession-configuration-configuration config)))))) (define home-xsession-service-type (service-type (name 'home-xsession) (extensions (list (service-extension home-files-service-type xsession-home-files))) (compose identity) (default-value (home-xsession-configuration)) (description "Configure xsession.")))