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