1 # ErgoDox EZ Code Friendly Qwerty Layout
3 - This layout aims to balance muscle memory from a typical QWERTY layout
4 with having keys used for software development easily accessible.
6 The this layout is a normalized qwerty,
7 with some configurable keys left thumb cluster so you can use it more as needed.
9 - Arrow keys follow VIM convention
10 (the media layer even uses arrow keys for HJKL).
12 - On the top row only symbols are used (not numbers),
13 it's expected the symbol layer's number-pad layout will be used for numbers.
15 - Symbols match regular QWERTY.
16 except for '()' which are grouped with other brackets.
17 In their place -/= keys are placed, which almost matches a regular layout.
19 - Brackets are placed symmetrically along the center edges,
20 if using keys from both sides is inconvenient - the symbol layer has macros
21 at the same key locations to type matching pairs.
23 - The space-bar on the lower-left looks like it's in an obscure location,
24 however using the larger thumb cluster
25 ended up being more of a reach while typing.
29 Some optional behavior is configurable without editing the code
30 using `CFQ_` prefixed defines which can be set by passing `EXTRAFLAGS` to make.
33 (0..7) are used for custom-keys
34 - `CFQ_USE_MOMENTARY_LAYER_KEYS`
35 is used to prevent layer keys from toggling when tapped.
36 - `CFQ_USE_SHIFT_QUOTES`
37 an optional handy shortcut for writing quotes that inserts the
38 cursor between the quotation marks.
40 Holding LShift, then RShift types: "" (then presses left).
42 Holding RShift, then LShift types: '' (then presses left).
45 defines can bind a key to an entire user defined word.
48 enables 80 key layout, none of the extra keys are bound,
49 they need to be set with defines: `CFQ_USER_K80_L0K0` .. `CFQ_USER_K80_L3K4`.
50 Where `L#` is the layer and `K#` is the key.
53 ## Keymap 0: Basic layer
56 .--------------------------------------------------. .--------------------------------------------------.
57 | Grave | ! | @ | # | $ | % | { | | } | ^ | & | * | - | = | BSpace |
58 |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
59 | Tab | Q | W | E | R | T | ( | | ) | Y | U | I | O | P | \ |
60 |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
61 | Esc | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
62 |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
63 | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
64 '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
65 | LCtl |Super | Alt | ~L1 |Space | | Left | Down | Up |Right | Del |
66 '----------------------------------' '----------------------------------'
67 .-------------. .-------------.
68 | Ins |NumClk| | Home | End |
69 .------+------+------| |------+------+------.
70 | | |CapsLk| | PgUp | | |
71 |BSpace| Del |------| |------| ~L2 |Enter |
72 | | | ~L3 | | PgDn | | |
73 '--------------------' '--------------------'
75 Optional overrides: see CFQ_USER_KEY# defines.
77 .--------------------------------------------------. .--------------------------------------------------.
78 | | | | | | | | | | | | | | | USR0 |
79 |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
80 | | | | | | | | | | | | | | | |
81 |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
82 | | | | | | |------| |------| | | | | | |
83 |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
84 | | | | | | | | | | | | | | | |
85 '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
86 | | | | USR1 | | | | | | | USR8 |
87 '----------------------------------' '----------------------------------'
88 .-------------. .-------------.
90 .------+------+------| |------+------+------.
92 | USR4 | USR5 |------| |------| | |
94 '--------------------' '--------------------'
97 ## Keymap 1: KeyPad, Macro Record
101 - The double bracket keys on this layer press left to position the cursor between them.
102 - The left thumb cluster is used for macro record/replay.
105 .--------------------------------------------------. .--------------------------------------------------.
106 | | | | | | | {} | | }{ | |NumLck| / | * | - | |
107 |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
108 | | | | | | => | () | | )( | <= | 7 | 8 | 9 | + | |
109 |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
110 | | | | | | -> |------| |------| <- | 4 | 5 | 6 | + | |
111 |--------+------+------+------+------+------| [] | | ][ |------+------+------+------+------+--------|
112 | | | | | | <> | | | | >< | 1 | 2 | 3 | Enter| |
113 '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
114 | | | | | | | 0 | | . | Enter| |
115 '----------------------------------' '----------------------------------'
116 .-------------. .-------------.
117 |Start1|Start2| | | |
118 .------+------+------| |------+------+------.
120 |Play1 |Play2 |------| |------| | |
122 '--------------------' '--------------------'
125 ## Keymap 2: Media, Mouse Keys and Numbers
129 - Numbers are included on this layer since some applications differentiate
130 between numbers top row and keypad.
133 .--------------------------------------------------. .--------------------------------------------------.
134 | | | | | | | | | Mute | | F10 | F11 | F12 | | |
135 |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
136 | | | | MsUp | | |MWhlUp| |VolUp | | F7 | F8 | F9 | | |
137 |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
138 | | |MsLeft|MsDown|MsRght| |------| |------| | F4 | F5 | F6 | | |
139 |--------+------+------+------+------+------|MWhlDn| |VolDn |------+------+------+------+------+--------|
140 | | | Rclk | Mclk | Lclk | | | | | | F1 | F2 | F3 | | |
141 '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
142 | | | | | | | | | | | |
143 '----------------------------------' '----------------------------------'
144 .-------------. .-------------.
145 | | | | MRwd | MFwd |
146 .------+------+------| |------+------+------.
148 | | |------| |------| | Play |
150 '--------------------' '--------------------'
153 ## Keymap 3: F-Keys & User Defined Words
155 This is for assigning whole words to single keys.
156 You can define the arguments (which must be quoted) using: `CFQ_WORD_[A-Z]`
157 eg: `-DCFQ_WORD_E=\"my@email.com\"`
160 .--------------------------------------------------. .--------------------------------------------------.
161 | | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | |
162 |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
163 | | Q | W | E | R | T | | | | Y | U | I | O | P | |
164 |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
165 | | A | S | D | F | G |------| |------| H | J | K | L | | |
166 |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
167 | | Z | X | C | V | B | | | | N | M | | | | |
168 '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
169 | | | | | | | | | | | |
170 '----------------------------------' '----------------------------------'
171 .-------------. .-------------.
173 .------+------+------| |------+------+------.
175 | | |------| |------| | |
177 '--------------------' '--------------------'
183 Move F-Keys to numpad like layout.
186 Add number keys for cases when keypad numbers are handled differently.
189 Move all media keys to right thumb cluster
190 (matching page up/down, home/end locations).
193 Add `CFQ_USE_80_KEYS` to optionally support an 80 key layout.
196 Add `CFQ_USE_SHIFT_QUOTES` option.
197 Add `CFQ_USER_KEY8` key.
199 When holding shift `CFQ_WORD_[A-Z]` use title caps.
202 Add layer for user defined words (replaces `CFQ_USE_EXPEREMENTAL_LAYER`).
204 Minor changes to thumb cluster.
206 Move backspace to left thumb, optionally remap the top right backspace.
208 Make keypad layout match a typical numpad.
210 Move F-Keys to layer 3.
213 Use Caps-Lock when `CFQ_USE_EXPEREMENTAL_LAYER` isn't defined.
216 Make thumb left thumb cluster completely configurable with defines.
217 Add mouse wheel to mouse layer.
220 Make more keys user defined on the left thumb cluster.
221 Add macro record/replay keys.
224 Move Insert key to the left thumb cluster (away from the modifier keys).
225 Replace with `USR2` which defaults to `APP`.