Files
samfelag/modules/system/kanata.nix
2024-12-04 19:30:14 +01:00

54 lines
1.4 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
caps a s d f h j k l
)
(defvar
tap-time 200
hold-time 250
)
(defalias
caps (tap-hold $tap-time $hold-time caps (layer-while-held arrows))
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
@caps @a @s @d @f @h @j @k @l
)
(deflayer arrows
_ _ _ _ _ left down up right
)
'';
};
};
};
};
}