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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
# Keymap Wrappers
> Pattern adapted from users/drashna/wrapper.h
Defines several object macros for common keycode sets. Each macro typically
covers 5 keycodes with a left- or right-hand orientation, and macros are
generally grouped into rows of three or four.
> TODO: Use keymap builder to generate images.
## Example
```
#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// clang-format off
[_MODS] = LAYOUT_wrapper(
_______, ___________________BLANK___________________, ...
...
),
//clang-format on
}
```
Substitute the appropriate `LAYOUT` function, e.g., `LAYOUT_planck_grid` for your board.
## Wrappers
> **How to Read the Tables**
>
> - Headers are numbered when wrapper is not hand-specific
> - Headers use `L` and `R` to indicate handedness
> - Headers use `P`, `R`, `M`, and `I` to indicate pinky, ring, middle, and index, respectively
> - Wrappers define a maximum of **five** keycodes -- hands are shown on the same row for readability
### Alpha: Colemak mod-DH
| # | LP | LR | LM | LI | LI+ | RI+ | RI | RM | RR | RP |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 1 | Q | W | F | P | B | J | L | U | Y | ;ˆ |
| 2 | A° | R° | S° | T° | G | M | N° | E° | I° | O° |
| 3 | Z | X | C | D | V˜ | K | H | , | . | / |
- **ˆ:** (Optional) Replace `;` with `'` (top-right)
- **°:** (Optional) Home row modifiers on tap-hold (GACS, SCAG)
- **˜:** (Optional) Tap-hold `shift` on `v`
### Alpha: QWERTY
| # | LP | LR | LM | LI | LI+ | RI+ | RI | RM | RR | RP |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 1 | Q | W | E | R | T | Y | U | I | O | P |
| 2 | A | S | D | F | G | H | J | K | L | ; |
| 3 | Z | X | C | V | B | N | M | , | . | / |
### Blank(-ish)
Defines macros for common filler.
| 1 | 2 | 3 | 4 | 5 |
| ---- | ---- | ---- | ---- | ---- |
| TRNS | TRNS | TRNS | TRNS | TRNS |
| xxxx | xxxx | xxxx | xxxx | xxxx |
| LP | LR | LM | LI | LI+ | RI+ | RI | RM | RR | RP |
| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
| LGUI | LALT | LCTL | LSFT | TRNS | TRNS | RSFT | RCTL | LALT | RGUI |
### Adjust
| # | LP | LR | LM | LI | LI+ | RI+ | RI | RM | RR | RP |
| --- | ------ | ----- | ---- | ----- | ------ | ---- | ------ | ------ | ---- | ---- |
| 1 | Reset | Debug | xxxx | Term+ | Term- | xxxx | AGNORM | AGSWAP | xxxx | xxxx |
| 2 | RgbTog | Hue+ | Sat+ | Val+ | RgbMod | xxxx | CLMKDH | QWERTY | xxxx | xxxx |
| 3 | xxxx | Hue- | Sat- | Val- | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx |
> Recommend: Define Right side per-board
### Function
| # | 1 | 2 | 3 | 4 |
| --- | --- | --- | --- | --- |
| 1 | F1 | F2 | F3 | F4 |
| 2 | F5 | F6 | F7 | F8 |
| 3 | F9 | F10 | F11 | F12 |
### Media
| # | 1 | 2 | 3 | 4 | 5 |
| --- | ----- | ----- | ----- | ---- | ---- |
| 1 | AuOn | MiOn | MuOn | Brm+ | Vol+ |
| 2 | AuOff | MiOff | MuOff | Brm- | Vol- |
| 3 | Play | Stop | Next | Prev | Mute |
### Nav
| # | RI+ | RI | RM | RR | RP |
| --- | ----- | ---- | ----- | ----- | ----- |
| 1 | Pg Up | Home | Wh Dn | Wh Up | End |
| 2 | Pg Dn | Left | Down | Up | Right |
| 3 | xxxx | xxxx | xxxx | xxxx | xxxx |
### Numpad
- `X Y` indicates the character `X` on keypress and character `Y` on `shift` keypress
- Second table shows characters with `alt` keypress
| # | RI+ | RI | RM | RR | RP |
| --- | ----- | ----- | ----- | ----- | ----- |
| 1 | Del | `7 &` | `8 _` | `9 (` | |
| 2 | `- _` | `4 $` | `5 %` | `6 ^` | `*` |
| 3 | `= +` | `1 !` | `2 @` | `3 #` | `, <` |
| 4 | | `0 )` | `. >` | | |
| # | RI+ | RI | RM | RR | RP |
| --- | ----- | ----- | ----- | ----- | ----- |
| 1 | | `¶ ‡` | `• °` | `ª ·` | `« »` |
| 2 | `– —` | `¢ ›` | `∞ fi` | `§ fl` | `° °` |
| 3 | `≠ ±` | `¡ ⁄` | `™ €` | `£ ‹` | `≤ ¯` |
| 4 | | | `º ‚` | | |
### Symbols
| # | LP | LR | LM | LI | LI+ |
| --- | ---- | ---- | ---- | ---- | ---- |
| 1 | ~ | \` | ( | ) | |
| 2 | LGUI | LALT | \[ ° | \] ° | \_ - |
| 3 | xxxx | xxxx | { | } | LSFT |
- **°:** Home row modifiers on tap-hold (GACS, SCAG)
### VIM
| # | LP | LR | LM | LI | LI+ |
| --- | --- | --- | --- | --- | --- |
| 1 | Q° | W° | : | | |
- **°:** Via transparency
## Typical Layers
My keymaps typically use the following layers.
| # | Name | Via | Left | Right |
| --- | ---------- | ------------- | --------- | ------ |
| 0 | Colemak DH | Adjust | | |
| 1 | QWERTY | Adjust | | |
| 2 | Mouse | tap-dance | n/a | n/a |
| 3 | Lower | L home thumb | symbols | numpad |
| 4 | Raise | L outer thumb | | |
| 5 | Nav | R home thumb | home mods | nav |
| 6 | Adjust | tap-dance | RGB | MEDIA |
|