Files
samfelag/modules/system/kanata.nix
2024-11-23 13:05:31 +01:00

48 lines
1.2 KiB
Nix

{ config, pkgs, lib, ... }:
let
cfg = config.samfelag.modules.system.kanata;
in
{
options.samfelag.modules.system.kanata = {
enable = lib.mkEnableOption "kanata";
};
config = lib.mkIf cfg.enable {
users.users.${config.user.name}.extraGroups = [
"input"
"uinput"
];
services.kanata = {
enable = true;
keyboards = {
internalKeyboard = {
extraDefCfg = "process-unmapped-keys yes";
config = ''
(defsrc
a s d f h j k l
)
(defvar
tap-time 200
hold-time 250
)
(defalias
a (tap-hold $tap-time $hold-time a lalt)
s (tap-hold $tap-time $hold-time s lsft)
d (tap-hold $tap-time $hold-time d lmet)
f (tap-hold $tap-time $hold-time f lctl)
h (tap-hold $tap-time $hold-time h rctl)
j (tap-hold $tap-time $hold-time j rmet)
k (tap-hold $tap-time $hold-time k rsft)
l (tap-hold $tap-time $hold-time l ralt)
)
(deflayer base
@a @s @d @f @h @j @k @l
)
'';
};
};
};
};
}