233 lines
12 KiB
Markdown
233 lines
12 KiB
Markdown
# ErgoDox EZ Code Friendly Qwerty Layout
|
|
|
|
- This layout aims to balance muscle memory from a typical QWERTY layout
|
|
with having keys used for software development easily accessible.
|
|
|
|
The this layout is a normalized qwerty,
|
|
with some configurable keys left thumb cluster so you can use it more as needed.
|
|
|
|
- Arrow keys follow VIM convention.
|
|
|
|
- On the top row only symbols are used (not numbers),
|
|
it's expected the symbol layer's number-pad layout will be used for numbers.
|
|
|
|
- Symbols match regular QWERTY.
|
|
except for '()' which are grouped with other brackets.
|
|
In their place -/= keys are placed, which almost matches a regular layout.
|
|
|
|
- Brackets are placed symmetrically along the center edges,
|
|
if using keys from both sides is inconvenient - the symbol layer has macros
|
|
at the same key locations to type matching pairs.
|
|
|
|
- The space-bar on the lower-left looks like it's in an obscure location,
|
|
however using the larger thumb cluster
|
|
ended up being more of a reach while typing.
|
|
|
|
## Configuration
|
|
|
|
Some optional behavior is configurable without editing the code
|
|
using `CFQ_` prefixed defines which can be set by passing `EXTRAFLAGS` to make.
|
|
|
|
- `CFQ_USER_KEY0`
|
|
(0..8) are used for custom-keys
|
|
- `CFQ_USE_MOMENTARY_LAYER_KEYS`
|
|
is used to prevent layer keys from toggling when tapped.
|
|
- `CFQ_USE_SHIFT_QUOTES`
|
|
an optional handy shortcut for writing quotes that inserts the
|
|
cursor between the quotation marks.
|
|
|
|
Holding LShift, then RShift types: "" (then presses left).
|
|
|
|
Holding RShift, then LShift types: '' (then presses left).
|
|
|
|
- `CFQ_WORD_[A-Z]`
|
|
defines can bind a key to an entire user defined word.
|
|
|
|
- `CFQ_USE_80_KEYS`
|
|
enables 80 key layout, none of the extra keys are bound,
|
|
they need to be set with defines: `CFQ_USER_K80_L0K0` .. `CFQ_USER_K80_L3K4`.
|
|
Where `L#` is the layer and `K#` is the key.
|
|
|
|
|
|
## Keymap 0: Basic layer
|
|
|
|
```
|
|
.--------------------------------------------------. .--------------------------------------------------.
|
|
| Grave | ! | @ | # | $ | % | { | | } | ^ | & | * | - | = | BSpace |
|
|
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
|
| Tab | Q | W | E | R | T | ( | | ) | Y | U | I | O | P | \ |
|
|
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
|
| Esc | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
|
|
|--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
|
|
| LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
|
|
'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
|
|
| LCtl |Super | Alt | App | Menu | | Left | Down | Up |Right | Del |
|
|
'----------------------------------' '----------------------------------'
|
|
.-------------. .-------------.
|
|
|BSpace| Del | | Home | End |
|
|
.------+------+------| |------+------+------.
|
|
| | |CapsLk| | PgUp | | |
|
|
|Space | ~L1 |------| |------| ~L2 |Enter |
|
|
| | |Insert| | PgDn | | |
|
|
'--------------------' '--------------------'
|
|
|
|
Optional overrides: see CFQ_USER_KEY# defines.
|
|
|
|
.--------------------------------------------------. .--------------------------------------------------.
|
|
| | | | | | | | | | | | | | | USR9 |
|
|
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
|
| | | | | | | | | | | | | | | |
|
|
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
|
| | | | | | |------| |------| | | | | | |
|
|
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
|
| | | | | | | | | | | | | | | |
|
|
'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
|
|
| | | | USR0 | USR1 | | | | | | USR8 |
|
|
'----------------------------------' '----------------------------------'
|
|
.-------------. .-------------.
|
|
| USR2 | USR3 | | | |
|
|
.------+------+------| |------+------+------.
|
|
| | | USR6 | | | | |
|
|
| USR4 | USR5 |------| |------| | |
|
|
| | | USR7 | | | | |
|
|
'--------------------' '--------------------'
|
|
```
|
|
|
|
## Keymap 1: KeyPad, Bracket Pairs & Macro Record
|
|
|
|
Notes:
|
|
|
|
- The double bracket keys on this layer press left to position the cursor between them.
|
|
- The left thumb cluster is used for macro record/replay.
|
|
|
|
```
|
|
.--------------------------------------------------. .--------------------------------------------------.
|
|
| | | | | | | {} | | }{ | |NumLck| / | * | - | |
|
|
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
|
| | | | | | => | () | | )( | <= | 7 | 8 | 9 | + | |
|
|
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
|
| | | | | | -> |------| |------| <- | 4 | 5 | 6 | + | |
|
|
|--------+------+------+------+------+------| [] | | ][ |------+------+------+------+------+--------|
|
|
| | | | | | <> | | | | >< | 1 | 2 | 3 | Enter| |
|
|
'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
|
|
| | | | | | | 0 | | . | Enter| |
|
|
'----------------------------------' '----------------------------------'
|
|
.-------------. .-------------.
|
|
|Start1|Start2| | | |
|
|
.------+------+------| |------+------+------.
|
|
| | |Play1 | | | | |
|
|
| Stop | |------| |------| | |
|
|
| | |Play2 | | | | |
|
|
'--------------------' '--------------------'
|
|
```
|
|
|
|
## Keymap 2: F-Keys, Media & Mouse Keys
|
|
|
|
```
|
|
.--------------------------------------------------. .--------------------------------------------------.
|
|
| | | | | | | | | Mute | | F10 | F11 | F12 | | |
|
|
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
|
| | | | MsUp | | |MWhlUp| |VolUp | | F7 | F8 | F9 | | |
|
|
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
|
| | |MsLeft|MsDown|MsRght| |------| |------| | F4 | F5 | F6 | | |
|
|
|--------+------+------+------+------+------|MWhlDn| |VolDn |------+------+------+------+------+--------|
|
|
| | | Rclk | Mclk | Lclk | | | | | | F1 | F2 | F3 | | |
|
|
'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
|
|
| | | | | | | | | | | |
|
|
'----------------------------------' '----------------------------------'
|
|
.-------------. .-------------.
|
|
| | | | MRwd | MFwd |
|
|
.------+------+------| |------+------+------.
|
|
| | | | | MPrv | | |
|
|
| | |------| |------| | Play |
|
|
| | | | | MNxt | | |
|
|
'--------------------' '--------------------'
|
|
```
|
|
|
|
## Keymap 3: User Defined Words & Numbers
|
|
|
|
Activate by holding L1 & L2.
|
|
|
|
This is for assigning whole words to single keys.
|
|
You can define the arguments (which must be quoted) using: `CFQ_WORD_[A-Z]`
|
|
eg: `-DCFQ_WORD_E=\"my@email.com\"`
|
|
|
|
Notes:
|
|
|
|
- Numbers are included on this layer since some applications differentiate
|
|
between numbers top row and keypad.
|
|
|
|
```
|
|
.--------------------------------------------------. .--------------------------------------------------.
|
|
| | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | |
|
|
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
|
| | Q | W | E | R | T | | | | Y | U | I | O | P | |
|
|
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
|
| | A | S | D | F | G |------| |------| H | J | K | L | | |
|
|
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
|
| | Z | X | C | V | B | | | | N | M | | | | |
|
|
'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
|
|
| | | | | | | | | | | |
|
|
'----------------------------------' '----------------------------------'
|
|
.-------------. .-------------.
|
|
| | | | | |
|
|
.------+------+------| |------+------+------.
|
|
| | | | | | | |
|
|
| | |------| |------| | |
|
|
| | | | | | | |
|
|
'--------------------' '--------------------'
|
|
```
|
|
|
|
## Changelog
|
|
|
|
- 2019/11/20
|
|
Move space to thumb cluster
|
|
Make L1 and L2 symmetrical.
|
|
Activate L3 by holding L1 & L2.
|
|
Add App & Menu keys.
|
|
|
|
- 2018/10/19
|
|
Move F-Keys to key-pad like layout.
|
|
|
|
- 2018/05/29
|
|
Add number keys for cases when keypad numbers are handled differently.
|
|
|
|
- 2018/05/19
|
|
Move all media keys to right thumb cluster
|
|
(matching page up/down, home/end locations).
|
|
|
|
- 2018/04/14
|
|
Add `CFQ_USE_80_KEYS` to optionally support an 80 key layout.
|
|
|
|
- 2018/03/08
|
|
Add `CFQ_USE_SHIFT_QUOTES` option.
|
|
Add `CFQ_USER_KEY8` key.
|
|
|
|
When holding shift `CFQ_WORD_[A-Z]` use title caps.
|
|
|
|
- 2018/03/06
|
|
Add layer for user defined words (replaces `CFQ_USE_EXPEREMENTAL_LAYER`).
|
|
|
|
Minor changes to thumb cluster.
|
|
|
|
Move backspace to left thumb, optionally remap the top right backspace.
|
|
|
|
Make keypad layout match a typical numpad.
|
|
|
|
Move F-Keys to layer 3.
|
|
|
|
- 2017/11/09
|
|
Use Caps-Lock when `CFQ_USE_EXPEREMENTAL_LAYER` isn't defined.
|
|
|
|
- 2017/11/07
|
|
Make thumb left thumb cluster completely configurable with defines.
|
|
Add mouse wheel to mouse layer.
|
|
|
|
- 2017/10/28
|
|
Make more keys user defined on the left thumb cluster.
|
|
Add macro record/replay keys.
|
|
|
|
- 2017/10/04
|
|
Move Insert key to the left thumb cluster (away from the modifier keys).
|
|
Replace with `USR2` which defaults to `APP`.
|