From e95cb2023e6fae5c8423051f78162ef16beed19c Mon Sep 17 00:00:00 2001 From: Yan Lin Date: Mon, 3 Nov 2025 10:53:28 +0100 Subject: [PATCH] add keyd remap --- modules/keyboard-toggle.nix | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/modules/keyboard-toggle.nix b/modules/keyboard-toggle.nix index b7ff82e..3ad4391 100644 --- a/modules/keyboard-toggle.nix +++ b/modules/keyboard-toggle.nix @@ -16,16 +16,34 @@ let # Keyboard is disabled, enable it sudo kill $(cat "$PID_FILE") rm -f "$PID_FILE" - echo "✓ Built-in keyboard enabled" + sudo systemctl start keyd + echo "✓ Built-in keyboard enabled (keyd active)" else # 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 & echo $! > "$PID_FILE" - echo "✓ Built-in keyboard disabled" + echo "✓ Built-in keyboard disabled (keyd stopped)" fi ''; 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 environment.systemPackages = [ keyboard-toggle @@ -47,6 +65,12 @@ in } { command = "${pkgs.coreutils}/bin/kill"; options = [ "NOPASSWD" ]; + } { + command = "${pkgs.systemd}/bin/systemctl start keyd"; + options = [ "NOPASSWD" ]; + } { + command = "${pkgs.systemd}/bin/systemctl stop keyd"; + options = [ "NOPASSWD" ]; }]; }]; }