selenium.kbd 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. ;; Quick notes about the kanata configuration syntax:
  2. ;; - the syntax is Lisp-like but totally unrelated to Lisp, so no worries :-)
  3. ;; - comments are prefixed by double-semicolons
  4. ;; - only one `defsrc` is allowed, listing all keys handled by kanata
  5. ;; - up to 25 `deflayer` are allowed, one per layer emulation
  6. ;; - the underscore symbol `_` in `deflayer` sections means "transparent",
  7. ;; i.e. the previous layer behaviour is used when pressing that key
  8. ;; `defsrc` defines the keys that will be intercepted by kanata.
  9. ;; The order of the keys matches with deflayer declarations and all deflayer
  10. ;; declarations must have the same number of keys as defsrc. Any keys not listed
  11. ;; in defsrc will be passed straight to the operating system.
  12. (defsrc
  13. q w e r t y u i o p
  14. a s d f g h j k l ;
  15. z x c v b 102d n m , . /
  16. lalt spc ralt
  17. )
  18. ;; Use this instead if you want to apply an angle mod:
  19. ;; (defsrc
  20. ;; q w e r t y u i o p
  21. ;; a s d f g h j k l ;
  22. ;; 102d z x c v b n m , . /
  23. ;; lalt spc ralt
  24. ;; )
  25. ;; Base layer (active by default when kanata starts up):
  26. ;; - the 3 main thumb keys become mod/taps
  27. ;; - home-row mods on SDF and JKL
  28. ;; - CapsLock becomes Escape
  29. (deflayer qwerty
  30. q w e r t y u i o p
  31. a @ss @dd @ff g h @jj @kk @ll ;
  32. z x c v b 102d n m , . /
  33. @sft @nav @ssm
  34. )
  35. ;; Symbol layer
  36. (deflayer symbols
  37. AG-q AG-w AG-e AG-r AG-t AG-y AG-u AG-i AG-o AG-p
  38. AG-a AG-s AG-d AG-f AG-g AG-h AG-j AG-k AG-l AG-;
  39. AG-z AG-x AG-c AG-v AG-b _ AG-n AG-m AG-, AG-. AG-/
  40. @num spc @sym
  41. )
  42. ;; Numrow layer
  43. (deflayer numrow
  44. S-1 S-2 S-3 S-4 S-5 S-6 S-7 S-8 S-9 S-0
  45. 1 2 3 4 5 6 7 8 9 0
  46. @dk1 @dk2 @dk3 @dk4 @dk5 _ XX - , . /
  47. @num S-spc @sym
  48. )
  49. ;; Numpad layer
  50. ;; - right: numpad below 798
  51. ;; - left: arrow bloc on ESDF + home/end + page up/down
  52. (deflayer numpad
  53. XX home up end pgup XX 7 8 9 XX
  54. XX lft down rght pgdn - 4 5 6 0
  55. XX XX XX XX XX _ , 1 2 3 .
  56. @std spc @std
  57. )
  58. ;; Num-Navigation layer:
  59. ;; - inherits from Numpad
  60. ;; - left: one-handed shortcuts (Cmd/Ctrl-AZXCV) + Tab/S-Tab
  61. ;; - top: Super-num (i3/sway) or Alt-num (browser), zoom in/out
  62. ;; The `lrld` action stands for "live reload". This will re-parse everything
  63. ;; except for linux-dev, i.e. you cannot live reload and switch keyboard devices.
  64. (deflayer numnav
  65. tab _ _ _ _ _ _ _ _ _
  66. @all _ _ _ _ _ _ _ _ _
  67. @ndo @cut @cpy @pst S-tab _ _ _ _ _ _
  68. _ _ _
  69. )
  70. ;; Vim-Navigation layer:
  71. ;; - right: Vim-like arrows on HJKL, home/end page up/down, mouse scroll
  72. ;; - left: one-hand shortcuts (Cmd/Ctrl-WASZXCV), Tab/Shift-Tab, prev/next
  73. ;; - top: Super-num (i3/sway) or Alt-num (browser), zoom in/out
  74. ;; The `lrld` action stands for "live reload". This will re-parse everything
  75. ;; except for linux-dev, i.e. you cannot live reload and switch keyboard devices.
  76. (deflayer vimnav
  77. @pad @cls bck fwd XX home pgdn pgup end XX
  78. @all @sav S-tab tab XX lft down up rght @fun
  79. @ndo @cut @cpy @pst XX _ @mwl @mwd @mwu @mwr XX
  80. del _ esc
  81. )
  82. ;; Function layer
  83. (deflayer funpad
  84. f1 f2 f3 f4 XX XX XX XX XX XX
  85. f5 f6 f7 f8 XX XX lctl lalt lmet _
  86. f9 f10 f11 f12 XX _ XX XX XX XX XX
  87. _ _ _
  88. )
  89. ;; `defalias` is used to declare a shortcut for a more complicated action to keep
  90. ;; the deflayer declarations clean and aligned. The alignment in deflayers is
  91. ;; not necessary, but is highly recommended for ease of understanding visually.
  92. ;; Aliases are referred to by `@<alias_name>`.
  93. (defalias
  94. ;; tap: backtick (grave), hold: toggle layer-switching layer while held
  95. ;; grl (tap-hold 200 200 grv (layer-toggle layers))
  96. ;; layer-switch changes the base layer.
  97. std (layer-switch qwerty)
  98. pad (layer-switch numpad)
  99. ;; layer-toggle shifts the layer while pressed
  100. sym (layer-toggle symbols)
  101. num (layer-toggle numrow)
  102. fun (layer-toggle funpad)
  103. ;; Main mod-tap: VimNav layer when hold, Space when tapped.
  104. ;; The space key must be hold long enough (300ms) to become a layer shift.
  105. nav (tap-hold 200 300 spc (layer-toggle vimnav))
  106. ;; nav (tap-hold 200 300 spc (layer-toggle numnav))
  107. ;; Space-cadet thumb keys: Shift/BackSpace, AltGr/Return
  108. ;; - acts as a modifier by default, or as BS/Ret when tapped separately;
  109. ;; - works great with Qwerty-Lafayette and Ergo-L keyboard layouts, where
  110. ;; neither Shift nor AltGr are used outside of the 3×10 main alpha keys.
  111. sft (tap-hold-press 200 200 bspc lsft)
  112. alt (tap-hold-press 200 200 ret ralt)
  113. ssm (tap-hold-press 200 200 ret (layer-toggle symbols))
  114. ;; Home-row mods
  115. ;; Must be hold long enough (300ms) to become a modifier.
  116. ss (tap-hold 200 300 s lmet)
  117. dd (tap-hold 200 300 d lalt)
  118. ff (tap-hold 200 300 f lctl)
  119. jj (tap-hold 200 300 j rctl)
  120. kk (tap-hold 200 300 k lalt)
  121. ll (tap-hold 200 300 l rmet)
  122. ;; Mouse wheel emulation
  123. mwu (mwheel-up 50 120)
  124. mwd (mwheel-down 50 120)
  125. mwl (mwheel-left 50 120)
  126. mwr (mwheel-right 50 120)
  127. ;; shortcuts
  128. all C-a
  129. sav C-s
  130. cls C-w
  131. ndo C-z
  132. cut C-x
  133. cpy C-c
  134. pst C-v
  135. ;; Ergo-L/Lafayette dead-key macros
  136. ;; 1dk o ;; Ergo-L
  137. 1dk ; ;; QWERTY-Lafayette
  138. ;; digits must be escaped, otherwise they’re interpreted as delays in ms
  139. ;; um1 (unmod 1) ;; raises an error, WTF?
  140. 1 1
  141. 2 2
  142. 3 3
  143. 4 4
  144. 5 5
  145. dk1 (macro @1dk @1)
  146. dk2 (macro @1dk @2)
  147. dk3 (macro @1dk @3)
  148. dk4 (macro @1dk @4)
  149. dk5 (macro @1dk @5)
  150. )
  151. ;; vim: set ft=lisp