forked from jtroo/kanata
-
Notifications
You must be signed in to change notification settings - Fork 0
/
home-row-mod-advanced.kbd
57 lines (53 loc) · 1.75 KB
/
home-row-mod-advanced.kbd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
;; 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
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
@a @s @d @f @j @k @l @;
)
(deflayer nomods
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)
)
a (tap-hold-release-keys $tap-time $hold-time (multi a @tap) lmet $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) lctl $left-hand-keys)
f (tap-hold-release-keys $tap-time $hold-time (multi f @tap) lsft $left-hand-keys)
j (tap-hold-release-keys $tap-time $hold-time (multi j @tap) rsft $right-hand-keys)
k (tap-hold-release-keys $tap-time $hold-time (multi k @tap) rctl $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) rmet $right-hand-keys)
)