pantheon/modules/programs/kanata.nix
2025-04-05 00:54:20 +08:00

36 lines
1.1 KiB
Nix

{
services.kanata = {
enable = true;
keyboards.k14 = {
devices = [ "/dev/input/by-id/usb-Keychron_Keychron_K14-event-kbd" ];
extraDefCfg = "process-unmapped-keys yes";
config = # lisp
''
(defsrc)
(defvar
tap-timeout 200
hold-timeout 200
tt $tap-timeout
ht $hold-timeout
)
(deflayermap (default-layer)
;; tap caps lock as enter, hold as left ctrl
;; tap-hold-release will activate the hold action early
;; if another key is pressed while it is held.
CapsLock (tap-hold-release 200 200 Escape ControlLeft)
;; space if pressed twice in quick succession will
;; enter a space then delete it and put enter
Space (tap-hold-release 200 200
(tap-dance-eager 200 (
(macro Space) ;; use macro to prevent auto repeat
(macro Backspace Enter)
))
MetaRight)
)
'';
};
};
}