kanata.kbd 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. ;; ANSI sub-layer (let kanata ignore all other keys)
  2. (defsrc
  3. q w e r t y u i o p
  4. a s d f g h j k l ;
  5. z x c v b n m , . /
  6. lalt spc ralt
  7. )
  8. ;; Base layer (active by default when kanata starts up):
  9. ;; - home-row mods on SDF and JKL
  10. ;; - the 3 main thumb keys become mod/taps
  11. (deflayer qwerty
  12. _ _ _ _ _ _ _ _ _ _
  13. _ @ss @dd @ff _ _ @jj @kk @ll _
  14. _ _ _ _ _ _ _ _ _ _
  15. @sft @nav @sym
  16. )
  17. ;; Navigation layer:
  18. ;; - right: Vim-like arrows on HJKL, home/end page up/down, mouse scroll
  19. ;; - left: one-hand shortcuts (Ctrl-WASZXCV), Tab/Shift-Tab, prev/next
  20. (deflayer vimnav
  21. lrld C-w bck fwd _ home pgdn pgup end _
  22. C-a C-s S-tab tab _ lft down up rght _
  23. C-z C-x C-c C-v _ @mwl @mwd @mwu @mwr _
  24. del _ esc
  25. )
  26. ;; Symbol layer (just an AltGr layer for now)
  27. (deflayer symbols
  28. RA-q RA-w RA-e RA-r RA-t RA-y RA-u RA-i RA-o RA-p
  29. RA-a RA-s RA-d RA-f RA-g RA-h RA-j RA-k RA-l RA-;
  30. RA-z RA-x RA-c RA-v RA-b RA-n RA-m RA-, RA-. RA-/
  31. @num spc -
  32. )
  33. ;; Numrow layer
  34. (deflayer numrow
  35. S-1 S-2 S-3 S-4 S-5 S-6 S-7 S-8 S-9 S-0
  36. 1 2 3 4 5 6 7 8 9 0
  37. _ _ _ _ _ _ - , . /
  38. @sft S-spc @alt
  39. )
  40. ;; Special key aliases
  41. (defalias
  42. ;; Main mod-tap: VimNav layer when hold, Space when tapped.
  43. ;; The space key must be hold long enough (200ms) to become a layer shift.
  44. nav (tap-hold 200 200 spc (layer-toggle vimnav))
  45. ;; Space-cadet thumb keys: Shift/BackSpace, AltGr/Return
  46. ;; - acts as a modifier by default, or as BS/Ret when tapped separately;
  47. ;; - works great with Qwerty-Lafayette and Ergo-L keyboard layouts, where
  48. ;; neither Shift nor AltGr are used outside of the 3×10 main alpha keys.
  49. sft (tap-hold-press 200 200 bspc lsft)
  50. alt (tap-hold-press 200 200 ret ralt)
  51. sym (tap-hold-press 200 200 ret (layer-toggle symbols))
  52. ;; NumRow layer shifter
  53. num (layer-toggle numrow)
  54. ;; Home-row mods
  55. ;; Must be hold long enough (200ms) to become a modifier.
  56. ss (tap-hold 200 200 s lmet)
  57. dd (tap-hold 200 200 d lalt)
  58. ff (tap-hold 200 200 f lctl)
  59. jj (tap-hold 200 200 j rctl)
  60. kk (tap-hold 200 200 k lalt)
  61. ll (tap-hold 200 200 l rmet)
  62. ;; Mouse wheel emulation
  63. mwu (mwheel-up 50 120)
  64. mwd (mwheel-down 50 120)
  65. mwl (mwheel-left 50 120)
  66. mwr (mwheel-right 50 120)
  67. )
  68. ;; vim: set ft=lisp