Merge pull request #364 from techtomas/techtomas

Rearranged the layer toggles and keys.
This commit is contained in:
Erez Zukerman 2016-06-07 21:18:32 -04:00
commit a5d638ad30
3 changed files with 720 additions and 683 deletions

View File

@ -4,65 +4,65 @@
#define BASE 0 // default layer
#define SYMB 1 // symbols
#define MDIA 2 // media
#define APP 2 // app layer
#define CNTL 3 // control layer
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | L1/` | 1 | 2 | 3 | 4 | 5 |CmdSpc| | - | 6 | 7 | 8 | 9 | 0 | = |
* | L2/` | 1 | 2 | 3 | 4 | 5 |CmdSpc| | - | 6 | 7 | 8 | 9 | 0 | = |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* |Meh/Tab | Q | W | E | R | T | STab | | L3 | Y | U | I | O | P | Meh/\ |
* | MEH/Tab| Q | W | E | R | T | [ | | ] | Y | U | I | O | P | MEH/\ |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* |Hyp/Esc | L3/A | S | D | F | G |------| |------| H | J | K | L | L2/; | Hyp/' |
* |--------+------+------+------+------+------| Tab | |AltGui|------+------+------+------+------+--------|
* | LShift | L3/Z | X | C | V | B | | | | N | M | , | . | L2// | RShift |
* |Hyp/Esc | A | S | D | F | G |------| |------| H | J | K | L | L2/; | Hyp/' |
* |--------+------+------+------+------+------| Tab | | STab |------+------+------+------+------+--------|
* | LShift | Z | X | C | V | B | | | | N | M | , | . | L2// | RShift |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* |LCtrl | LAlt | LGui |Left |Right | | UP | Down | [ | ] | L1 |
* |L1/Lft|L3/Rht| LCtl | LAlt | LGui | | Rgui | Up | Dn | L3 | L1 |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | LCtl | LGui | | LAlt |ShfGui|
* | LCtl | LGui | |AltGui|ShfGui|
* ,-------|------|------| |------+--------+------.
* | | | Home | | PgUp | | |
* | | |L1/Hom| |L2/PUp| | |
* | Backsp|Delete|------| |------| Enter | Space |
* | | | End | | PgDn | | |
* | | |L3/End| |L1/PDn| | |
* `--------------------' `-----------------------'
*/
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*
[BASE] = KEYMAP( // layer 0 : default
// left hand
LT(SYMB,KC_GRV), KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_SPC),
MEH_T(KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, S(KC_TAB),
ALL_T(KC_ESC), LT(CNTL,KC_A), KC_S, KC_D, KC_F, KC_G,
KC_LSFT, LT(CNTL,KC_Z), KC_X, KC_C, KC_V, KC_B, KC_TAB,
KC_LCTL, KC_LALT, KC_LGUI, KC_LEFT, KC_RIGHT,
KC_LCTL, KC_LGUI,
KC_HOME,
KC_BSPC, KC_DELETE, KC_END,
LT(APP,KC_GRV), KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_SPC),
MEH_T(KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC,
ALL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_TAB,
LT(SYMB,KC_LEFT), LT(CNTL,KC_RIGHT), KC_LCTL, KC_LALT, KC_LGUI,
KC_LCTL, KC_LGUI,
LT(SYMB,KC_HOME),
KC_BSPC, KC_DELETE, LT(CNTL,KC_END),
// right hand
KC_MINS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
KC_FN3, KC_Y, KC_U, KC_I, KC_O, KC_P, MEH_T(KC_BSLS),
KC_H, KC_J, KC_K, KC_L, LT(MDIA,KC_SCLN), ALL_T(KC_QUOT),
LALT(KC_LGUI), KC_N, KC_M, KC_COMM, KC_DOT, LT(MDIA,KC_SLSH), KC_RSFT,
KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, KC_FN1,
KC_LALT, S(KC_LGUI),
KC_PGUP,
KC_PGDN,KC_ENT, KC_SPC
KC_MINS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, MEH_T(KC_BSLS),
KC_H, KC_J, KC_K, KC_L, LT(APP,KC_SCLN), ALL_T(KC_QUOT),
S(KC_TAB), KC_N, KC_M, KC_COMM, KC_DOT, LT(APP,KC_SLSH), KC_RSFT,
KC_RGUI, KC_UP, KC_DOWN, KC_FN3, KC_FN1,
LALT(KC_LGUI), S(KC_LGUI),
LT(APP,KC_PGUP),
LT(SYMB,KC_PGDN), KC_ENT, KC_SPC
),
/* Keymap 1: Symbol Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
* | | F1 | F2 | F3 | F4 | F5 | | | Tab | F6 | F7 | F8 | F9 | F10 | F11 |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | ! | @ | { | } | | | < | | > | : | 7 | 8 | 9 | / | F12 |
* | | ! | @ | { | } | | | < | | > | : | 7 | 8 | 9 | / | F12 |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | # | $ | ( | ) | ` |------| |------| ; | 4 | 5 | 6 | * | Prnt |
* | | # | $ | ( | ) | ` |------| |------| ; | 4 | 5 | 6 | * | |
* |--------+------+------+------+------+------| F14 | | F15 |------+------+------+------+------+--------|
* | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | - | Entr |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | 0 | . | = | + | |
* | | | | | | | 0 | . | = | + | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
@ -84,66 +84,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,
// right hand
KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
KC_TAB, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
S(KC_DOT), KC_COLN, KC_7, KC_8, KC_9, KC_BSLS, KC_F12,
KC_SCLN, KC_4, KC_5, KC_6, KC_ASTR, KC_PSCR,
KC_SCLN, KC_4, KC_5, KC_6, KC_ASTR, KC_TRNS,
KC_F15, KC_AMPR, KC_1, KC_2, KC_3, KC_MINS, KC_ENT,
KC_0, KC_DOT, KC_EQL, KC_PLUS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
/* Keymap 2: Media Layer
/* Keymap 2: App Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | | | | | | | | | | | | | | |
* | | CmdQ | CmdW | | | | Stab | | Play | Prev | Next | | |PrtSc | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | |------| |------| | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | | | | | | | | | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | | | | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | Prev | Next | | Prev | Next |
* ,------|------|------| |------+------+------.
* | | | VolUp| | VolUp| | |
* | Play | Mute |------| |------| Mute | Play |
* | | | VolDn| | VolDn| | |
* `--------------------' `--------------------'
*/
// Control
[MDIA] = KEYMAP(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_MPRV, KC_MNXT,
KC_VOLU,
KC_MPLY, KC_MUTE, KC_VOLD,
// right hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_MPRV, KC_MNXT,
KC_VOLU,
KC_VOLD, KC_MUTE, KC_MPLY
),
/* Keymap 3: Control Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | Sleep | | | | | | Pwr | | | | | | | | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | | | MsUp | | | | | | | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | |MsLeft|MsDown|MsRght| Lclk |------| |------| Lft | Down | Up | Right| | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | Rclk | | | | | | | | | |
* | | | | | | |------| |------| VolDn|VolUp | | | | |
* |--------+------+------+------+------+------| | | Mute |------+------+------+------+------+--------|
* | | CmdZ | CmdX | CmdC | CmdY | CtrlC| | | | | | | | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | | | | | |
* `----------------------------------' `----------------------------------'
@ -156,14 +115,55 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `--------------------' `--------------------'
*/
// Control
[APP] = KEYMAP(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, LGUI(KC_Q), LGUI(KC_W), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_TAB),
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LCTL(KC_C), KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
// right hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS,
KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
/* Keymap 3: Control Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | Pwr | | | | | | | | | | | | | | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | | | MsUp | | | | | | | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | |MsLeft|MsDown|MsRght| Lclk |------| |------| Lft | Down | Up | Right| | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | Rclk | | | | | | | | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | | | | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | Shift| | | Home | End |
* ,------|------|------| |------+------+------.
* | | | LAtl | | | | |
* | | |------| |------| | |
* | | | | | | | |
* `--------------------' `--------------------'
*/
// Control
[CNTL] = KEYMAP(
KC_SLEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PWR,
KC_PWR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN1,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN2, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_LSFT, KC_TRNS,
KC_LALT,
KC_TRNS, KC_TRNS, KC_TRNS,
// right hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@ -171,7 +171,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_HOME, KC_END,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
@ -179,7 +179,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
const uint16_t PROGMEM fn_actions[] = {
[1] = ACTION_LAYER_TAP_TOGGLE(SYMB),
[2] = ACTION_LAYER_TAP_TOGGLE(MDIA),
[2] = ACTION_LAYER_TAP_TOGGLE(APP),
[3] = ACTION_LAYER_TAP_TOGGLE(CNTL) // FN1 - Momentary Layer 1 (Symbols)
};

View File

@ -6,28 +6,49 @@ The base layer is a merge of what I liked with the default layout and the ordina
* The Caps Lock postion handles [Hyper/Esc](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)
* The Tab key toggles MEH.
* The two vertical mods on the left board are Shift+Tab and Tab.
* The two vertical mods on the right board are Control Layer tap/toggle and Alt+Cmd.
* The top vertical mods on the left and right are [ and ].
* The bottom vertical mods on the left and right are tab and shift+tab
* The HYPER and MEH key are made in the same location on the right side of the board as well. Using Keyboard Maestro for OS X makes one-handed shortcuts very easy.
* Layer switching is focused around the thumb clusters plus some additional locations for convience.
## Symbol Layer
The symbol layer can be tap/toggled through the bottom right key and also toggled holding the tilde/grave key in the upper left corner. I haven't used the symbol layer enough to tell if this was a good place or not but it made sense in my head
The symbol layer can be tap/toggled with the bottom right key and also toggled on the thumb clusters.
The bottom two vertical mods are set to F14 and F15 which is the default for changing screen brightness on the mac
## Media Layer
/ & ; will toggle the media layer which has play and volume controls assigned to the thumb cluster. I found this an easy way to quickly play/pause
## App Layer
The app layer is used to control media playback and also some application shortcuts (OS X Focused).
It can be toggled on the left board in the top left corner (tilde/grave) or using your pinky on the right side of the board using either ; or /.
There is one additional toggle on the right thumb cluster for quick access to play and mute key combos.
### Current App shortcuts defined
* Q = CMD+Q
* W = CMD+W
* Z = CMD+Z
* X = CMD+X
* C = CMD+C
* V = CMD+V
* B = CTRL+C
* P = Print Screen
## Control Layer
The a and z keys toggle the control layer.
The control layer is meant to help easily navigate and select text. It can also be stacked ontop of the Symbol layer when needed.
The right arrow key and End key toggle the control layer on the left board. There is also a tap toggle for the layer in the same position on the right side of the board.
On the left board you have mouse control with left & right click in the location of the G and B keys.
On the right board you have vim-style arrow keys using hjkl
The thumb cluster and mods all pass down to this layer.
The left thumb cluster moves shift and alt within easy reach while holding the toggle (end). So far I've found this convient to navigate and skip around text when using the hjkl arrow keys. I found that it was easy to get the alt key stuck on depending on what key you released first so I added the PREVENT_STUCK_MODIFIERS to the config.h to help with that.
## Changelog
* May 4th, 2016 (v1.2):
* Moved layer toggles around to match my habbits of typing
* Enabled Prevent Stuck Modifers in my config.h (L3 + Alt on cluster would get stuck)
* Changed media layer to be more like an app layer with some quick shortcuts (mac centric)
* Moved around the base layer arrow keys so mod keys were more accesible
* Apr 29, 2016 (V1.1):
* Added F14 and F15 to symbol layer
* Added control layer toggle to A key.

File diff suppressed because it is too large Load Diff