summaryrefslogtreecommitdiff
path: root/gnu/services
diff options
context:
space:
mode:
authorcoopi <coopi@noreply.codeberg.org>2026-08-07 06:13:46 +0400
committerLiliana Marie Prikler <liliana.prikler@gmail.com>2026-08-22 16:49:17 +0200
commit2407608d5a842cef239b02c2d5edbc4470fbdfe1 (patch)
tree4a7391f076fc0bbcbb652dfce0e6630d3c36cd93 /gnu/services
parent0f547264cdc1c61c6fdd6145b5a8527f93f02ff2 (diff)
gnu: services: Add gpu-screen-recorder-service-type.
* gnu/services/desktop.scm: Import (gnu packages video). (gpu-screen-recorder-configuration): Export. (gpu-screen-recorder-configuration?): Export. (gpu-screen-recorder-service-type): Export. (<gpu-screen-recorder-configuration>): New record type. (gpu-screen-recorder-privileged-programs): New procedure. (gpu-screen-recorder-service-type): New variable. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com> Merges: guix/guix#10400
Diffstat (limited to 'gnu/services')
-rw-r--r--gnu/services/desktop.scm44
1 files changed, 44 insertions, 0 deletions
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 5b6c10b0e72..d731354f8ed 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -83,6 +83,7 @@
83 #:use-module (gnu packages enlightenment) 83 #:use-module (gnu packages enlightenment)
84 #:use-module (gnu packages haskell-apps) 84 #:use-module (gnu packages haskell-apps)
85 #:use-module (gnu packages rust-apps) 85 #:use-module (gnu packages rust-apps)
86 #:use-module (gnu packages video)
86 #:use-module (guix deprecation) 87 #:use-module (guix deprecation)
87 #:use-module (guix i18n) 88 #:use-module (guix i18n)
88 #:use-module (guix records) 89 #:use-module (guix records)
@@ -138,6 +139,10 @@
138 kanata-configuration-kanata 139 kanata-configuration-kanata
139 kanata-configuration-keymaps 140 kanata-configuration-keymaps
140 141
142 gpu-screen-recorder-configuration
143 gpu-screen-recorder-configuration?
144 gpu-screen-recorder-service-type
145
141 geoclue-application 146 geoclue-application
142 geoclue-configuration 147 geoclue-configuration
143 geoclue-configuration? 148 geoclue-configuration?
@@ -1197,6 +1202,45 @@ the functionalities of different keyboards.")))
1197 1202
1198 1203
1199;;; 1204;;;
1205;;; GPU Screen Recorder.
1206;;;
1207
1208(define-record-type* <gpu-screen-recorder-configuration>
1209 gpu-screen-recorder-configuration
1210 make-gpu-screen-recorder-configuration
1211 gpu-screen-recorder-configuration?
1212 (package
1213 gpu-screen-recorder-configuration-package
1214 (default gpu-screen-recorder)))
1215
1216(define (gpu-screen-recorder-privileged-programs config)
1217 (list
1218 (privileged-program
1219 (program
1220 (file-append
1221 (gpu-screen-recorder-configuration-package config)
1222 "/bin/gsr-kms-server"))
1223 (capabilities "cap_sys_admin=ep"))))
1224
1225(define gpu-screen-recorder-service-type
1226 (service-type
1227 (name 'gpu-screen-recorder)
1228 (extensions
1229 (list
1230 (service-extension
1231 profile-service-type
1232 (compose list gpu-screen-recorder-configuration-package))
1233 (service-extension
1234 privileged-program-service-type
1235 gpu-screen-recorder-privileged-programs)))
1236 (default-value (gpu-screen-recorder-configuration))
1237 (description
1238 "Install GPU Screen Recorder and grant its @command{gsr-kms-server}
1239helper the @code{CAP_SYS_ADMIN} capability required for direct KMS
1240capture.")))
1241
1242
1243;;;
1200;;; UDisks. 1244;;; UDisks.
1201;;; 1245;;;
1202 1246