From c21a3aa725b98ff5d742d53ef28d86e34e3c492b Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Tue, 29 Oct 2024 00:17:48 -0700 Subject: [PATCH] Add configuration for xss-lock --- oni/home/config/common.scm | 50 ++++++++++++++++++++++++++++++- oni/home/config/data.scm | 11 +++++-- oni/home/config/rincewind.scm | 38 +----------------------- oni/home/services/xdisorg.scm | 55 +++++++++++++++++++++++++++++++++++ 4 files changed, 113 insertions(+), 41 deletions(-) create mode 100644 oni/home/services/xdisorg.scm diff --git a/oni/home/config/common.scm b/oni/home/config/common.scm index 0c2549f..3beb3f6 100644 --- a/oni/home/config/common.scm +++ b/oni/home/config/common.scm @@ -8,6 +8,14 @@ #:use-module (oni home services guile) #:use-module (oni home services xmodmap) #:use-module (oni home services kitty) + #:use-module ((gnu services) + #:select (simple-service)) + #:use-module ((gnu home services guix) + #:select (home-channels-service-type)) + #:use-module ((guix channels) + #:select (channel + make-channel-introduction + openpgp-fingerprint)) #:export (home-redshift-service home-xbindkeys-service @@ -15,7 +23,8 @@ home-guile-service home-xmodmap-service home-openssh-service - home-kitty-service)) + home-kitty-service + home-channels-service)) (define home-redshift-service (service home-redshift-service-type @@ -205,3 +214,42 @@ LocalForward 2812 localhost:2812")) ;; Find any "View build log messages" from guix and open the ;; build log in Emacs. (map . "ctrl+shift+g kitten hints --type=regex --regex=\\\"View build log at '([^']+)'\\.\\\" --program=\\\"emacsclient\\\"")))))) + +(define home-channels-service + (simple-service 'my-channel-service + home-channels-service-type + (list + (channel + (name 'oni) + (url "git://ryuslash.org/guix-packages.git") + (introduction + (make-channel-introduction + "646573578b7adfbff415645fed201269076cebf6" + (openpgp-fingerprint + "061C C5C4 D936 C9A8 AECC 1A17 7D5C 407B 4350 25C1")))) + (channel + (name 'nonguix) + (url "https://gitlab.com/nonguix/nonguix") + ;; Enable signature verification: + (introduction + (make-channel-introduction + "897c1a470da759236cc11798f4e0a5f7d4d59fbc" + (openpgp-fingerprint + "2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5")))) + (channel + (name 'guix-gaming-games) + (url "https://gitlab.com/guix-gaming-channels/games.git") + (introduction + (make-channel-introduction + "c23d64f1b8cc086659f8781b27ab6c7314c5cca5" + (openpgp-fingerprint + "50F3 3E2E 5B0C 3D90 0424 ABE8 9BDC F497 A4BB CC7F")))) + (channel + (name 'rosenthal) + (url "https://codeberg.org/hako/rosenthal.git") + (branch "trunk") + (introduction + (make-channel-introduction + "7677db76330121a901604dfbad19077893865f35" + (openpgp-fingerprint + "13E7 6CD6 E649 C28C 3385 4DF5 5E5A A665 6149 17F7"))))))) diff --git a/oni/home/config/data.scm b/oni/home/config/data.scm index 536c21f..a7848b8 100644 --- a/oni/home/config/data.scm +++ b/oni/home/config/data.scm @@ -40,6 +40,8 @@ #:use-module (oni home services syncthing) #:use-module (oni home services unclutter) ;; #:use-module (oni home services xbindkeys) + #:use-module ((oni home services xdisorg) + #:select (home-xss-lock-service-type)) #:use-module (oni home services xsession) #:use-module (oni home services zsh) #:use-module ((oni packages emacs) @@ -82,7 +84,7 @@ emacs-oni-tramp emacs-oni-embrace emacs-oni-git-commit)) - #:use-module (oni packages hlwm-run-or-raise) + ;; #:use-module (oni packages hlwm-run-or-raise) #:use-module (oni packages pick-random-wallpaper) #:use-module (oni packages sawfish) #:use-module (oni packages shutdown-rofi) @@ -104,7 +106,7 @@ (packages (list (specification->package+output "glibc-locales") (specification->package+output "font-fantasque-sans") (specification->package+output "font-comic-neue") - hlwm-run-or-raise + ;; hlwm-run-or-raise pick-random-wallpaper shutdown-rofi emacs-sawfish @@ -151,6 +153,7 @@ (services (list + home-channels-service home-environment-service home-rofi-default-service home-dunst-default-service @@ -291,4 +294,6 @@ (goto-address-key "C-S-e") (org-mode-key "C-S-e"))) (service home-emacs-golden-ratio-service-type) - (service home-emacs-pinentry-service-type)))) + (service home-emacs-pinentry-service-type) + + (service home-xss-lock-service-type)))) diff --git a/oni/home/config/rincewind.scm b/oni/home/config/rincewind.scm index 01912cf..0d85dad 100644 --- a/oni/home/config/rincewind.scm +++ b/oni/home/config/rincewind.scm @@ -366,43 +366,7 @@ (service home-zsh-autosuggestions-service-type) (service home-zsh-autopair-service-type) - (simple-service 'my-channel-service - home-channels-service-type - (list - (channel - (name 'oni) - (url "git://ryuslash.org/guix-packages.git") - (introduction - (make-channel-introduction - "646573578b7adfbff415645fed201269076cebf6" - (openpgp-fingerprint - "061C C5C4 D936 C9A8 AECC 1A17 7D5C 407B 4350 25C1")))) - (channel - (name 'nonguix) - (url "https://gitlab.com/nonguix/nonguix") - ;; Enable signature verification: - (introduction - (make-channel-introduction - "897c1a470da759236cc11798f4e0a5f7d4d59fbc" - (openpgp-fingerprint - "2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5")))) - (channel - (name 'guix-gaming-games) - (url "https://gitlab.com/guix-gaming-channels/games.git") - (introduction - (make-channel-introduction - "c23d64f1b8cc086659f8781b27ab6c7314c5cca5" - (openpgp-fingerprint - "50F3 3E2E 5B0C 3D90 0424 ABE8 9BDC F497 A4BB CC7F")))) - (channel - (name 'rosenthal) - (url "https://codeberg.org/hako/rosenthal.git") - (branch "trunk") - (introduction - (make-channel-introduction - "7677db76330121a901604dfbad19077893865f35" - (openpgp-fingerprint - "13E7 6CD6 E649 C28C 3385 4DF5 5E5A A665 6149 17F7")))))) + home-channels-service ;; (service home-polybar-service-type ;; (home-polybar-configuration 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.")))