diff options
| author | 2024-10-29 00:17:48 -0700 | |
|---|---|---|
| committer | 2024-10-29 00:17:48 -0700 | |
| commit | c21a3aa725b98ff5d742d53ef28d86e34e3c492b (patch) | |
| tree | 41024791e04c78e9ed63635e09dc0e08e28f1914 /oni/home/services | |
| parent | eaf92fbf1b40bfb8960d4265611899a65c9c33bc (diff) | |
| download | new-dotfiles-c21a3aa725b98ff5d742d53ef28d86e34e3c492b.tar.gz new-dotfiles-c21a3aa725b98ff5d742d53ef28d86e34e3c492b.zip | |
Add configuration for xss-lock
Diffstat (limited to 'oni/home/services')
| -rw-r--r-- | oni/home/services/xdisorg.scm | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/oni/home/services/xdisorg.scm b/oni/home/services/xdisorg.scm new file mode 100644 index 0000000..51da034 --- /dev/null +++ b/oni/home/services/xdisorg.scm @@ -0,0 +1,55 @@ +(define-module (oni home services xdisorg) + #:use-module ((gnu home services) + #:select (service-type + service-extension + home-profile-service-type)) + #:use-module ((gnu home services shepherd) + #:select (home-shepherd-service-type + shepherd-service)) + #:use-module ((gnu packages xdisorg) + #:select (xss-lock)) + #:use-module ((gnu services configuration) + #:select (define-configuration + serialize-package)) + #:use-module ((guix gexp) + #:select (gexp + file-append)) + #:use-module ((guix packages) + #:select (package?)) + + #:export (home-xss-lock-configuration + home-xss-lock-service-type)) + +(define-configuration home-xss-lock-configuration + (package + (package xss-lock) + "Package to use for setting xss-lock")) + +(define (add-xss-lock-packages config) + (list (home-xss-lock-configuration-package config))) + +(define (home-xss-lock-shepherd-service config) + (list + (shepherd-service + (documentation "Start xss-lock") + (provision '(xss-lock)) + (auto-start? #t) + (start + #~(make-forkexec-constructor + (list #$(file-append (home-xss-lock-configuration-package config) "/bin/xss-lock") "i3lock" "--" "--color" "222224") + #:log-file (format #f "~a/.local/var/log/xss-lock.log" (getenv "HOME")))) + (stop #~(make-kill-destructor))))) + +(define home-xss-lock-service-type + (service-type + (name 'home-xss-lock) + (extensions + (list (service-extension + home-profile-service-type + add-xss-lock-packages) + (service-extension + home-shepherd-service-type + home-xss-lock-shepherd-service))) + (compose identity) + (default-value (home-xss-lock-configuration)) + (description "Install and configure xss-lock."))) |
