Skip to content

Commit 207b117

Browse files
committed
modules/keventd: init
1 parent 89d7c8b commit 207b117

14 files changed

Lines changed: 196 additions & 35 deletions

File tree

modules/default.nix

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ let
2121
# required modules - included by default
2222
"dbus"
2323
"elogind"
24+
"keventd"
2425
"mdevd"
2526
"seatd"
2627
"udev"
@@ -52,6 +53,7 @@ in
5253
./security
5354
./services/dbus
5455
./services/elogind
56+
./services/keventd
5557
./services/mdevd
5658
./services/seatd
5759
./services/udev

modules/finit/initrd.nix

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,13 @@ in
127127
128128
${lib.concatMapStringsSep "\n" mkMount (
129129
lib.filter (lib.getAttr "neededForBoot") (
130-
lib.filter (fs: !lib.elem fs.fsType [ "luks" "lvm" ]) (lib.attrValues config.fileSystems)
130+
lib.filter (
131+
fs:
132+
!lib.elem fs.fsType [
133+
"luks"
134+
"lvm"
135+
]
136+
) (lib.attrValues config.fileSystems)
131137
)
132138
)}
133139
'';
@@ -190,6 +196,7 @@ in
190196
task [S] name:fs-import tty:@console \
191197
${lib.optionalString config.services.mdevd.enable "<run/coldplug/success>"} \
192198
${lib.optionalString config.services.udev.enable "<run/udevadm:5/success>"} \
199+
${lib.optionalString config.services.keventd.enable "<service/keventd/ready>"} \
193200
finix-fs-import
194201
195202
task [S] name:mount-all <task/fs-import/success> finix-mount-all
@@ -202,6 +209,10 @@ in
202209
service [S] <!> notify:s6 /bin/udevd --ready-notify=%n
203210
''}
204211
212+
${lib.optionalString config.services.keventd.enable ''
213+
service [S] name:keventd notify:pid <!> keventd -n -c
214+
''}
215+
205216
run [1] finix-switch-root
206217
'';
207218
}
@@ -222,9 +233,13 @@ in
222233
}
223234
{
224235
target = "/etc/group";
225-
source = pkgs.writeText "group" ''
226-
root:x:0:
227-
'';
236+
source = pkgs.writeText "group" (
237+
lib.concatStringsSep "\n" (
238+
lib.concatMap (g: lib.optionals (g.gid != null) [ "${g.name}:x:${toString g.gid}" ]) (
239+
lib.attrValues config.users.groups
240+
)
241+
)
242+
);
228243
}
229244
{
230245
target = "/etc/shadow";
@@ -245,6 +260,12 @@ in
245260
{ source = "${config.finit.package}/lib/finit/rescue.conf"; }
246261
{ source = "${config.finit.package}/lib/finit/tmpfiles.d"; }
247262
{ source = "${config.finit.package}/lib/tmpfiles.d"; }
263+
]
264+
++ lib.optionals config.services.keventd.enable [
265+
{
266+
target = "/etc/udev/rules.d"; # keventd reads /etc - avoids collision
267+
source = "${config.finit.package}/lib/udev/rules.d";
268+
}
248269
];
249270
};
250271
}

modules/programs/brightnessctl/default.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ in
2323
type = lib.types.package;
2424
default = package.override {
2525
logindSupport = config.services.elogind.enable;
26-
udevSupport = config.services.udev.enable;
26+
udevSupport = config.services.udev.enable || config.services.keventd.enable;
2727

2828
systemdLibs = config.services.elogind.package;
2929
};

modules/programs/hyprland/default.nix

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,16 @@ let
1717
Keywords=tiling;wayland;compositor;
1818
'';
1919

20-
# libudev-zero is a hard requirement when running mdevd
20+
# libudev-zero is a hard requirement when running mdevd or keventd
2121
libinput = pkgs.libinput.override (
22-
lib.optionalAttrs config.services.mdevd.enable {
22+
lib.optionalAttrs (config.services.mdevd.enable || config.services.keventd.enable) {
2323
udev = pkgs.libudev-zero;
2424
wacomSupport = false;
2525
}
2626
);
2727

2828
aquamarine = pkgs.aquamarine.override (
29-
lib.optionalAttrs config.services.mdevd.enable {
29+
lib.optionalAttrs (config.services.mdevd.enable || config.services.keventd.enable) {
3030
inherit libinput;
3131

3232
udev = pkgs.libudev-zero;
@@ -49,7 +49,7 @@ in
4949
inherit aquamarine libinput;
5050

5151
# since we're recompiling go ahead and disable systemd
52-
withSystemd = !config.services.mdevd.enable;
52+
withSystemd = !(config.services.mdevd.enable || config.services.keventd.enable);
5353
};
5454
defaultText = lib.literalExpression "pkgs.hyprland";
5555
description = ''

modules/programs/labwc/default.nix

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ let
1717
Type=Application
1818
'';
1919

20-
# libudev-zero is a hard requirement when running mdevd
20+
# libudev-zero is a hard requirement when running mdevd or keventd
2121
libinput = pkgs.libinput.override (
22-
lib.optionalAttrs config.services.mdevd.enable {
22+
lib.optionalAttrs (config.services.mdevd.enable || config.services.keventd.enable) {
2323
udev = pkgs.libudev-zero;
2424
wacomSupport = false;
2525
}

modules/programs/lxqt/default.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ let
2929
'';
3030

3131
libinput = pkgs.libinput.override (
32-
lib.optionalAttrs config.services.mdevd.enable {
32+
lib.optionalAttrs (config.services.mdevd.enable || config.services.keventd.enable) {
3333
udev = pkgs.libudev-zero;
3434
wacomSupport = false;
3535
}

modules/programs/mangowc/default.nix

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ let
1818
Type=Application
1919
'';
2020

21-
# libudev-zero is a hard requirement when running mdevd
21+
# libudev-zero is a hard requirement when running mdevd or keventd
2222
libinput = pkgs.libinput.override (
23-
lib.optionalAttrs config.services.mdevd.enable {
23+
lib.optionalAttrs (config.services.mdevd.enable || config.services.keventd.enable) {
2424
udev = pkgs.libudev-zero;
2525
wacomSupport = false;
2626
}

modules/programs/niri/default.nix

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,20 @@ let
1616
Type=Application
1717
'';
1818

19-
overrideAttrs = lib.optionalAttrs config.services.mdevd.enable {
20-
eudev = pkgs.libudev-zero;
19+
overrideAttrs =
20+
# libudev-zero is a hard requirement when running mdevd or keventd
21+
lib.optionalAttrs (config.services.mdevd.enable || config.services.keventd.enable) {
22+
eudev = pkgs.libudev-zero;
2123

22-
# since we're recompiling go ahead and disable systemd
23-
withSystemd = false;
24-
25-
# libudev-zero is a hard requirement when running mdevd
26-
libinput = pkgs.libinput.override {
27-
udev = pkgs.libudev-zero;
28-
wacomSupport = false;
24+
libinput = pkgs.libinput.override {
25+
udev = pkgs.libudev-zero;
26+
wacomSupport = false;
27+
};
28+
}
29+
// lib.optionalAttrs (config.services.mdevd.enable || config.services.keventd.enable) {
30+
# since we're recompiling go ahead and disable systemd
31+
withSystemd = false;
2932
};
30-
};
3133
in
3234
{
3335
options.programs.niri = {

modules/programs/regreet/default.nix

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ let
1111

1212
configFile = format.generate "regreet.toml" cfg.settings;
1313

14-
# libudev-zero is a hard requirement when running mdevd
14+
# libudev-zero is a hard requirement when running mdevd or keventd
1515
libinput = pkgs.libinput.override (
16-
lib.optionalAttrs config.services.mdevd.enable {
16+
lib.optionalAttrs (config.services.mdevd.enable || config.services.keventd.enable) {
1717
udev = pkgs.libudev-zero;
1818
wacomSupport = false;
1919
}
@@ -27,9 +27,9 @@ let
2727
};
2828

2929
xinit' = pkgs.xinit.override (
30-
lib.optionalAttrs config.services.mdevd.enable {
30+
lib.optionalAttrs (config.services.mdevd.enable || config.services.keventd.enable) {
3131
xorg-server = pkgs.xorg-server.override (
32-
lib.optionalAttrs config.services.mdevd.enable {
32+
lib.optionalAttrs (config.services.mdevd.enable || config.services.keventd.enable) {
3333
udev = pkgs.libudev-zero;
3434
}
3535
);

modules/programs/sway/default.nix

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ let
1616
DesktopNames=sway;wlroots
1717
'';
1818

19-
# libudev-zero is a hard requirement when running mdevd
19+
# libudev-zero is a hard requirement when running mdevd or keventd
2020
libinput = pkgs.libinput.override (
21-
lib.optionalAttrs config.services.mdevd.enable {
21+
lib.optionalAttrs (config.services.mdevd.enable || config.services.keventd.enable) {
2222
udev = pkgs.libudev-zero;
2323
wacomSupport = false;
2424
}
@@ -35,7 +35,7 @@ let
3535
inherit libinput wlroots_0_20;
3636

3737
# since we're recompiling go ahead and disable systemd
38-
systemdSupport = !config.services.mdevd.enable;
38+
systemdSupport = !(config.services.mdevd.enable || config.services.keventd.enable);
3939
};
4040
in
4141
{

0 commit comments

Comments
 (0)