Tap for Tab, hold for Hyper

This commit is contained in:
JeeBak Kim 2016-08-07 11:05:10 -07:00
parent 68e287013b
commit 3d86e5b7a7
2 changed files with 32 additions and 27 deletions

View file

@ -61,6 +61,7 @@ enum macro_keycodes {
// Custom macros // Custom macros
#define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl #define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl
#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift #define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift
#define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper
// Requires KC_TRNS/_______ for the trigger key in the destination layer // Requires KC_TRNS/_______ for the trigger key in the destination layer
#define LT_TC LT(_TOUCHCURSOR, KC_SPC) // L-ayer T-ap T-ouch C-ursor #define LT_TC LT(_TOUCHCURSOR, KC_SPC) // L-ayer T-ap T-ouch C-ursor
#define LT_MC(kc) LT(_MOUSECURSOR, kc) // L-ayer T-ap M-ouse C-ursor #define LT_MC(kc) LT(_MOUSECURSOR, kc) // L-ayer T-ap M-ouse C-ursor
@ -84,7 +85,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty /* Qwerty
* ,-----------------------------------------------------------------------------------------. * ,-----------------------------------------------------------------------------------------.
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | * | Hyper/Tab| Q | W | E | R | T | Y | U | I | O | P | Bksp |
* |----------+------+------+------+------+-------------+------+------+------+------+--------| * |----------+------+------+------+------+-------------+------+------+------+------+--------|
* | Ctrl/Esc | A | S | MC/D | F | G | H | J | K | L | ; | " | * | Ctrl/Esc | A | S | MC/D | F | G | H | J | K | L | ; | " |
* |----------+------+------+------+------+------|------+------+------+------+------+--------| * |----------+------+------+------+------+------|------+------+------+------+------+--------|
@ -94,7 +95,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-----------------------------------------------------------------------------------------' * `-----------------------------------------------------------------------------------------'
*/ */
[_QWERTY] = { [_QWERTY] = {
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
{CTL_ESC, KC_A, KC_S, LT_MC(KC_D),KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {CTL_ESC, KC_A, KC_S, LT_MC(KC_D),KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT},
{KC_PSCR, KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} {KC_PSCR, KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
@ -102,7 +103,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Colemak /* Colemak
* ,-----------------------------------------------------------------------------------------. * ,-----------------------------------------------------------------------------------------.
* | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | * | Hyper/Tab| Q | W | F | P | G | J | L | U | Y | ; | Bksp |
* |----------+------+------+------+------+-------------+------+------+------+------+--------| * |----------+------+------+------+------+-------------+------+------+------+------+--------|
* | Ctrl/Esc | A | R | MC/S | T | D | H | N | E | I | O | " | * | Ctrl/Esc | A | R | MC/S | T | D | H | N | E | I | O | " |
* |----------+------+------+------+------+------|------+------+------+------+------+--------| * |----------+------+------+------+------+------|------+------+------+------+------+--------|
@ -112,7 +113,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-----------------------------------------------------------------------------------------' * `-----------------------------------------------------------------------------------------'
*/ */
[_COLEMAK] = { [_COLEMAK] = {
{KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, {HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
{CTL_ESC, KC_A, KC_R, LT_MC(KC_S),KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, {CTL_ESC, KC_A, KC_R, LT_MC(KC_S),KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT},
{KC_PSCR, KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} {KC_PSCR, KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
@ -120,7 +121,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Dvorak /* Dvorak
* ,-----------------------------------------------------------------------------------------. * ,-----------------------------------------------------------------------------------------.
* | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | * | Hyper/Tab| " | , | . | P | Y | F | G | C | R | L | Bksp |
* |----------+------+------+------+------+-------------+------+------+------+------+--------| * |----------+------+------+------+------+-------------+------+------+------+------+--------|
* | Ctrl/Esc | A | O | MC/E | U | I | D | H | T | N | S | / | * | Ctrl/Esc | A | O | MC/E | U | I | D | H | T | N | S | / |
* |----------+------+------+------+------+------|------+------+------+------+------+--------| * |----------+------+------+------+------+------|------+------+------+------+------+--------|
@ -130,7 +131,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-----------------------------------------------------------------------------------------' * `-----------------------------------------------------------------------------------------'
*/ */
[_DVORAK] = { [_DVORAK] = {
{KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, {HPR_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC},
{CTL_ESC, KC_A, KC_O, LT_MC(KC_E),KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, {CTL_ESC, KC_A, KC_O, LT_MC(KC_E),KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH},
{KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT}, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT},
{KC_PSCR, KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} {KC_PSCR, KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}

View file

@ -16,19 +16,23 @@ I also decided to change all calls to `persistant_default_layer_set()` to
## Base Layers (Qwerty/Colemak/Dvorak) ## Base Layers (Qwerty/Colemak/Dvorak)
These base layers are mostly the same as the default mappings. The interesting These base layers are mostly the same as the default mappings. The interesting
changes are shown below. The `Ctrl/Esc`, mapped using `CTL_T(KC_ESC)` will emit changes are shown below.
an `Escape` when tapped, and act as a `Control` key when held. A `TODO` item is
to see if it can also act as a `CapsLock` when double-tapped. The right shift - The `Ctrl/Esc`, will emit an `Escape` when tapped, and act as a `Control` key when held.
key acts as `Enter` when tapped, and as a `Shift` key when held. The arrow - The `Sft/Ent` as `Enter` and `Shift`, and
keys, which have been moved to the - The `Hyper/Tab` as `Tab` and `Hyper`
A `TODO` item is to see if it can also act as a `CapsLock` when double-tapped.
The arrow keys, which have been moved to the
[TouchCursor](http://martin-stone.github.io/touchcursor/) layer, have been [TouchCursor](http://martin-stone.github.io/touchcursor/) layer, have been
replaced with the Media keys as shown. The `ML/A` key activates the Mouse layer replaced with the Media keys as shown. The `MC/kc` key activates the
when held, and emits an `A` when tapped. `MouseCursor` layer when held, and emits the corresponding `kc` for its layer,
when tapped.
``` ```
,-----------------------------------------------------------------------------------------. ,-----------------------------------------------------------------------------------------.
| | | | | | | | | | | | | | Hyper/Tab| | | | | | | | | | | |
|----------+------+------+------+------+-------------+------+------+------+------+--------| |----------+------+------+------+------+-------------+------+------+------+------+--------|
| Ctrl/Esc | ML/A | | | | | | | | | | | | Ctrl/Esc | | |MC/kc | | | | | | | | |
|----------+------+------+------+------+------|------+------+------+------+------+--------| |----------+------+------+------+------+------|------+------+------+------+------+--------|
| | | | | | | | | | | |Sft/Ent | | | | | | | | | | | | |Sft/Ent |
|----------+------+------+------+------+------+------+------+------+------+------+--------| |----------+------+------+------+------+------+------+------+------+------+------+--------|