12 KiB
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 (the media layer even uses arrow keys for HJKL).
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..7) are used for custom-keysCFQ_USE_MOMENTARY_LAYER_KEYSis used to prevent layer keys from toggling when tapped.CFQ_USE_SHIFT_QUOTESan 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_KEYSenables 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. WhereL#is the layer andK#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 | ~L1 |Space | | Left | Down | Up |Right | Del |
'----------------------------------' '----------------------------------'
.-------------. .-------------.
| Ins |NumClk| | Home | End |
.------+------+------| |------+------+------.
| | |CapsLk| | PgUp | | |
|BSpace| Del |------| |------| ~L2 |Enter |
| | | ~L3 | | PgDn | | |
'--------------------' '--------------------'
Optional overrides: see CFQ_USER_KEY# defines.
.--------------------------------------------------. .--------------------------------------------------.
| | | | | | | | | | | | | | | USR0 |
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
| | | | | | | | | | | | | | | |
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
| | | | | | |------| |------| | | | | | |
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
| | | | | | | | | | | | | | | |
'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
| | | | USR1 | | | | | | | USR8 |
'----------------------------------' '----------------------------------'
.-------------. .-------------.
| USR2 | USR3 | | | |
.------+------+------| |------+------+------.
| | | USR6 | | | | |
| USR4 | USR5 |------| |------| | |
| | | USR7 | | | | |
'--------------------' '--------------------'
Keymap 1: KeyPad, 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| | | |
.------+------+------| |------+------+------.
| | | Stop | | | | |
|Play1 |Play2 |------| |------| | |
| | | | | | | |
'--------------------' '--------------------'
Keymap 2: Media, Mouse Keys and Numbers
Notes:
- Numbers are included on this layer since some applications differentiate between numbers top row and keypad.
.--------------------------------------------------. .--------------------------------------------------.
| | | | | | | | | 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: F-Keys & User Defined Words
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\"
.--------------------------------------------------. .--------------------------------------------------.
| | 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
2018/10/19 Move F-Keys to numpad 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_KEYSto optionally support an 80 key layout.2018/03/08 Add
CFQ_USE_SHIFT_QUOTESoption. AddCFQ_USER_KEY8key.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_LAYERisn’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
USR2which defaults toAPP.