{ config, libs, pkgs, inputs, ... }: { # 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 = builtins.readFile = ./conf.kbd; }; }; }; }