qmk-keychron-q3-colemak-dh/layouts/community/ergodox/qwerty_code_friendly
Campbell Barton aadb386de6 qwerty_code_friendly: various updates
- Remove action_get_macro in favor of process_record_user
- Support user defined words on layer 3 (pass via flags)
- Support backspace & del on left thumb cluster.
  (optionally override top right backspace).
2018-03-07 17:00:21 -05:00
..
keymap.c qwerty_code_friendly: various updates 2018-03-07 17:00:21 -05:00
readme.md qwerty_code_friendly: various updates 2018-03-07 17:00:21 -05:00

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.

  • 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 extra 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.

  • There is a 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).

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-keys
  • CFQ_USE_MOMENTARY_LAYER_KEYS is used to prevent layer keys from toggling when tapped.
  • CFQ_WORD_[A-Z] defines can bind a key to an entire user defined word.

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 | Ins  |
  `----------------------------------'                                       `----------------------------------'
                                       ,-------------.       ,-------------.
                                       |   <  |  >   |       | Home | End  |
                                ,------+------+------|       |------+------+------.
                                |      |      |CapsLk|       | PgUp |      |      |
                                |BSpace| Del  |------|       |------| ~L2  |Space |
                                |      |      | ~L3  |       | PgDn |      |      |
                                `--------------------'       `--------------------'

Optional overrides: see CFQ_USER_KEY# defines.

,--------------------------------------------------.           ,--------------------------------------------------.
|        |      |      |      |      |      |      |           |      |      |      |      |      |      | USR0   |
|--------+------+------+------+------+------+------|           |------+------+------+------+------+------+--------|
|        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
|--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
|        |      |      |      |      |      |------|           |------|      |      |      |      |      |        |
|--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
|        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
`--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
  |      |      |      | USR1 |      |                                       |      |      |      |      |      |
  `----------------------------------'                                       `----------------------------------'
                                       ,-------------.       ,-------------.
                                       | 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: Keymap 2: Media and mouse keys

,--------------------------------------------------.           ,--------------------------------------------------.
|        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
|--------+------+------+------+------+------+------|           |------+------+------+------+------+------+--------|
|        |      |      | MsUp |      |      |MWhlUp|           |      |      |      |      |      |      |        |
|--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
|        |      |MsLeft|MsDown|MsRght|      |------|           |------| Left | Down | Up   |Right |      |        |
|--------+------+------+------+------+------|MWhlDn|           |      |------+------+------+------+------+--------|
|        |      | Rclk | Mclk | Lclk |      |      |           |      |      |      |      |      |      |        |
`--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
  |      |      |      |      |      |                                       |      |      |      |      |      |
  `----------------------------------'                                       `----------------------------------'
                                       ,-------------.       ,-------------.
                                       | MRwd | MFwd |       | MPrv | MNxt |
                                ,------+------+------|       |------+------+------.
                                |      |      |      |       |VolUp |      |      |
                                | Mute |      |------|       |------|      | Play |
                                |      |      |      |       |VolDn |      |      |
                                `--------------------'       `--------------------'

Keymap 3: K-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\"

,--------------------------------------------------.           ,--------------------------------------------------.
|        |  F1  |  F2  |  F3  |  F4  |  F5  |  F11 |           | F12  |  F6  |  F7  |  F8  |  F9  |  F10 |        |
|--------+------+------+------+------+------+------|           |------+------+------+------+------+------+--------|
|        |   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/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.