Adapted from https://issues.guix.gnu.org/70460
This commit is contained in:
Picnoir 2024-05-01 18:25:42 +02:00
parent 71331f8f79
commit 871a0043d9
3 changed files with 70 additions and 3 deletions

View file

@ -8,6 +8,8 @@
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages check)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages xml)
#:use-module (gnu packages gtk)
#:use-module (guix packages)
#:use-module (guix git-download)
#:use-module (guix build-system meson)
@ -31,6 +33,7 @@
(arguments
(list #:configure-flags #~(list "-Dsystemdsystemunitdir=false"
"-Dpylint=disabled"
"-Dgtk_doc=true"
(string-append "-Dzshcomp=" #$output
"/share/zsh/site-functions/"))
#:glib-or-gtk? #t
@ -44,11 +47,12 @@
(lambda _
(wrap-program
(string-append #$output "/bin/powerprofilesctl")
`("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))
`("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))))
`("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))))))))
(native-inputs
(list `(,glib "bin")
gtk-doc/stable
gobject-introspection
libxslt
pkg-config
python
python-argparse-manpage

View file

@ -0,0 +1,61 @@
(define-module (services desktop power-profiles-daemon)
#:use-module (gnu)
#:use-module (gnu packages networking)
#:use-module (gnu services dbus)
#:use-module (gnu services configuration)
#:use-module (gnu services desktop)
#:use-module (gnu services shepherd)
#:use-module (guix records)
#:use-module (pkgs power-profiles-daemon)
#:export (power-profiles-daemon-configuration
power-profiles-daemon-service-type))
(define-configuration/no-serialization power-profiles-daemon-configuration
(power-profiles-daemon
(file-like power-profiles-daemon)
"The power-profiles-daemon package."))
;;;
;;; 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"))))

View file

@ -13,6 +13,7 @@
(nongnu packages linux)
(nongnu system linux-initrd)
(services desktop sway)
(services desktop power-profiles-daemon)
(pkgs power-profiles-daemon))
(use-service-modules desktop sddm networking xorg ssh nix)
@ -73,7 +74,8 @@
(services (append
(list
(service nix-service-type))
(service nix-service-type)
(service power-profiles-daemon-service-type))
%framework-desktop-services))
(bootloader (bootloader-configuration