dotfiles/modules/kanata/kanata.nix

33 lines
937 B
Nix
Raw Permalink Normal View History

2025-09-13 15:14:18 -04:00
{ config, libs, pkgs, inputs, ... }:
2025-09-13 15:10:42 -04:00
{
# Kanata setup
# Mostly copied from https://dev.to/shanu-kumawat/how-to-set-up-kanata-on-nixos-a-step-by-step-guide-1jkc
boot.kernelModules = [ "uinput" ]; # Enable uinput kernel module
hardware.uinput.enable = true; # Enable uinput
# Set up udev rules for uinput
services.udev.extraRules = ''
KERNEL=="uinput", MODE="0660", GROUP="uinput", OPTIONS+="static_node=uinput"
'';
users.groups.uinput = { }; # ensure uinput group exists
# Add Kanata service user to necessary groups
systemd.services.kanata-internalKeyboard.serviceConfig = {
SupplementaryGroups = [
"input"
"uinput"
];
};
# Kanata configuration
services.kanata = {
enable = true;
keyboards = {
internalKeyboard = {
devices = [
"/dev/input/by-path/platform-i8042-serio-0-event-kbd"
];
configFile = ./conf.kbd;
2025-09-13 15:16:48 -04:00
};
2025-09-13 15:10:42 -04:00
};
};
}