remove keyboard toggle module
This commit is contained in:
parent
1204d4946a
commit
4bf5afdaee
2 changed files with 15 additions and 77 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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" ];
|
|
||||||
}];
|
|
||||||
}];
|
|
||||||
}
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue