[Keymap] Updates to noroadsleft keymap for KC60 (2019-04-07) (#5576)
* Update macros and keycode handling - Update NUBS_Z macro so it repeats when held down - Number row now uses numpad keycodes if Right Alt is being held - coding conventions and formatting update - switched to four-space indent - reformatted a block comment * Update readme files
This commit is contained in:
parent
0231caa25a
commit
18a9f7999e
@ -9,24 +9,24 @@
|
|||||||
** LAYER DEFINITIONS **
|
** LAYER DEFINITIONS **
|
||||||
**********************/
|
**********************/
|
||||||
enum layers_keymap {
|
enum layers_keymap {
|
||||||
// BASE LAYERS
|
// BASE LAYERS
|
||||||
_QWERTY = 0,
|
_QWERTY = 0,
|
||||||
_DVORAK,
|
_DVORAK,
|
||||||
_COLEMAK,
|
_COLEMAK,
|
||||||
_MAC,
|
_MAC,
|
||||||
_QUAKE2,
|
_QUAKE2,
|
||||||
_QUAKE2_DVORAK,
|
_QUAKE2_DVORAK,
|
||||||
_QUAKE2_CONSOLE,
|
_QUAKE2_CONSOLE,
|
||||||
|
|
||||||
// FUNCTION LAYERS
|
// FUNCTION LAYERS
|
||||||
_FUNCWIN,
|
_FUNCWIN,
|
||||||
_FUNCMAC,
|
_FUNCMAC,
|
||||||
_FUNCQ2,
|
_FUNCQ2,
|
||||||
|
|
||||||
// OTHER LAYERS
|
// OTHER LAYERS
|
||||||
_NUMPAD,
|
_NUMPAD,
|
||||||
_MACROS,
|
_MACROS,
|
||||||
_SYSTEM
|
_SYSTEM
|
||||||
};
|
};
|
||||||
|
|
||||||
// LAYER SHORT CODES
|
// LAYER SHORT CODES
|
||||||
@ -70,24 +70,24 @@ enum layers_keymap {
|
|||||||
|
|
||||||
// MACRO DEFINITIONS
|
// MACRO DEFINITIONS
|
||||||
enum custom_keycodes {
|
enum custom_keycodes {
|
||||||
F_CAPS = SAFE_RANGE,
|
F_CAPS = SAFE_RANGE,
|
||||||
T_L3DED,
|
T_L3DED,
|
||||||
G_PUSH,
|
G_PUSH,
|
||||||
G_FTCH,
|
G_FTCH,
|
||||||
G_COMM,
|
G_COMM,
|
||||||
G_RST,
|
G_RST,
|
||||||
G_C10R,
|
G_C10R,
|
||||||
G_BRCH,
|
G_BRCH,
|
||||||
SIGNA,
|
SIGNA,
|
||||||
GO_Q2,
|
GO_Q2,
|
||||||
Q2_ON,
|
Q2_ON,
|
||||||
Q2_OFF,
|
Q2_OFF,
|
||||||
Q2_ESC,
|
Q2_ESC,
|
||||||
Q2_GRV,
|
Q2_GRV,
|
||||||
MC_UNDO,
|
MC_UNDO,
|
||||||
MC_PSTE,
|
MC_PSTE,
|
||||||
NUBS_Z,
|
NUBS_Z,
|
||||||
VRSN
|
VRSN
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -98,293 +98,314 @@ enum custom_keycodes {
|
|||||||
|
|
||||||
|
|
||||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
switch(keycode) {
|
switch(keycode) {
|
||||||
// these are our macros!
|
// these are our macros!
|
||||||
case F_CAPS:
|
case F_CAPS:
|
||||||
/*
|
/*
|
||||||
Objective: write a macro that checks the current layers that are
|
* Objective: write a macro that checks the current layers that are
|
||||||
enabled, and activates the appropriate function layer.
|
* enabled, and activates the appropriate function layer.
|
||||||
*/
|
*/
|
||||||
if ( biton32(layer_state) == _MAC ) {
|
if ( biton32(layer_state) == _MAC ) {
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
layer_on(_FUNCMAC);
|
layer_on(_FUNCMAC);
|
||||||
} else {
|
} else {
|
||||||
layer_off(_FUNCMAC);
|
layer_off(_FUNCMAC);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
layer_on(_FUNCWIN);
|
layer_on(_FUNCWIN);
|
||||||
} else {
|
} else {
|
||||||
layer_off(_FUNCWIN);
|
layer_off(_FUNCWIN);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return false;
|
return false;
|
||||||
case T_L3DED:
|
case T_L3DED:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
SEND_STRING("lavak3DED ");
|
SEND_STRING("lavak3DED ");
|
||||||
};
|
};
|
||||||
return false;
|
return false;
|
||||||
case G_PUSH:
|
case G_PUSH:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
SEND_STRING("git push origin ");
|
SEND_STRING("git push origin ");
|
||||||
};
|
};
|
||||||
return false;
|
return false;
|
||||||
case G_FTCH:
|
case G_FTCH:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
if ( get_mods() & MOD_MASK_SHIFT ) {
|
if ( get_mods() & MOD_MASK_SHIFT ) {
|
||||||
clear_mods();
|
clear_mods();
|
||||||
SEND_STRING("git pull upstream ");
|
SEND_STRING("git pull upstream ");
|
||||||
} else {
|
} else {
|
||||||
SEND_STRING("git fetch upstream ");
|
SEND_STRING("git fetch upstream ");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return false;
|
return false;
|
||||||
case G_COMM:
|
case G_COMM:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
SEND_STRING("git commit -m \"\"" SS_TAP(X_LEFT));
|
SEND_STRING("git commit -m \"\"" SS_TAP(X_LEFT));
|
||||||
layer_off(_MACROS);
|
layer_off(_MACROS);
|
||||||
};
|
};
|
||||||
return false;
|
return false;
|
||||||
case G_BRCH:
|
case G_BRCH:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
if ( get_mods() & MOD_MASK_SHIFT ) {
|
if ( get_mods() & MOD_MASK_SHIFT ) {
|
||||||
clear_mods();
|
clear_mods();
|
||||||
SEND_STRING("master");
|
SEND_STRING("master");
|
||||||
} else {
|
} else {
|
||||||
SEND_STRING("$(git branch-name)");
|
SEND_STRING("$(git branch-name)");
|
||||||
}
|
}
|
||||||
layer_off(_MACROS);
|
layer_off(_MACROS);
|
||||||
};
|
};
|
||||||
return false;
|
return false;
|
||||||
case SIGNA:
|
case SIGNA:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
SEND_STRING("\\- @noroadsleft" SS_TAP(X_ENTER));
|
SEND_STRING("\\- @noroadsleft" SS_TAP(X_ENTER));
|
||||||
layer_off(_MACROS);
|
layer_off(_MACROS);
|
||||||
};
|
};
|
||||||
return false;
|
return false;
|
||||||
case GO_Q2:
|
case GO_Q2:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
//default_layer_set(_QWERTY);
|
//default_layer_set(_QWERTY);
|
||||||
layer_move(_QWERTY); // TO(_QWERTY);
|
layer_move(_QWERTY); // TO(_QWERTY);
|
||||||
layer_on(_QUAKE2);
|
layer_on(_QUAKE2);
|
||||||
//layer_off(_SYSTEM);
|
//layer_off(_SYSTEM);
|
||||||
};
|
};
|
||||||
return false;
|
return false;
|
||||||
case Q2_ON:
|
case Q2_ON:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
SEND_STRING(SS_TAP(X_ENTER));
|
SEND_STRING(SS_TAP(X_ENTER));
|
||||||
layer_on(_DVORAK);
|
layer_on(_DVORAK);
|
||||||
layer_on(_QUAKE2_DVORAK);
|
layer_on(_QUAKE2_DVORAK);
|
||||||
};
|
};
|
||||||
return false;
|
return false;
|
||||||
case Q2_OFF:
|
case Q2_OFF:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
SEND_STRING(SS_TAP(X_ENTER));
|
SEND_STRING(SS_TAP(X_ENTER));
|
||||||
layer_move(_QWERTY); // TO(_QWERTY);
|
layer_move(_QWERTY); // TO(_QWERTY);
|
||||||
layer_on(_QUAKE2);
|
layer_on(_QUAKE2);
|
||||||
};
|
};
|
||||||
return false;
|
return false;
|
||||||
case Q2_ESC:
|
case Q2_ESC:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
SEND_STRING(SS_TAP(X_ESCAPE));
|
SEND_STRING(SS_TAP(X_ESCAPE));
|
||||||
layer_move(_QWERTY); // TO(_QWERTY);
|
layer_move(_QWERTY); // TO(_QWERTY);
|
||||||
layer_on(_QUAKE2);
|
layer_on(_QUAKE2);
|
||||||
};
|
};
|
||||||
return false;
|
return false;
|
||||||
case Q2_GRV:
|
case Q2_GRV:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
SEND_STRING(SS_TAP(X_GRAVE));
|
SEND_STRING(SS_TAP(X_GRAVE));
|
||||||
layer_on(_DVORAK);
|
layer_on(_DVORAK);
|
||||||
layer_on(_QUAKE2_DVORAK);
|
layer_on(_QUAKE2_DVORAK);
|
||||||
layer_on(_QUAKE2_CONSOLE);
|
layer_on(_QUAKE2_CONSOLE);
|
||||||
};
|
};
|
||||||
return false;
|
return false;
|
||||||
case MC_UNDO:
|
case MC_UNDO:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
if ( get_mods() & MOD_MASK_SHIFT ) {
|
if ( get_mods() & MOD_MASK_SHIFT ) {
|
||||||
SEND_STRING( SS_DOWN(X_LSHIFT) SS_DOWN(X_LGUI) SS_TAP(X_Z) SS_UP(X_LGUI) SS_UP(X_LSHIFT) );
|
SEND_STRING( SS_DOWN(X_LSHIFT) SS_DOWN(X_LGUI) SS_TAP(X_Z) SS_UP(X_LGUI) SS_UP(X_LSHIFT) );
|
||||||
} else {
|
} else {
|
||||||
SEND_STRING( SS_DOWN(X_LGUI) SS_TAP(X_Z) SS_UP(X_LGUI) );
|
SEND_STRING( SS_DOWN(X_LGUI) SS_TAP(X_Z) SS_UP(X_LGUI) );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return false;
|
return false;
|
||||||
case MC_PSTE:
|
case MC_PSTE:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
if ( get_mods() & MOD_MASK_SHIFT ) {
|
if ( get_mods() & MOD_MASK_SHIFT ) {
|
||||||
SEND_STRING( SS_DOWN(X_LSHIFT) SS_DOWN(X_LGUI) SS_DOWN(X_LALT) SS_TAP(X_V) SS_UP(X_LALT) SS_UP(X_LGUI) SS_UP(X_LSHIFT) );
|
SEND_STRING( SS_DOWN(X_LSHIFT) SS_DOWN(X_LGUI) SS_DOWN(X_LALT) SS_TAP(X_V) SS_UP(X_LALT) SS_UP(X_LGUI) SS_UP(X_LSHIFT) );
|
||||||
} else {
|
} else {
|
||||||
SEND_STRING( SS_DOWN(X_LGUI) SS_TAP(X_V) SS_UP(X_LGUI) );
|
SEND_STRING( SS_DOWN(X_LGUI) SS_TAP(X_V) SS_UP(X_LGUI) );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return false;
|
return false;
|
||||||
case NUBS_Z:
|
case NUBS_Z:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
if ( get_mods() & MOD_MASK_RALT ) {
|
if ( get_mods() & MOD_MASK_RALT ) {
|
||||||
SEND_STRING( SS_TAP(X_NONUS_BSLASH) );
|
SEND_STRING( SS_DOWN(X_NONUS_BSLASH) );
|
||||||
} else {
|
} else {
|
||||||
SEND_STRING( SS_TAP(X_Z) );
|
SEND_STRING( SS_DOWN(X_Z) );
|
||||||
}
|
}
|
||||||
};
|
} else {
|
||||||
return false;
|
if ( get_mods() & MOD_MASK_RALT ) {
|
||||||
case VRSN:
|
SEND_STRING( SS_UP(X_NONUS_BSLASH) );
|
||||||
if (record->event.pressed) {
|
} else {
|
||||||
SEND_STRING( QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION );
|
SEND_STRING( SS_UP(X_Z) );
|
||||||
}
|
}
|
||||||
return false;
|
};
|
||||||
} // switch()
|
return false;
|
||||||
return true;
|
case VRSN:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
SEND_STRING( QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION );
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case KC_1 ... KC_0:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if ( get_mods() & MOD_MASK_RALT ) {
|
||||||
|
register_code( keycode + 0x3b );
|
||||||
|
} else {
|
||||||
|
register_code( keycode );
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if ( get_mods() & MOD_MASK_RALT ) {
|
||||||
|
unregister_code( keycode + 0x3b );
|
||||||
|
} else {
|
||||||
|
unregister_code( keycode );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
} // switch()
|
||||||
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// KEYMAPS
|
// KEYMAPS
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
/****************
|
/****************
|
||||||
** BASE LAYERS **
|
** BASE LAYERS **
|
||||||
****************/
|
****************/
|
||||||
|
|
||||||
/* QWERTY */
|
/* QWERTY */
|
||||||
[_QWERTY] = LAYOUT_60_ansi(
|
[_QWERTY] = LAYOUT_60_ansi(
|
||||||
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
|
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
|
||||||
FW_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
|
FW_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
|
||||||
KC_LSFT, NUBS_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
|
KC_LSFT, NUBS_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
|
||||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FW), KC_RCTL \
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FW), KC_RCTL \
|
||||||
),
|
),
|
||||||
|
|
||||||
/* Dvorak */
|
/* Dvorak */
|
||||||
[_DVORAK] = LAYOUT_60_ansi(
|
[_DVORAK] = LAYOUT_60_ansi(
|
||||||
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, \
|
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, \
|
||||||
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, \
|
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, \
|
||||||
FW_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, \
|
FW_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, \
|
||||||
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, \
|
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, \
|
||||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FW), KC_RCTL \
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FW), KC_RCTL \
|
||||||
),
|
),
|
||||||
|
|
||||||
/* Colemak */
|
/* Colemak */
|
||||||
[_COLEMAK] = LAYOUT_60_ansi(
|
[_COLEMAK] = LAYOUT_60_ansi(
|
||||||
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
|
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
|
||||||
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, \
|
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, \
|
||||||
FW_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, \
|
FW_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, \
|
||||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
|
||||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FW), KC_RCTL \
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FW), KC_RCTL \
|
||||||
),
|
),
|
||||||
|
|
||||||
/****************
|
/****************
|
||||||
** OS OVERLAYS **
|
** OS OVERLAYS **
|
||||||
****************/
|
****************/
|
||||||
|
|
||||||
/* Mac */
|
/* Mac */
|
||||||
[_MAC] = LAYOUT_60_ansi(
|
[_MAC] = LAYOUT_60_ansi(
|
||||||
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||||
FM_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
FM_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||||
_______, _______, _______, _______, _______, _______, MO(_FM), _______ \
|
_______, _______, _______, _______, _______, _______, MO(_FM), _______ \
|
||||||
),
|
),
|
||||||
|
|
||||||
/*********************
|
/*********************
|
||||||
** QUAKE 2 OVERLAYS **
|
** QUAKE 2 OVERLAYS **
|
||||||
*********************/
|
*********************/
|
||||||
|
|
||||||
/* Quake 2 */
|
/* Quake 2 */
|
||||||
[_QUAKE2] = LAYOUT_60_ansi(
|
[_QUAKE2] = LAYOUT_60_ansi(
|
||||||
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||||
Q2_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, Q2_ON, \
|
Q2_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, Q2_ON, \
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||||
_______, _______, _______, _______, _______, _______, MO(_FQ), _______ \
|
_______, _______, _______, _______, _______, _______, MO(_FQ), _______ \
|
||||||
),
|
),
|
||||||
|
|
||||||
[_QUAKE2_DVORAK] = LAYOUT_60_ansi(
|
[_QUAKE2_DVORAK] = LAYOUT_60_ansi(
|
||||||
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||||
Q2_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
Q2_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||||
Q2_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, Q2_OFF, \
|
Q2_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, Q2_OFF, \
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||||
_______, _______, _______, _______, _______, _______, MO(_FQ), _______ \
|
_______, _______, _______, _______, _______, _______, MO(_FQ), _______ \
|
||||||
),
|
),
|
||||||
|
|
||||||
[_QUAKE2_CONSOLE] = LAYOUT_60_ansi(
|
[_QUAKE2_CONSOLE] = LAYOUT_60_ansi(
|
||||||
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||||
Q2_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
Q2_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||||
Q2_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ENT, \
|
Q2_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ENT, \
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||||
_______, _______, _______, _______, _______, _______, MO(_FQ), _______ \
|
_______, _______, _______, _______, _______, _______, MO(_FQ), _______ \
|
||||||
),
|
),
|
||||||
|
|
||||||
/********************
|
/********************
|
||||||
** FUNCTION LAYERS **
|
** FUNCTION LAYERS **
|
||||||
********************/
|
********************/
|
||||||
|
|
||||||
/* Windows Fn layer */
|
/* Windows Fn layer */
|
||||||
[_FUNCWIN] = LAYOUT_60_ansi(
|
[_FUNCWIN] = LAYOUT_60_ansi(
|
||||||
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \
|
||||||
_______, KC_CALC, KC_APP, _______, _______, _______, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PSCR, KC_SLCK, KC_PAUS, \
|
_______, KC_CALC, KC_APP, _______, _______, _______, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PSCR, KC_SLCK, KC_PAUS, \
|
||||||
NO_CHNG, WN_SALL, _______, _______, _______, _______, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, KC_PENT, \
|
NO_CHNG, WN_SALL, _______, _______, _______, _______, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, KC_PENT, \
|
||||||
_______, WN_UNDO, WN_CUT, WN_COPY, WN_PSTE, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, TG(_SY), _______, \
|
_______, WN_UNDO, WN_CUT, WN_COPY, WN_PSTE, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, TG(_SY), _______, \
|
||||||
_______, _______, _______, TG(_NP), _______, TG(_MA), NO_CHNG, _______ \
|
_______, _______, _______, TG(_NP), _______, TG(_MA), NO_CHNG, _______ \
|
||||||
),
|
),
|
||||||
|
|
||||||
/* MacOS Fn layer */
|
/* MacOS Fn layer */
|
||||||
[_FUNCMAC] = LAYOUT_60_ansi(
|
[_FUNCMAC] = LAYOUT_60_ansi(
|
||||||
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \
|
||||||
_______, _______, _______, _______, _______, _______, KC_INS, MC_HOME, KC_UP, MC_END, KC_PGUP, MC_PSCR, _______, _______, \
|
_______, _______, _______, _______, _______, _______, KC_INS, MC_HOME, KC_UP, MC_END, KC_PGUP, MC_PSCR, _______, _______, \
|
||||||
NO_CHNG, MC_SALL, _______, _______, _______, _______, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, \
|
NO_CHNG, MC_SALL, _______, _______, _______, _______, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, \
|
||||||
_______, MC_UNDO, MC_CUT, MC_COPY, MC_PSTE, _______, _______, _______, _______, _______, TG(_SY), _______, \
|
_______, MC_UNDO, MC_CUT, MC_COPY, MC_PSTE, _______, _______, _______, _______, _______, TG(_SY), _______, \
|
||||||
_______, _______, _______, TG(_NP), _______, _______, NO_CHNG, _______ \
|
_______, _______, _______, TG(_NP), _______, _______, NO_CHNG, _______ \
|
||||||
),
|
),
|
||||||
|
|
||||||
/* Quake 2 Fn layer */
|
/* Quake 2 Fn layer */
|
||||||
[_FUNCQ2] = LAYOUT_60_ansi(
|
[_FUNCQ2] = LAYOUT_60_ansi(
|
||||||
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||||
Q2_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \
|
Q2_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \
|
||||||
_______, _______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PSCR, KC_SLCK, KC_PAUS, \
|
_______, _______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PSCR, KC_SLCK, KC_PAUS, \
|
||||||
NO_CHNG, _______, _______, _______, _______, _______, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, KC_ENT, \
|
NO_CHNG, _______, _______, _______, _______, _______, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, KC_ENT, \
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TG(_SY), _______, \
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TG(_SY), _______, \
|
||||||
_______, _______, _______, _______, _______, _______, NO_CHNG, _______ \
|
_______, _______, _______, _______, _______, _______, NO_CHNG, _______ \
|
||||||
),
|
),
|
||||||
|
|
||||||
/*****************
|
/*****************
|
||||||
** OTHER LAYERS **
|
** OTHER LAYERS **
|
||||||
*****************/
|
*****************/
|
||||||
|
|
||||||
/* Numpad layer */
|
/* Numpad layer */
|
||||||
[_NUMPAD] = LAYOUT_60_ansi(
|
[_NUMPAD] = LAYOUT_60_ansi(
|
||||||
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||||
_______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, _______, _______, \
|
_______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, _______, _______, \
|
||||||
_______, _______, _______, _______, KC_E, KC_F, _______, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PSLS, KC_PEQL, _______, \
|
_______, _______, _______, _______, KC_E, KC_F, _______, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PSLS, KC_PEQL, _______, \
|
||||||
_______, _______, _______, _______, KC_C, KC_D, _______, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_PMNS, KC_PENT, \
|
_______, _______, _______, _______, KC_C, KC_D, _______, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_PMNS, KC_PENT, \
|
||||||
_______, _______, _______, _______, KC_A, KC_B, _______, KC_P0, _______, KC_PDOT, _______, _______, \
|
_______, _______, _______, _______, KC_A, KC_B, _______, KC_P0, _______, KC_PDOT, _______, _______, \
|
||||||
_______, _______, _______, TG(_NP), _______, _______, NO_CHNG, _______ \
|
_______, _______, _______, TG(_NP), _______, _______, NO_CHNG, _______ \
|
||||||
),
|
),
|
||||||
|
|
||||||
/* Macro layer */
|
/* Macro layer */
|
||||||
[_MACROS] = LAYOUT_60_ansi(
|
[_MACROS] = LAYOUT_60_ansi(
|
||||||
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||||
TG(_MA), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
TG(_MA), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||||
_______, _______, _______, G_PUSH, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
_______, _______, _______, G_PUSH, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||||
_______, _______, _______, G_FTCH, G_COMM, _______, _______, _______, _______, T_L3DED, _______, _______, _______, \
|
_______, _______, _______, G_FTCH, G_COMM, _______, _______, _______, _______, T_L3DED, _______, _______, _______, \
|
||||||
_______, _______, _______, _______, _______, G_BRCH, SIGNA, _______, _______, _______, _______, _______, \
|
_______, _______, _______, _______, _______, G_BRCH, SIGNA, _______, _______, _______, _______, _______, \
|
||||||
_______, _______, _______, _______, _______, _______, NO_CHNG, _______ \
|
_______, _______, _______, _______, _______, _______, NO_CHNG, _______ \
|
||||||
),
|
),
|
||||||
|
|
||||||
/* System layer */
|
/* System layer */
|
||||||
[_SYSTEM] = LAYOUT_60_ansi(
|
[_SYSTEM] = LAYOUT_60_ansi(
|
||||||
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
// 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||||
TG(_SY), TO(_QW), TO(_DV), TO(_CM), GO_Q2, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, DEBUG, XXXXXXX, VRSN, XXXXXXX, \
|
TG(_SY), TO(_QW), TO(_DV), TO(_CM), GO_Q2, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, DEBUG, XXXXXXX, VRSN, XXXXXXX, \
|
||||||
XXXXXXX, XXXXXXX, TG(_MC), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
XXXXXXX, XXXXXXX, TG(_MC), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, BL_TOGG, BL_INC, BL_BRTG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, BL_TOGG, BL_INC, BL_BRTG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, NO_CHNG, XXXXXXX \
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, NO_CHNG, XXXXXXX \
|
||||||
),
|
),
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# @noroadsleft's KC60 keymap
|
# @noroadsleft's KC60 keymap
|
||||||
|
|
||||||
### Last updated: February 14, 2019, 3:50 AM UTC-0800
|
### Last updated: April 7, 2019, 2:26 AM UTC-0700
|
||||||
|
|
||||||
![](https://i.imgur.com/tzhXQYI.jpg)
|
![](https://i.imgur.com/tzhXQYI.jpg)
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
These layers were born out of the confusion I have had trying to use the in-game chat and the console in [Quake 2](https://en.wikipedia.org/wiki/Quake_II). When Quake 2 came out, alternate keyboard layouts weren't really a thing. As a result, all in-game text input is hard-locked to US QWERTY, regardless of what the operating system is using for its input method.
|
These layers were born out of the confusion I have had trying to use the in-game chat and the console in [Quake 2](https://en.wikipedia.org/wiki/Quake_II). When Quake 2 came out, alternate keyboard layouts weren't really a thing. As a result, all in-game text input is hard-locked to US QWERTY, regardless of what the operating system is using for its input method.
|
||||||
|
|
||||||
I'm attempting to solve this by some creative use of QMK's macro feature. The keycode in the System layer that enables these layers, [`GO_Q2`](./keymap.c#L383), is a [macro](./keymap.c#L165-172) that sets the default layer to the QWERTY layer, then turns the Quake 2 layer `_Q2` on. The result is a partially-overwritten QWERTY layer, that has some keycodes with some creative layer switching.
|
I'm attempting to solve this by some creative use of QMK's macro feature. The keycode in the System layer that enables these layers, [`GO_Q2`](./keymap.c#L404), is a [macro](./keymap.c#L165-L172) that sets the default layer to the QWERTY layer, then turns the Quake 2 layer `_Q2` on. The result is a partially-overwritten QWERTY layer, that has some keycodes with some creative layer switching.
|
||||||
|
|
||||||
When I hit the `Enter` key (bound in-game to text chat), the [macro keycode](./keymap.c#L173-L179) I've created sends the keycode for `Enter`, then follows with enabling the Hardware Dvorak layer and its corresponding overlay. Now the game is in text chat mode, and my keyboard is in Dvorak. When I hit `Enter` again, another `Enter` [keycode macro](./keymap.c#L180-L186) is sent, which sends the message, then the macro brings me back to the standard QWERTY+Quake 2 setup. Hitting `Escape` instead runs a [macro](./keymap.c#L187-L193) that cancels the sending of the message, and undoes the layers.
|
When I hit the `Enter` key (bound in-game to text chat), the [macro keycode](./keymap.c#L173-L179) I've created sends the keycode for `Enter`, then follows with enabling the Hardware Dvorak layer and its corresponding overlay. Now the game is in text chat mode, and my keyboard is in Dvorak. When I hit `Enter` again, another `Enter` [keycode macro](./keymap.c#L180-L186) is sent, which sends the message, then the macro brings me back to the standard QWERTY+Quake 2 setup. Hitting `Escape` instead runs a [macro](./keymap.c#L187-L193) that cancels the sending of the message, and undoes the layers.
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ Output: `git commit -m ""` <kbd>Left</kbd>
|
|||||||
|
|
||||||
Readies a `git commit` command, moves the cursor between the quotation marks, then disables the Macro layer.
|
Readies a `git commit` command, moves the cursor between the quotation marks, then disables the Macro layer.
|
||||||
|
|
||||||
#### [G_BRCH](./keymap.c#L148-158)
|
#### [G_BRCH](./keymap.c#L148-L158)
|
||||||
|
|
||||||
| Condition | Output |
|
| Condition | Output |
|
||||||
| :-------- | :----- |
|
| :-------- | :----- |
|
||||||
@ -93,7 +93,7 @@ An Undo shortcut that turns to Redo if <kbd>Shift</kbd> is being held. I'm not s
|
|||||||
|
|
||||||
The program I use this in uses <kbd>Shift</kbd> + <kbd>Command</kbd> + <kbd>Option</kbd> + <kbd>V</kbd> to paste while maintaining formatting (typeface, text size, etc.). Sometimes I want this and sometimes I don't. Using <kbd>Shift</kbd> changes the behavior.
|
The program I use this in uses <kbd>Shift</kbd> + <kbd>Command</kbd> + <kbd>Option</kbd> + <kbd>V</kbd> to paste while maintaining formatting (typeface, text size, etc.). Sometimes I want this and sometimes I don't. Using <kbd>Shift</kbd> changes the behavior.
|
||||||
|
|
||||||
#### [NUBS_Z](./keymap.c#L220-L228)
|
#### [NUBS_Z](./keymap.c#L220-L234)
|
||||||
|
|
||||||
| Condition | Output |
|
| Condition | Output |
|
||||||
| :-------- | :----- |
|
| :-------- | :----- |
|
||||||
@ -102,11 +102,15 @@ The program I use this in uses <kbd>Shift</kbd> + <kbd>Command</kbd> + <kbd>Opti
|
|||||||
|
|
||||||
Sometimes I type in languages from countries that use ISO layout, but my keyboard is ANSI, so I have one key fewer. This macro simulates the Non-US Backslash key if I use Right Alt + Z.
|
Sometimes I type in languages from countries that use ISO layout, but my keyboard is ANSI, so I have one key fewer. This macro simulates the Non-US Backslash key if I use Right Alt + Z.
|
||||||
|
|
||||||
#### [VRSN](./keymap.c#L229-L233)
|
#### [VRSN](./keymap.c#L235-L239)
|
||||||
|
|
||||||
Outputs a string that tells me the Git commit from which my flashed firmware was built. Looks something like:
|
Outputs a string that tells me the Git commit from which my flashed firmware was built. Looks something like:
|
||||||
|
|
||||||
kc60/noroadsleft @ 0.6.240-20-ge91549-dirty
|
kc60/noroadsleft @ 0.6.326-6-gae6d7b-dirty
|
||||||
|
|
||||||
|
#### [Emulated Numeric Keypad](./keymap.c#L240-L254)
|
||||||
|
|
||||||
|
If I hold the Right Alt key, the number row (`KC_1` through `KC_0`) will output numpad keycodes instead of number row keycodes, enabling quicker access to characters like ™ and °.
|
||||||
|
|
||||||
----
|
----
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user