47 lines
1.6 KiB
Nix
47 lines
1.6 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
|
|
home-row-hold-timeout 200
|
|
tt $tap-timeout
|
|
hrht $home-row-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)
|
|
|
|
;; Home Row Mods
|
|
KeyA (tap-hold-release $tt $hrht KeyA ControlLeft)
|
|
KeyS (tap-hold-release $tt $hrht KeyS ShiftLeft)
|
|
KeyD (tap-hold-release $tt $hrht KeyD AltLeft)
|
|
KeyF (tap-hold-release $tt $hrht KeyF MetaLeft)
|
|
|
|
Semicolon (tap-hold-release $tt $hrht Semicolon ControlRight)
|
|
KeyL (tap-hold-release $tt $hrht KeyL ShiftRight)
|
|
KeyK (tap-hold-release $tt $hrht KeyK AltRight)
|
|
KeyJ (tap-hold-release $tt $hrht KeyJ MetaRight)
|
|
)
|
|
'';
|
|
};
|
|
};
|
|
}
|