add keyd remap

This commit is contained in:
Yan Lin 2025-11-03 10:53:28 +01:00
parent 65f937475b
commit e95cb2023e

View file

@ -16,16 +16,34 @@ let
# Keyboard is disabled, enable it # Keyboard is disabled, enable it
sudo kill $(cat "$PID_FILE") sudo kill $(cat "$PID_FILE")
rm -f "$PID_FILE" rm -f "$PID_FILE"
echo " Built-in keyboard enabled" sudo systemctl start keyd
echo " Built-in keyboard enabled (keyd active)"
else else
# Keyboard is enabled, disable it by grabbing the device # Keyboard is enabled, disable it by grabbing the device
sudo systemctl stop keyd
sudo ${pkgs.evtest}/bin/evtest --grab /dev/input/$EVENT_DEVICE > /dev/null 2>&1 & sudo ${pkgs.evtest}/bin/evtest --grab /dev/input/$EVENT_DEVICE > /dev/null 2>&1 &
echo $! > "$PID_FILE" echo $! > "$PID_FILE"
echo " Built-in keyboard disabled" echo " Built-in keyboard disabled (keyd stopped)"
fi fi
''; '';
in in
{ {
# Configure keyd for key remapping on the built-in keyboard
services.keyd = {
enable = true;
keyboards = {
internal = {
ids = [ "*" ];
settings = {
main = {
capslock = "leftcontrol";
leftalt = "leftmeta";
};
};
};
};
};
# Add the script and required tools to system packages # Add the script and required tools to system packages
environment.systemPackages = [ environment.systemPackages = [
keyboard-toggle keyboard-toggle
@ -47,6 +65,12 @@ in
} { } {
command = "${pkgs.coreutils}/bin/kill"; command = "${pkgs.coreutils}/bin/kill";
options = [ "NOPASSWD" ]; options = [ "NOPASSWD" ];
} {
command = "${pkgs.systemd}/bin/systemctl start keyd";
options = [ "NOPASSWD" ];
} {
command = "${pkgs.systemd}/bin/systemctl stop keyd";
options = [ "NOPASSWD" ];
}]; }];
}]; }];
} }