diff options
author | Dariqq <dariqq@posteo.net> | 2024-04-18 18:36:04 +0000 |
---|---|---|
committer | Guix Patches Tester <> | 2024-04-18 21:15:41 +0200 |
commit | 1c82bc52731a8123200aea3dd7be1e3e3dfddd33 (patch) | |
tree | 7746bf83dc6bdd82d22b55ae0c59030028e8b042 | |
parent | 4676a9983ece56a7ed4ab0de9d27e92fead5d5de (diff) | |
download | guix-patches-issue-70460.tar guix-patches-issue-70460.tar.gz |
gnu: services: Add power-profiles-daemon-service-type.issue-70460
* gnu/services/pm.scm
(power-profiles-configuration): New configuration.
(power-profiles-daemon-shepherd-service): New function.
(power-profiles-daemon-service-type): New function.
(power-profiles-daemon-activation): New variable.
Change-Id: Ib035d993ed82eec2a43f3ba2b4c92f77e08a0fd7
-rw-r--r-- | gnu/services/pm.scm | 56 |
1 files changed, 55 insertions, 1 deletions
diff --git a/gnu/services/pm.scm b/gnu/services/pm.scm index 3daf484cc1..ad6268e893 100644 --- a/gnu/services/pm.scm +++ b/gnu/services/pm.scm @@ -21,18 +21,72 @@ #:use-module (guix packages) #:use-module (guix records) #:use-module (gnu packages admin) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages linux) #:use-module (gnu services) #:use-module (gnu services base) #:use-module (gnu services configuration) + #:use-module (gnu services dbus) #:use-module (gnu services shepherd) #:use-module (gnu system shadow) - #:export (tlp-service-type + #:export (power-profiles-daemon-service-type + power-profiles-daemon-configuration + + tlp-service-type tlp-configuration thermald-configuration thermald-service-type)) +;;; +;;; power-profiles-daemon +;;; + +(define-configuration/no-serialization power-profiles-daemon-configuration + (power-profiles-daemon + (file-like power-profiles-daemon) + "The power-profiles-daemon package.")) + +(define (power-profiles-daemon-shepherd-service config) + (match-record + config <power-profiles-daemon-configuration> + (power-profiles-daemon) + (list (shepherd-service (provision '(power-profiles-daemon)) + (requirement '(dbus-system)) + (documentation "Run the power-profiles-daemon.") + (start #~(make-forkexec-constructor + (list #$(file-append power-profiles-daemon + "/libexec/power-profiles-daemon")))) + (stop #~(make-kill-destructor)))))) + +(define %power-profiles-daemon-activation + #~(begin + (use-modules (guix build utils)) + (mkdir-p "/var/lib/power-profiles-daemon"))) + +(define power-profiles-daemon-service-type + (let ((config->package + (compose list power-profiles-daemon-configuration-power-profiles-daemon))) + (service-type + (name 'power-profiles-daemon) + (extensions (list + (service-extension shepherd-root-service-type + power-profiles-daemon-shepherd-service) + (service-extension dbus-root-service-type + config->package) + (service-extension polkit-service-type + config->package) + (service-extension profile-service-type + config->package) + (service-extension activation-service-type + (const %power-profiles-daemon-activation)))) + (default-value (power-profiles-daemon-configuration)) + (description "Run the power-profiles-daemon")))) + +;;; +;;; tlp +;;; + (define (uglify-field-name field-name) (let ((str (symbol->string field-name))) (string-join (string-split |