summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomas Volf <~@wolfsden.cz>2026-06-06 22:37:22 +0200
committerMaxim Cournoyer <maxim@guixotic.coop>2026-06-15 09:13:22 +0900
commit07e3d705d5892edc4fe512aa7673f3e3b6626346 (patch)
tree33fb995fdafa29a9ccfa8559468c7eb0c2c8517b
parentd626e52e7d4a5934a80c27e9828bfdc1ff1a60e5 (diff)
services: elogind: Move settings to correct file, correct names.
For quite some time now, elogind was logging the following warnings one every start. [..]/logind.conf:2: Unknown key 'AllowPowerOffInterrupts' in section [Login], ignoring. [..]/logind.conf:3: Unknown key 'AllowSuspendInterrupts' in section [Login], ignoring. [..]/logind.conf:4: Unknown key 'BroadcastPowerOffInterrupts' in section [Login], ignoring. [..]/logind.conf:5: Unknown key 'BroadcastSuspendInterrupts' in section [Login], ignoring. [..]/logind.conf:21: Unknown key 'RemoveIpc' in section [Login], ignoring. First 4 should have been in sleep.conf, and the last one had bad casing. This commit addresses both those problems. * gnu/services/desktop.scm (elogind-name->string): New procedure. (elogind-serialize-boolean, elogind-base-serializer, elogind-list-serializer): Use it. (%elogind-configuration-sleep-fields): Add allow-power-off-interrupts?, allow-suspend-interrupts?, broadcast-power-off-interrupts? and broadcast-suspend-interrupts?. Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
-rw-r--r--gnu/services/desktop.scm36
1 files changed, 24 insertions, 12 deletions
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 38a8dd11169..92a43afa447 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -1245,26 +1245,36 @@ and many other) available for GIO applications.")
1245 (prefix elogind-)) 1245 (prefix elogind-))
1246 1246
1247;;; Elogind serializers. 1247;;; Elogind serializers.
1248(define elogind-name->string
1249 (compose (lambda (name)
1250 ;; Configuration file is case sensitive, so special case those
1251 ;; few cases where pascal-case gets it wrong.
1252 (cond ((equal? name "RemoveIpc")
1253 "RemoveIPC")
1254 (else
1255 name)))
1256 pascal-case
1257 (lambda (name)
1258 (cond ((string-suffix? "?" name)
1259 (string-drop-right name 1))
1260 ((string-suffix? "seconds" name)
1261 (string-drop-right name 4))
1262 (else
1263 name)))
1264 symbol->string))
1265
1248(define (elogind-serialize-boolean name value) 1266(define (elogind-serialize-boolean name value)
1249 (let* ((name-str (symbol->string name)) 1267 (format #f "~a=~:[no~;yes~]~%" (elogind-name->string name) value))
1250 (name (if (string-suffix? "?" name-str)
1251 (string-drop-right name-str 1)
1252 name-str)))
1253 (format #f "~a=~:[no~;yes~]~%" (pascal-case name) value)))
1254 1268
1255(define (elogind-base-serializer name value) 1269(define (elogind-base-serializer name value)
1256 (let* ((name-str (symbol->string name)) 1270 (format #f "~a=~a~%" (elogind-name->string name) value))
1257 (name (if (string-suffix? "seconds" name-str)
1258 (string-drop-right name-str 4) ;seconds -> sec
1259 name-str)))
1260 (format #f "~a=~a~%" (pascal-case name) value)))
1261 1271
1262(define elogind-serialize-action elogind-base-serializer) 1272(define elogind-serialize-action elogind-base-serializer)
1263(define elogind-serialize-non-negative-integer elogind-base-serializer) 1273(define elogind-serialize-non-negative-integer elogind-base-serializer)
1264(define elogind-serialize-percent elogind-base-serializer) 1274(define elogind-serialize-percent elogind-base-serializer)
1265 1275
1266(define (elogind-list-serializer name value) 1276(define (elogind-list-serializer name value)
1267 (format #f "~a=~{~a~^ ~}~%" (pascal-case name) value)) 1277 (format #f "~a=~{~a~^ ~}~%" (elogind-name->string name) value))
1268 1278
1269(define elogind-serialize-list-of-strings elogind-list-serializer) 1279(define elogind-serialize-list-of-strings elogind-list-serializer)
1270(define elogind-serialize-list-of-user-names elogind-list-serializer) 1280(define elogind-serialize-list-of-user-names elogind-list-serializer)
@@ -1279,7 +1289,9 @@ and many other) available for GIO applications.")
1279(define %elogind-configuration-sleep-fields 1289(define %elogind-configuration-sleep-fields
1280 '( suspend-state suspend-mode suspend-estimation-seconds 1290 '( suspend-state suspend-mode suspend-estimation-seconds
1281 hibernate-mode hibernate-delay-seconds hibernate-state 1291 hibernate-mode hibernate-delay-seconds hibernate-state
1282 hybrid-sleep-state hybrid-sleep-mode)) 1292 hybrid-sleep-state hybrid-sleep-mode
1293 allow-power-off-interrupts? allow-suspend-interrupts?
1294 broadcast-power-off-interrupts? broadcast-suspend-interrupts?))
1283 1295
1284(define-configuration elogind-configuration 1296(define-configuration elogind-configuration
1285 (elogind 1297 (elogind