diff options
| author | mirenn <me@mirenn.dev> | 2026-09-21 23:09:33 +0200 |
|---|---|---|
| committer | mirenn <me@mirenn.dev> | 2026-10-06 14:13:32 +0200 |
| commit | 8f9c77878f8742a47d34a50748023d1b552cfbf1 (patch) | |
| tree | f749dff061451ab8427100c452f8175de8e39c53 /mirenn/home/services | |
| parent | 8501a38d7c3bbc2e99466e6658be134c72d4f47a (diff) | |
| download | dotfiles-8f9c77878f8742a47d34a50748023d1b552cfbf1.tar.gz dotfiles-8f9c77878f8742a47d34a50748023d1b552cfbf1.zip | |
guix primer
Diffstat (limited to 'mirenn/home/services')
| -rw-r--r-- | mirenn/home/services/brightnessctl.scm | 37 | ||||
| -rw-r--r-- | mirenn/home/services/timer.scm | 42 |
2 files changed, 79 insertions, 0 deletions
diff --git a/mirenn/home/services/brightnessctl.scm b/mirenn/home/services/brightnessctl.scm new file mode 100644 index 0000000..b71e04a --- /dev/null +++ b/mirenn/home/services/brightnessctl.scm @@ -0,0 +1,37 @@ +(define-module (mirenn home services brightnessctl) + #:use-module (guix gexp) + #:use-module (gnu services) + #:use-module (gnu services shepherd) + #:use-module (gnu services configuration) + #:use-module (gnu home services) + #:use-module (gnu home services shepherd) + #:use-module (gnu packages linux) + + #:export (home-brightnessctl-configuration)) + +(define-configuration/no-serialization home-brightnessctl-configuration + (state-file + (string ".local/state/brightnessctl") + "The file which the brightness state is stored.")) + +(define (home-brightnessctl-shepherd-service config) + (list + (shepherd-service + (provision '(brightnessctl)) + (documentation "Save and restore brightness.") + (start #~(make-system-constructor + #$(string-append "brightnessctl set $(cat \"$HOME/" + (home-brightnessctl-configuration-state-file config) + "\")"))) + (stop #~(make-system-destructor + #$(string-append "brightnessctl get > \"$HOME/" + (home-brightnessctl-configuration-state-file config) + "\"")))))) + +(define-public home-brightnessctl-service-type + (service-type + (name 'home-brightnessctl) + (extensions + (list (service-extension home-shepherd-service-type home-brightnessctl-shepherd-service))) + (description "Save and restore brightness.") + (default-value (home-brightnessctl-configuration)))) diff --git a/mirenn/home/services/timer.scm b/mirenn/home/services/timer.scm new file mode 100644 index 0000000..59e2fc8 --- /dev/null +++ b/mirenn/home/services/timer.scm @@ -0,0 +1,42 @@ +(define-module (mirenn home services timer) + #:use-module (guix gexp) + #:use-module (gnu services) + #:use-module (gnu services shepherd) + #:use-module (gnu services configuration) + #:use-module (gnu home services) + #:use-module (gnu home services shepherd) + + #:export (home-timer-configuration)) + +(define-configuration/no-serialization home-timer-configuration + (name + symbol + "Name of the timer.") + (script + local-file + "Script to run on timeout.") + (arguments + (list string) + "Arguments passed to the script.") + (delay + number + "Timer delay in seconds.")) + +(define (home-timer-shepherd-service config) + (list + (shepherd-service + (documentation "Run a periodic task") + (provision (list (home-timer-configuration-name config))) + (respawn? #t) + (respawn-delay (home-timer-configuration-delay config)) + (start #~(make-forkexec-constructor + (cons #$(home-timer-configuration-script config) + #$(home-timer-configuration-arguments config)))) + (stop #~(make-kill-destructor))))) + +(define-public home-timer-service-type + (service-type + (name 'home-timer') + (extensions + (list (service-extension home-shepherd-service-type home-timer-shepherd-service))) + (description "Runs a script periodically based on a respawn delay"))) |
