;; ANSI sub-layer (let kanata ignore all other keys) (defsrc q w e r t y u i o p a s d f g h j k l ; z x c v b n m , . / lalt spc ralt ) ;; Base layer (active by default when kanata starts up): ;; - home-row mods on SDF and JKL ;; - the 3 main thumb keys become mod/taps (deflayer qwerty _ _ _ _ _ _ _ _ _ _ _ @ss @dd @ff _ _ @jj @kk @ll _ _ _ _ _ _ _ _ _ _ _ @sft @nav @sym ) ;; Navigation layer: ;; - right: Vim-like arrows on HJKL, home/end page up/down, mouse scroll ;; - left: one-hand shortcuts (Ctrl-WASZXCV), Tab/Shift-Tab, prev/next (deflayer vimnav lrld C-w bck fwd _ home pgdn pgup end _ C-a C-s S-tab tab _ lft down up rght _ C-z C-x C-c C-v _ @mwl @mwd @mwu @mwr _ del _ esc ) ;; Symbol layer (just an AltGr layer for now) (deflayer symbols RA-q RA-w RA-e RA-r RA-t RA-y RA-u RA-i RA-o RA-p RA-a RA-s RA-d RA-f RA-g RA-h RA-j RA-k RA-l RA-; RA-z RA-x RA-c RA-v RA-b RA-n RA-m RA-, RA-. RA-/ @num spc - ) ;; Numrow layer (deflayer numrow S-1 S-2 S-3 S-4 S-5 S-6 S-7 S-8 S-9 S-0 1 2 3 4 5 6 7 8 9 0 _ _ _ _ _ _ - , . / @sft S-spc @alt ) ;; Special key aliases (defalias ;; Main mod-tap: VimNav layer when hold, Space when tapped. ;; The space key must be hold long enough (200ms) to become a layer shift. nav (tap-hold 200 200 spc (layer-toggle vimnav)) ;; Space-cadet thumb keys: Shift/BackSpace, AltGr/Return ;; - acts as a modifier by default, or as BS/Ret when tapped separately; ;; - works great with Qwerty-Lafayette and Ergo-L keyboard layouts, where ;; neither Shift nor AltGr are used outside of the 3×10 main alpha keys. sft (tap-hold-press 200 200 bspc lsft) alt (tap-hold-press 200 200 ret ralt) sym (tap-hold-press 200 200 ret (layer-toggle symbols)) ;; NumRow layer shifter num (layer-toggle numrow) ;; Home-row mods ;; Must be hold long enough (200ms) to become a modifier. ss (tap-hold 200 200 s lmet) dd (tap-hold 200 200 d lalt) ff (tap-hold 200 200 f lctl) jj (tap-hold 200 200 j rctl) kk (tap-hold 200 200 k lalt) ll (tap-hold 200 200 l rmet) ;; Mouse wheel emulation mwu (mwheel-up 50 120) mwd (mwheel-down 50 120) mwl (mwheel-left 50 120) mwr (mwheel-right 50 120) ) ;; vim: set ft=lisp