60 lines
1.8 KiB
Text
60 lines
1.8 KiB
Text
;; vim: ft=commonlisp
|
|
|
|
;; Home row mods QWERTY example with more complexity.
|
|
;; Some of the changes from the basic example:
|
|
;; - when a home row mod activates tap, the home row mods are disabled
|
|
;; while continuing to type rapidly
|
|
;; - tap-hold-release helps make the hold action more responsive
|
|
;; - pressing another key on the same half of the keyboard
|
|
;; as the home row mod will activate an early tap action
|
|
|
|
(defcfg
|
|
process-unmapped-keys yes
|
|
)
|
|
(defsrc
|
|
lsft a s d f j k l ;
|
|
)
|
|
(defvar
|
|
;; Note: consider using different time values for your different fingers.
|
|
;; For example, your pinkies might be slower to release keys and index
|
|
;; fingers faster.
|
|
tap-time 200
|
|
hold-time 150
|
|
|
|
left-hand-keys (
|
|
q w e r t
|
|
a s d f g
|
|
z x c v b
|
|
)
|
|
right-hand-keys (
|
|
y u i o p
|
|
h j k l ;
|
|
n m , . /
|
|
)
|
|
)
|
|
(deflayer base
|
|
@lsft @a @s @d @f @j @k @l @;
|
|
)
|
|
|
|
(deflayer nomods
|
|
@lsft a s d f j k l ;
|
|
)
|
|
(deffakekeys
|
|
to-base (layer-switch base)
|
|
)
|
|
(defalias
|
|
tap (multi
|
|
(layer-switch nomods)
|
|
(on-idle-fakekey to-base tap 20)
|
|
)
|
|
|
|
lsft (tap-hold 100 100 esc lsft)
|
|
a (tap-hold-release-keys $tap-time $hold-time (multi a @tap) lctl $left-hand-keys)
|
|
s (tap-hold-release-keys $tap-time $hold-time (multi s @tap) lalt $left-hand-keys)
|
|
d (tap-hold-release-keys $tap-time $hold-time (multi d @tap) lsft $left-hand-keys)
|
|
f (tap-hold-release-keys $tap-time $hold-time (multi f @tap) lmet $left-hand-keys)
|
|
j (tap-hold-release-keys $tap-time $hold-time (multi j @tap) rmet $right-hand-keys)
|
|
k (tap-hold-release-keys $tap-time $hold-time (multi k @tap) rsft $right-hand-keys)
|
|
l (tap-hold-release-keys $tap-time $hold-time (multi l @tap) ralt $right-hand-keys)
|
|
; (tap-hold-release-keys $tap-time $hold-time (multi ; @tap) rctl $right-hand-keys)
|
|
)
|