-
Notifications
You must be signed in to change notification settings - Fork 125
/
simple.kbd
80 lines (73 loc) · 3.64 KB
/
simple.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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
;; Comments are prefixed by double-semicolon. A single semicolon is parsed as the
;; keyboard key. Comments are ignored for the configuration file.
;;
;; This configuration language is Lisp-like. If you're unfamiliar with Lisp,
;; don't be alarmed. The maintainer jtroo is also unfamiliar with Lisp. You
;; don't need to know Lisp in-depth to be able to configure kanata.
;;
;; If you follow along with the examples, you should be fine. Kanata should
;; also hopefully have helpful error messages in case something goes wrong.
;; If you need help, you are welcome to ask.
;; Only one defsrc is allowed.
;;
;; defsrc defines the keys that will be intercepted by kanata. The order of the
;; keys matches with deflayer declarations and all deflayer declarations must
;; have the same number of keys as defsrc. Any keys not listed in defsrc will
;; be passed straight to the operating system.
(defsrc
grv 1 2 3 4 5 6 7 8 9 0 - = bspc
tab q w e r t y u i o p [ ] \
caps a s d f g h j k l ; ' ret
lsft z x c v b n m , . / rsft
lctl lmet lalt spc ralt rmet rctl
)
;; The first layer defined is the layer that will be active by default when
;; kanata starts up. This layer is the standard QWERTY layout except for the
;; backtick/grave key (@grl) which is an alias for a tap-hold key.
(deflayer qwerty
@grl 1 2 3 4 5 6 7 8 9 0 - = bspc
tab q w e r t y u i o p [ ] \
caps a s d f g h j k l ; ' ret
lsft z x c v b n m , . / rsft
lctl lmet lalt spc ralt rmet rctl
)
;; The dvorak layer remaps the keys to the dvorak layout. In addition there is
;; another tap-hold key: @cap. This key retains caps lock functionality when
;; quickly tapped but is read as left-control when held.
(deflayer dvorak
@grl 1 2 3 4 5 6 7 8 9 0 [ ] bspc
tab ' , . p y f g c r l / = \
@cap a o e u i d h t n s - ret
lsft ; q j k x b m w v z rsft
lctl lmet lalt spc ralt rmet rctl
)
;; defalias is used to declare a shortcut for a more complicated action to keep
;; the deflayer declarations clean and aligned. The alignment in deflayers is not
;; necessary, but is strongly recommended for ease of understanding visually.
;;
;; Aliases are referred to by `@<alias_name>`.
(defalias
;; tap: backtick (grave), hold: toggle layer-switching layer while held
grl (tap-hold 200 200 grv (layer-toggle layers))
;; layer-switch changes the base layer.
dvk (layer-switch dvorak)
qwr (layer-switch qwerty)
;; tap for capslk, hold for lctl
cap (tap-hold 200 200 caps lctl)
)
;; The `lrld` action stands for "live reload". This will re-parse everything
;; except for linux-dev, meaning you cannot live reload and switch keyboard
;; devices.
;;
;; The keys 1 and 2 switch the base layer to qwerty and dvorak respectively.
;;
;; Apart from the layer switching and live reload, all other keys are the
;; underscore _ which means "transparent". Transparent means the base layer
;; behaviour is used when pressing that key.
(deflayer layers
_ @qwr @dvk lrld _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _
)