diff options
| author | coopi <coopi@noreply.codeberg.org> | 2026-08-07 06:13:46 +0400 |
|---|---|---|
| committer | Liliana Marie Prikler <liliana.prikler@gmail.com> | 2026-08-22 16:49:17 +0200 |
| commit | 2407608d5a842cef239b02c2d5edbc4470fbdfe1 (patch) | |
| tree | 4a7391f076fc0bbcbb652dfce0e6630d3c36cd93 /gnu/services | |
| parent | 0f547264cdc1c61c6fdd6145b5a8527f93f02ff2 (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.scm | 44 |
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} | ||
| 1239 | helper the @code{CAP_SYS_ADMIN} capability required for direct KMS | ||
| 1240 | capture."))) | ||
| 1241 | |||
| 1242 | |||
| 1243 | ;;; | ||
| 1200 | ;;; UDisks. | 1244 | ;;; UDisks. |
| 1201 | ;;; | 1245 | ;;; |
| 1202 | 1246 | ||
