Skip to content

Commit aff999e

Browse files
authored
nixos/kmonad: avoid running an unnecessary bash (#370064)
2 parents e36ab94 + c3588cf commit aff999e

File tree

2 files changed

+8
-11
lines changed

2 files changed

+8
-11
lines changed

nixos/modules/services/hardware/kmonad.nix

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
config,
33
lib,
44
pkgs,
5+
utils,
56
...
67
}:
78

@@ -118,19 +119,8 @@ let
118119
# Build a systemd service that starts KMonad:
119120
mkService =
120121
keyboard:
121-
let
122-
cmd =
123-
[
124-
(lib.getExe cfg.package)
125-
"--input"
126-
''device-file "${keyboard.device}"''
127-
]
128-
++ cfg.extraArgs
129-
++ [ "${mkCfg keyboard}" ];
130-
in
131122
lib.nameValuePair (mkName keyboard.name) {
132123
description = "KMonad for ${keyboard.device}";
133-
script = lib.escapeShellArgs cmd;
134124
unitConfig = {
135125
# Control rate limiting.
136126
# Stop the restart logic if we restart more than
@@ -139,6 +129,10 @@ let
139129
StartLimitBurst = 5;
140130
};
141131
serviceConfig = {
132+
ExecStart = ''
133+
${lib.getExe cfg.package} ${mkCfg keyboard} \
134+
${utils.escapeSystemdExecArgs cfg.extraArgs}
135+
'';
142136
Restart = "always";
143137
# Restart at increasing intervals from 2s to 1m
144138
RestartSec = 2;

nixos/tests/kmonad.nix

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111
machine = {
1212
services.kmonad = {
1313
enable = true;
14+
extraArgs = [
15+
"--log-level=debug"
16+
];
1417
keyboards = {
1518
defaultKbd = {
1619
device = "/dev/input/by-id/vm-default-kbd";

0 commit comments

Comments
 (0)