remove keyboard toggle module

This commit is contained in:
Yan Lin 2025-11-13 22:29:58 +01:00
parent 1204d4946a
commit 4bf5afdaee
2 changed files with 15 additions and 77 deletions

View file

@ -7,7 +7,6 @@
../../../modules/hyprland/system.nix ../../../modules/hyprland/system.nix
../../../modules/wireguard.nix ../../../modules/wireguard.nix
../../../modules/login-display.nix ../../../modules/login-display.nix
../../../modules/keyboard-toggle.nix
]; ];
# Bootloader - standard UEFI setup # Bootloader - standard UEFI setup
@ -190,6 +189,21 @@
]; ];
}; };
services.keyd = {
enable = true;
keyboards = {
internal = {
ids = [ "*" ];
settings = {
main = {
capslock = "leftcontrol";
leftalt = "leftmeta";
};
};
};
};
};
# Host-specific packages # Host-specific packages
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# System utilities # System utilities

View file

@ -1,76 +0,0 @@
{ config, pkgs, ... }:
let
keyboard-toggle = pkgs.writeShellScriptBin "keyboard-toggle" ''
# Find the AT keyboard event device
EVENT_DEVICE=$(grep -l "AT Translated Set 2 keyboard" /sys/class/input/event*/device/name | sed 's|/device/name||' | sed 's|.*/||')
PID_FILE="/tmp/keyboard-grab-$USER.pid"
if [ -z "$EVENT_DEVICE" ]; then
echo " Could not find AT keyboard device"
exit 1
fi
# Check if grabber is running
if [ -f "$PID_FILE" ] && kill -0 $(cat "$PID_FILE") 2>/dev/null; then
# Keyboard is disabled, enable it
sudo kill $(cat "$PID_FILE")
rm -f "$PID_FILE"
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 (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
pkgs.libinput
pkgs.evtest
];
# Add convenient shell alias
environment.shellAliases = {
kbt = "keyboard-toggle";
};
# Add sudoers rule for passwordless keyboard toggling
security.sudo.extraRules = [{
users = [ "yanlin" ];
commands = [{
command = "${pkgs.evtest}/bin/evtest --grab /dev/input/*";
options = [ "NOPASSWD" ];
} {
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" ];
}];
}];
}