summaryrefslogtreecommitdiff
path: root/layouts/community/ergodox/qwerty_code_friendly/readme.md
blob: cb5e96d69bbd088d6185e75b448521638e469053 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# 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.

- L3 is currently only used if `CFQ_USE_EXPEREMENTAL_LAYER` is defined,
  this is a layer to place extra functionality and test new keys.

## 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_KEY1`, `CFQ_USER_KEY2` are used for custom-keys
- `CFQ_USE_MOMENTARY_LAYER_KEYS` is used to prevent layer keys from toggling when tapped.
- `CFQ_USE_SWAP_RIGHT_SPACE_ENTER` swap Enter and Space on the right hand thumb cluster.
  While asymmetric, it makes Enter more easily accessible.
- `CFQ_USE_EXPEREMENTAL_LAYER` defines an extra layer for misc extra keys/macros.
  Currently it's mostly empty.



## Keymap 0: Basic layer

When undefined:

- `USR1` defaults to `F13`, otherwise use `CFQ_USER_KEY1`.
- `USR2` defaults to `APP`, otherwise use `CFQ_USER_KEY2`.

```
,--------------------------------------------------.           ,--------------------------------------------------.
| 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  | USR2 |Space |                                       | Left | Down | Up   |Right | Del  |
  `----------------------------------'                                       `----------------------------------'
                                       ,-------------.       ,-------------.
                                       | Ins  | ~L3  |       | Home | End  |
                                ,------|------|------|       |------+------+------.
                                |      |      | ~L2  |       | PgUp |      |      |
                                |Space | USR1 |------|       |------|Enter |Space |
                                |      |      | ~L1  |       | PgDn |      |      |
                                `--------------------'       `--------------------'

```

## Keymap 1: Symbol layer

Note the double bracket keys on this layer press left to position the cursor between them.

```
,--------------------------------------------------.           ,--------------------------------------------------.
|        |  F1  |  F2  |  F3  |  F4  |  F5  |  {}  |           |  }{  |  F6  |  F7  |  F8  |  F9  |  F10 |        |
|--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
|        |      |      |      |      |  =>  |  ()  |           |  )(  |  <=  |   7  |   8  |   9  |   \  |   F11  |
|--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
|        |      |      |      |      |  ->  |------|           |------|  <-  |   4  |   5  |   6  |   *  |   F12  |
|--------+------+------+------+------+------|  []  |           |  ][  |------+------+------+------+------+--------|
|        |      |      |      |      |  <>  |      |           |      |  ><  |   1  |   2  |   3  |   -  |        |
`--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
  |      |      |      |      |      |                                       |   0  |      |   .  |   +  |      |
  `----------------------------------'                                       `----------------------------------'
                                       ,-------------.       ,---------------.
                                       |      |      |       |      |        |
                                ,------|------|------|       |------+--------+------.
                                |      |      |      |       |      |        |      |
                                |      |      |------|       |------|        |      |
                                |      |      |      |       |      |        |      |
                                `--------------------'       `----------------------'
```

## Keymap 2: Media and mouse keys

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

## Changelog

- 2017/10/4
  Move Insert key to the left thumb cluster (away from the modifier keys).
  Replace with `USR2` which defaults to `APP`.