My local repo of qmk firmware.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
qmk_firmware/users/muppetjones/readme/wrappers.md

153 lines
5.2 KiB

# 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 |