32 lines
957 B
Nix
32 lines
957 B
Nix
{ 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;
|
|
};
|
|
};
|
|
};
|
|
}
|