selenium.kbd 5.7 KB

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