Currently designed for the use of an ANSI tenkeyless keyboard on Windows 10. Although many of the ideas can be applied agnostically across operating systems.
This is the default base layer that is used for most of my typing and where the intermediate layers are stacked onto. It is loaded by default on keyboard power up.
TAPPING_TERM
of 200 ms
COMBO_TERM
of 20 ms
,---. ,---------------. ,---------------. ,---------------. ,-----------.
|Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau|
`---' `---------------' `---------------' `---------------' `-----------'
,-----------------------------------------------------------. ,-----------. ,---------------.
| `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \ | |Ins|Hom|PgU| |NmL| /| *| -|
|-----------------------------------------------------------| |-----------| |---------------|
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| Bsp| |Del|End|PgD| | 7| 8| 9| |
|-----------------------------------------------------------| `-----------' |-----------| |
|Ctl/Esc| A| S| D| F| G| H| J| K| L|;/:| ' | Return| | 4| 5| 6| +|
|-----------------------------------------------------------| ,---. |---------------|
|Shift/( |Dev/Z| X| C| V| B| N| M| ,| .| /| Shift/)| | ↑ | | 1| 2| 3| |
|-----------------------------------------------------------| ,-----------. |-----------| |
|Meh/CapsL|Gui|Alt| Space |Alt|Adjust/Gui|App| Ctl| | ← | ↓ | → | | 0| .|Ent|
`-----------------------------------------------------------' `-----------' `---------------'
Note: can't use Hyper key (Ctrl + Shift + Alt + Gui) instead of Meh reliably on Windows 10 because pressing Hyper opens Microsoft Office, Hyper + t opens Microsoft Teams, Hyper + d opens Microsoft OneDrive, Hyper + y Yammer, etc. And I couldn't find a clean way to disable this without needing to modify the host computer.
This layer is for when other people need to type on my keyboard.
,---. ,---------------. ,---------------. ,---------------. ,-----------.
|Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau|
`---' `---------------' `---------------' `---------------' `-----------'
,-----------------------------------------------------------. ,-----------. ,---------------.
| `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Bsp| |Ins|Hom|PgU| |NmL| /| *| -|
|-----------------------------------------------------------| |-----------| |---------------|
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | |Del|End|PgD| | 7| 8| 9| |
|-----------------------------------------------------------| `-----------' |-----------| |
|CapsL | A| S| D| F| G| H| J| K| L| ;| '| Return| | 4| 5| 6| +|
|-----------------------------------------------------------| ,---. |---------------|
|Shift | Z| X| C| V| B| N| M| ,| ,| /|Shift | | ↑ | | 1| 2| 3| |
|-----------------------------------------------------------| ,-----------. |-----------| |
|Ctl|Gui|Alt| Space |Alt|Adjust/Gui|App|Ctl| | ← | ↓ | → | | 0| .|Ent|
`-----------------------------------------------------------' `-----------' `---------------'
Inspired by narze via jasonrudolph. It's designed to help with navigation while keeping you on the home row, or very close to it.
TAPPING_TERM
of 200 ms but s + d uses a COMBO_TERM
of only 20 ms (can be changed within config.h
).,---. ,---------------. ,---------------. ,---------------. ,-----------.
| | | | | | | | | | | | | | | | | | | | |
`---' `---------------' `---------------' `---------------' `-----------'
,-----------------------------------------------------------. ,-----------. ,---------------.
| | | | | | | | | | | | | | | | | | | | | | | |
|-----------------------------------------------------------| |-----------| |---------------|
| | | | | | | |1T |T← |T→ |9T | | | | | | | | | | | | |
|-----------------------------------------------------------| `-----------' |-----------| |
| |Alt|[SuperDuper]|Bksp|Ctl| ← | ↓ | ↑ | → |Del| | | | | | | |
|-----------------------------------------------------------| ,---. |---------------|
| | | | | | | | | | |ToggleSD| | | | | | | | |
|-----------------------------------------------------------| ,-----------. |-----------| |
| | | | Shift | | | | | | | | | | | | |
`-----------------------------------------------------------' `-----------' `---------------'
This layer is for easy access to symbols commonly used during development.
,---. ,---------------. ,---------------. ,---------------. ,-----------.
| | | | | | | | | | | | | | | | | | | | |
`---' `---------------' `---------------' `---------------' `-----------'
,-----------------------------------------------------------. ,-----------. ,---------------.
| | | | | | | | | | | | | | | | | | | | | | | |
|-----------------------------------------------------------| |-----------| |---------------|
| | | | | | | | - | + | ( | ) | | | | | | | | | | | | |
|-----------------------------------------------------------| `-----------' |-----------| |
| | | | | | | _ | [ | ] | { | } | | | | | | | |
|-----------------------------------------------------------| ,---. |---------------|
| | | | | | | = | | | < | > | ? | | | | | | | | |
|-----------------------------------------------------------| ,-----------. |-----------| |
| | | | | | | | | | | | | | | | |
`-----------------------------------------------------------' `-----------' `---------------'
This layer is applied at the top so that it will override all other layers and as a result it will always be possible to change which base layer is applied as a default. It is also used for media controls.
,---. ,---------------. ,---------------. ,---------------. ,-----------.
| | | | | | | | | | | | | | | | | | | | |
`---' `---------------' `---------------' `---------------' `-----------'
,-----------------------------------------------------------. ,--------------. ,---------------.
| | | | | | | | | | | | | | | |Play|Next|VolU| | | | | |
|-----------------------------------------------------------| |--------------| |---------------|
| |QWERTY| | | | | | | | | | | | | |Stop|Prev|VolD| | | | | |
|-----------------------------------------------------------| `--------------' |-----------| |
| | | | | | | | | | | | | | | | | | |
|-----------------------------------------------------------| ,---. |---------------|
| | | |CKO| | | |Play|Mute|VolD|VolU| SD| | | | | | | | |
|-----------------------------------------------------------| ,-----------. |-----------| |
| | | | | | | | | | | | | | | | |
`-----------------------------------------------------------' `-----------' `---------------'
To compile and flash the config onto the USB to USB converter:
cd /path/to/qmk_firmware
qmk config user.keyboard=converter/usb_usb/hasu
qmk config user.keymap=chriskopher
qmk compile
qmk flash
Alternatively:
cd /path/to/qmk_firmware
qmk compile -kb converter/usb_usb/hasu -km chriskopher
qmk flash -kb converter/usb_usb/hasu -km chriskopher
To modify the config:
cd /path/to/qmk_firmware/keyboards/converter/usb_usb/keymaps/chriskopher
and edit keymap.c
, config.h
, and rules.mk
.