mirror of
https://github.com/ItsDrike/nixdots
synced 2024-11-10 04:59:42 +00:00
33 lines
1,016 B
Nix
33 lines
1,016 B
Nix
|
{ pkgs, ... }: {
|
||
|
boot.initrd.systemd = {
|
||
|
# Include setleds binary in the initrd
|
||
|
# (the nix store doesn't exists in there yet, so we need to include
|
||
|
# all of the necessary binaries ahead of time here)
|
||
|
extraBin = {
|
||
|
setleds = "${pkgs.kbd}/bin/setleds";
|
||
|
};
|
||
|
|
||
|
# Enable numlock in the early userspace (initrd)
|
||
|
# This will happen before we're asked for the disk decryption password
|
||
|
services."numlock" = {
|
||
|
enable = true;
|
||
|
description = "Activate Numlock";
|
||
|
wantedBy = [ "initrd.target" ];
|
||
|
# Delay disk decryption until this unit is started
|
||
|
before = [ "systemd-cryptsetup@cryptfs.service" ];
|
||
|
unitConfig.DefaultDependencies = "no";
|
||
|
serviceConfig.Type = "oneshot";
|
||
|
# This is essentially runs the same code as present in the
|
||
|
# mkinitcpio-numlock hook on Arch Linux (AUR).
|
||
|
script = ''
|
||
|
#!/bin/bash
|
||
|
|
||
|
for tty in /dev/tty{1..6}
|
||
|
do
|
||
|
/bin/setleds -D +num < "$tty";
|
||
|
done
|
||
|
'';
|
||
|
};
|
||
|
};
|
||
|
}
|