mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-10-31 13:22:31 +01:00 
			
		
		
		
	Update noroadsleft userspace and keymaps (2021-05-03) (#12796)
* Set Dvorak as the standard base layer * Remove unneeded includes * Remove custom handling for Quake 2 Have now rewritten my in-game configuration to use Dvorak mapping instead of QWERTY, which means I don't need any of this stuff. * Clean up comments in KC60 keymap
This commit is contained in:
		
							parent
							
								
									25c97e0019
								
							
						
					
					
						commit
						8ed1addd1e
					
				| @ -15,11 +15,10 @@ | ||||
|  */ | ||||
| 
 | ||||
| #include "noroadsleft.h" | ||||
| #include "sendstring_dvorak.h" | ||||
| 
 | ||||
| enum layer_names { | ||||
|     _QW, | ||||
|     _DV, | ||||
|     _QW, | ||||
|     _NP, | ||||
|     _FN, | ||||
|     _SY | ||||
| @ -30,14 +29,6 @@ enum layer_names { | ||||
| 
 | ||||
| const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
| 
 | ||||
|     [_QW] = LAYOUT_65_ansi( | ||||
|         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_HOME, | ||||
|         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_PGUP, | ||||
|         FN_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_PGDN, | ||||
|         KC_LSFT,          KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, KC_UP,   KC_END, | ||||
|         CTL_GRV, KC_LGUI, KC_LALT,                            KC_SPC,                    KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT | ||||
|     ), | ||||
| 
 | ||||
|     [_DV] = LAYOUT_65_ansi( | ||||
|         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_HOME, | ||||
|         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_PGUP, | ||||
| @ -46,6 +37,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
|         CTL_GRV, KC_LGUI, KC_LALT,                            KC_SPC,                    KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT | ||||
|     ), | ||||
| 
 | ||||
|     [_QW] = LAYOUT_65_ansi( | ||||
|         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_HOME, | ||||
|         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_PGUP, | ||||
|         FN_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_PGDN, | ||||
|         KC_LSFT,          KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, KC_UP,   KC_END, | ||||
|         CTL_GRV, KC_LGUI, KC_LALT,                            KC_SPC,                    KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT | ||||
|     ), | ||||
| 
 | ||||
|     [_NP] = LAYOUT_65_ansi( | ||||
|         _______, _______, _______, _______, _______, _______, _______, KC_P7,   KC_P8,   KC_P9,   _______, _______, _______, _______, _______, | ||||
|         _______, _______, _______, _______, KC_E,    KC_F,    _______, KC_P4,   KC_P5,   KC_P6,   KC_PAST, KC_PSLS, KC_PEQL, _______, _______, | ||||
| @ -63,7 +62,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
|     ), | ||||
| 
 | ||||
|     [_SY] = LAYOUT_65_ansi( | ||||
|         TG(_SY), TO(_QW), TO(_DV), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET,   XXXXXXX, DEBUG,   XXXXXXX, VRSN,    XXXXXXX, XXXXXXX, | ||||
|         TG(_SY), TO(_DV), TO(_QW), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET,   XXXXXXX, DEBUG,   XXXXXXX, VRSN,    XXXXXXX, XXXXXXX, | ||||
|         XXXXXXX, XXXXXXX, M_MDSWP, 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, | ||||
|  | ||||
| @ -15,8 +15,6 @@ | ||||
|  */ | ||||
| 
 | ||||
| #include "noroadsleft.h" | ||||
| //#include "version.h"
 | ||||
| #include "sendstring_dvorak.h" | ||||
| 
 | ||||
| #define LAYOUT_75_ansi_wkl( \ | ||||
|     K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ | ||||
| @ -35,20 +33,13 @@ | ||||
| } | ||||
| 
 | ||||
| enum layer_names { | ||||
|     _QW, | ||||
|     _DV, | ||||
|     _QW, | ||||
|     _Q2, | ||||
|     _FN, | ||||
|     _SY | ||||
| }; | ||||
| 
 | ||||
| enum custom_keycodes { | ||||
|     GO_Q2 = KEYMAP_SAFE_RANGE, | ||||
|     Q2_ENT | ||||
| }; | ||||
| 
 | ||||
| unsigned char q2InputMode = 0; | ||||
| 
 | ||||
| // Tap Dance declarations
 | ||||
| enum tap_dances { | ||||
|     LAG, | ||||
| @ -65,14 +56,6 @@ qk_tap_dance_action_t tap_dance_actions[] = { | ||||
| #define FN_CAPS LT(_FN,KC_CAPS) | ||||
| 
 | ||||
| const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
|     [_QW] = LAYOUT_75_ansi_wkl( | ||||
|         KC_ESC,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  _______, _______, MO(_SY), | ||||
|         KC_GRV,  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_HOME, | ||||
|         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_PGUP, | ||||
|         FN_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_PGDN, | ||||
|         KC_LSFT,          KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,          KC_RSFT, KC_UP,   KC_END, | ||||
|         KC_LCTL, TD(LAG),                                     KC_SPC,                                      TD(RAG), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT | ||||
|     ), | ||||
|     [_DV] = LAYOUT_75_ansi_wkl( | ||||
|         KC_ESC,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  _______, _______, MO(_SY), | ||||
|         KC_GRV,  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_HOME, | ||||
| @ -81,11 +64,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
|         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_UP,   KC_END, | ||||
|         KC_LCTL, TD(LAG),                                     KC_SPC,                                      TD(RAG), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT | ||||
|     ), | ||||
|     [_QW] = LAYOUT_75_ansi_wkl( | ||||
|         KC_ESC,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  _______, _______, MO(_SY), | ||||
|         KC_GRV,  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_HOME, | ||||
|         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_PGUP, | ||||
|         FN_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_PGDN, | ||||
|         KC_LSFT,          KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,          KC_RSFT, KC_UP,   KC_END, | ||||
|         KC_LCTL, TD(LAG),                                     KC_SPC,                                      TD(RAG), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT | ||||
|     ), | ||||
|     [_Q2] = LAYOUT_75_ansi_wkl( | ||||
|         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||||
|         KC_GRV,  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______, | ||||
|         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______, | ||||
|         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, | ||||
|         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          Q2_ENT,           _______, | ||||
|         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,          _______, | ||||
|         _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______, _______, | ||||
|         _______, KC_LALT,                                     _______,                                     KC_RALT, _______, _______, _______, _______ | ||||
|     ), | ||||
| @ -98,7 +89,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
|         _______, _______,                                     _______,                                     _______, _______, _______, _______, _______ | ||||
|     ), | ||||
|     [_SY] = LAYOUT_75_ansi_wkl( | ||||
|         _______, TO(_QW), TO(_DV), _______, GO_Q2,   _______, _______, _______, RESET,   EEP_RST, DEBUG,   _______, VRSN,    _______, _______, _______, | ||||
|         _______, TO(_DV), TO(_QW), _______, TG(_Q2), _______, _______, _______, RESET,   EEP_RST, DEBUG,   _______, VRSN,    _______, _______, _______, | ||||
|         _______, _______, M_MDSWP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          KC_DEL,  _______, | ||||
|         _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, | ||||
|         _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______,          _______,          _______, | ||||
| @ -111,62 +102,3 @@ bool led_update_user(led_t led_state) { | ||||
|     writePin(B2, !led_state.caps_lock); | ||||
|     return false; | ||||
| } | ||||
| 
 | ||||
| bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { | ||||
|     switch (keycode) { | ||||
|         case GO_Q2: | ||||
|             if (record->event.pressed) { | ||||
|                 layer_move(_QW); | ||||
|                 layer_on(_Q2); | ||||
|             }; | ||||
|             return false; | ||||
|         case Q2_ENT: | ||||
|             if (record->event.pressed) { | ||||
|                 if (q2InputMode == 0) { | ||||
|                     tap_code(KC_ENT); | ||||
|                     q2InputMode = 1; | ||||
|                     layer_on(_DV); | ||||
|                     //layer_on(_Q2);
 | ||||
|                 } else if (q2InputMode == 1) { | ||||
|                     tap_code(KC_ENT); | ||||
|                     q2InputMode = 0; | ||||
|                     layer_off(_DV); | ||||
|                 } else { | ||||
|                     tap_code(KC_ENT); | ||||
|                 } | ||||
|             }; | ||||
|             return false; | ||||
|         case KC_ESC: | ||||
|             if (record->event.pressed) { | ||||
|                 if (q2InputMode > 0) { | ||||
|                     tap_code(KC_ESC); | ||||
|                     q2InputMode = 0; | ||||
|                     layer_off(_DV); | ||||
|                 } else { | ||||
|                     tap_code(KC_ESC); | ||||
|                 } | ||||
|             }; | ||||
|             return false; | ||||
|         case KC_GRV: | ||||
|             if (IS_LAYER_ON(_Q2) == true) { | ||||
|                 if (record->event.pressed) { | ||||
|                     if (q2InputMode == 0) { | ||||
|                         tap_code(KC_GRV); | ||||
|                         q2InputMode = 2; | ||||
|                         layer_on(_DV); | ||||
|                     } else if (q2InputMode == 1) { | ||||
|                         tap_code(KC_GRV); | ||||
|                         q2InputMode = 2; | ||||
|                     } else { | ||||
|                         tap_code(KC_GRV); | ||||
|                         q2InputMode = 0; | ||||
|                         layer_off(_DV); | ||||
|                     } | ||||
|                     return false; | ||||
|                 } | ||||
|             }; | ||||
|             return true; | ||||
|         default: | ||||
|             return true; | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -15,27 +15,22 @@ | ||||
|  */ | ||||
| 
 | ||||
| #include "noroadsleft.h" | ||||
| #include "sendstring_dvorak.h" | ||||
| //#include "sendstring_colemak.h"
 | ||||
| #include "print.h" | ||||
| 
 | ||||
| 
 | ||||
| /**********************
 | ||||
| ** LAYER DEFINITIONS ** | ||||
| **********************/ | ||||
| // LAYER DEFINITIONS
 | ||||
| enum layer_names { | ||||
|     // BASE LAYERS
 | ||||
|     _QW,  // QWERTY
 | ||||
|     _DV,  // Dvorak
 | ||||
|     _CM,  // Colemak
 | ||||
|     _DV, | ||||
|     _QW, | ||||
|     _CM, | ||||
|     // QUAKE 2 OVERLAY
 | ||||
|     _Q2,  // Quake 2
 | ||||
|     _Q2, | ||||
|     // FUNCTION LAYER
 | ||||
|     _FN,  // Function
 | ||||
|     _FN, | ||||
|     // OTHER LAYERS
 | ||||
|     _NP,  // Numpad
 | ||||
|     _MA,  // Macros
 | ||||
|     _SY,  // System
 | ||||
|     _NP, | ||||
|     _MA, | ||||
|     _SY, | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| @ -44,97 +39,11 @@ enum layer_names { | ||||
| #define CTL_GRV MT(MOD_LCTL, KC_GRV)  // Left Control when held, Grave accent when tapped
 | ||||
| 
 | ||||
| 
 | ||||
| // MACRO DEFINITIONS
 | ||||
| enum custom_keycodes { | ||||
|     GO_Q2 = KEYMAP_SAFE_RANGE, | ||||
|     Q2_ENT | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| /*******************
 | ||||
| ** MODIFIER MASKS ** | ||||
| *******************/ | ||||
| unsigned char q2InputMode = 0; | ||||
| 
 | ||||
| 
 | ||||
| bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { | ||||
|     switch(keycode) { | ||||
|         // these are our macros!
 | ||||
|         case GO_Q2: | ||||
|             if (record->event.pressed) { | ||||
|                 //default_layer_set(_QW);
 | ||||
|                 layer_move(_QW); // TO(_QW);
 | ||||
|                 layer_on(_Q2); | ||||
|                 //layer_off(_SY);
 | ||||
|             }; | ||||
|             return false; | ||||
|         case Q2_ENT: | ||||
|             if (record->event.pressed) { | ||||
|                 if (q2InputMode == 0) { | ||||
|                     tap_code(KC_ENT); | ||||
|                     q2InputMode = 1; | ||||
|                     layer_on(_DV); | ||||
|                     //layer_on(_Q2);
 | ||||
|                 } else if (q2InputMode == 1) { | ||||
|                     tap_code(KC_ENT); | ||||
|                     q2InputMode = 0; | ||||
|                     layer_off(_DV); | ||||
|                 } else { | ||||
|                     tap_code(KC_ENT); | ||||
|                 } | ||||
|             }; | ||||
|             return false; | ||||
|         case KC_ESC: | ||||
|             if (record->event.pressed) { | ||||
|                 if (q2InputMode > 0) { | ||||
|                     tap_code(KC_ESC); | ||||
|                     q2InputMode = 0; | ||||
|                     layer_off(_DV); | ||||
|                 } else { | ||||
|                     tap_code(KC_ESC); | ||||
|                 } | ||||
|             }; | ||||
|             return false; | ||||
|         case KC_GRV: | ||||
|             if (IS_LAYER_ON(_Q2) == true) { | ||||
|                 if (record->event.pressed) { | ||||
|                     if (q2InputMode == 0) { | ||||
|                         tap_code(KC_GRV); | ||||
|                         q2InputMode = 2; | ||||
|                         layer_on(_DV); | ||||
|                     } else if (q2InputMode == 1) { | ||||
|                         tap_code(KC_GRV); | ||||
|                         q2InputMode = 2; | ||||
|                     } else { | ||||
|                         tap_code(KC_GRV); | ||||
|                         q2InputMode = 0; | ||||
|                         layer_off(_DV); | ||||
|                     } | ||||
|                 } | ||||
|             }; | ||||
|             return false; | ||||
|     } // switch()
 | ||||
|     return true; | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| // KEYMAPS
 | ||||
| const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
| 
 | ||||
|     /****************
 | ||||
|     ** BASE LAYERS ** | ||||
|     ****************/ | ||||
|     // BASE LAYERS
 | ||||
| 
 | ||||
|     /* QWERTY */ | ||||
|     [_QW] = LAYOUT_60_ansi( | ||||
|         KC_ESC,  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, | ||||
|         FN_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,          KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,          KC_RSFT, | ||||
|         CTL_GRV, KC_LGUI, KC_LALT,                            KC_SPC,                             KC_RALT, MO(_MA), MO(_FN), KC_RCTL | ||||
|     ), | ||||
| 
 | ||||
|     /* Dvorak */ | ||||
|     [_DV] = LAYOUT_60_ansi( | ||||
|         KC_ESC,  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, | ||||
| @ -143,7 +52,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
|         CTL_GRV, KC_LGUI, KC_LALT,                            KC_SPC,                             KC_RALT, MO(_MA), MO(_FN), KC_RCTL | ||||
|     ), | ||||
| 
 | ||||
|     /* Colemak */ | ||||
|     [_QW] = LAYOUT_60_ansi( | ||||
|         KC_ESC,  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, | ||||
|         FN_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,          KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,          KC_RSFT, | ||||
|         CTL_GRV, KC_LGUI, KC_LALT,                            KC_SPC,                             KC_RALT, MO(_MA), MO(_FN), KC_RCTL | ||||
|     ), | ||||
| 
 | ||||
|     [_CM] = LAYOUT_60_ansi( | ||||
|         KC_ESC,  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, | ||||
| @ -152,24 +68,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
|         CTL_GRV, KC_LGUI, KC_LALT,                            KC_SPC,                             KC_RALT, MO(_MA), MO(_FN), KC_RCTL | ||||
|     ), | ||||
| 
 | ||||
|     /*********************
 | ||||
|     ** QUAKE 2 OVERLAYS ** | ||||
|     *********************/ | ||||
|     // QUAKE 2 OVERLAYS
 | ||||
| 
 | ||||
|     /* Quake 2 */ | ||||
|     [_Q2] = LAYOUT_60_ansi( | ||||
|         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||||
|         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||||
|         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          Q2_ENT, | ||||
|         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, | ||||
|         _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, | ||||
|         KC_GRV,  _______, _______,                            _______,                            _______, _______, _______, _______ | ||||
|     ), | ||||
| 
 | ||||
|     /********************
 | ||||
|     ** FUNCTION LAYERS ** | ||||
|     ********************/ | ||||
|     // FUNCTION LAYER
 | ||||
| 
 | ||||
|     /* Fn layer */ | ||||
|     [_FN] = LAYOUT_60_ansi( | ||||
|         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, | ||||
| @ -178,11 +88,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
|         _______, _______, _______,                            TG(_NP),                            _______, _______, _______, _______ | ||||
|     ), | ||||
| 
 | ||||
|     /*****************
 | ||||
|     ** OTHER LAYERS ** | ||||
|     *****************/ | ||||
|     // OTHER LAYERS
 | ||||
| 
 | ||||
|     /* Numpad layer */ | ||||
|     [_NP] = LAYOUT_60_ansi( | ||||
|         _______, _______, _______, _______, _______, _______, _______, KC_P7,   KC_P8,   KC_P9,   _______, _______, _______, _______, | ||||
|         _______, _______, _______, _______, KC_E,    KC_F,    _______, KC_P4,   KC_P5,   KC_P6,   KC_PAST, KC_PSLS, KC_PEQL, _______, | ||||
| @ -191,7 +98,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
|         _______, _______, _______,                            TG(_NP),                            _______, _______, _______, _______ | ||||
|     ), | ||||
| 
 | ||||
|     /* Macro layer */ | ||||
|     [_MA] = LAYOUT_60_ansi( | ||||
|         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, DM_REC1, DM_REC2, _______, | ||||
|         _______, _______, _______, G_PUSH,  _______, _______, _______, _______, _______, _______, _______, DM_PLY1, DM_PLY2, DM_RSTP, | ||||
| @ -200,9 +106,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
|         _______, _______, _______,                            _______,                            _______, _______, _______, _______ | ||||
|     ), | ||||
| 
 | ||||
|     /* System layer */ | ||||
|     [_SY] = LAYOUT_60_ansi( | ||||
|         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), TG(_Q2), XXXXXXX, XXXXXXX, XXXXXXX, RESET,   XXXXXXX, DEBUG,   XXXXXXX, VRSN,    XXXXXXX, | ||||
|         XXXXXXX, XXXXXXX, M_MDSWP, 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, | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| # @noroadsleft's KC60 keymap | ||||
| 
 | ||||
| ### Last updated: April 26, 2021 13:33 (-0700) | ||||
| ### Last updated: May 3, 2021 16:42 (-0700) | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| @ -24,9 +24,9 @@ Descriptions of the physical locations of keys will use the key's function in a | ||||
| ## Outline | ||||
| 
 | ||||
| - [Base Layers](#base-layers) | ||||
|   - Layer 0: QWERTY `_QW` | ||||
|   - Layer 1: Hardware Dvorak `_DV` | ||||
|   - Layer 2: Hardware Colemak `_CM` | ||||
|   - Layer 0: Dvorak `_DV` | ||||
|   - Layer 1: QWERTY `_QW` | ||||
|   - Layer 2: Colemak `_CM` | ||||
| - [Quake 2 Layer](#quake-2-layer) | ||||
|   - Layer 3: Quake 2 `_Q2` | ||||
| - [Function Layer](#function-layer) | ||||
| @ -41,38 +41,36 @@ Descriptions of the physical locations of keys will use the key's function in a | ||||
| 
 | ||||
| ## Base Layers | ||||
| 
 | ||||
| ### Layer 0: QWERTY - `_QW` | ||||
| My base layers are pretty standard for a 60%, with the following changes: | ||||
| 
 | ||||
| Standard QWERTY layout, with four QMK features: | ||||
| 
 | ||||
| - The `Menu` key has been replaced by `MO(_FW)`, which moves to my Windows Fn layer when held. | ||||
| - The `Menu` key has been replaced by `MO(_FN)`, which moves to my Function layer when held. | ||||
| - The Right `GUI` key has been replaced with a `MO(_MA)` key, which moves to the Macro layer when held. | ||||
| - The `Caps Lock` key has been replaced with a dual function `LT()` key, which opens the Windows Fn layer when held, and is `Caps Lock` when tapped | ||||
| - The Left `Control` key has been replaced with a `MT(MOD_CTRL, KC_GRV)` key, which is <code>` ~</code> when tapped and `Ctrl` when held. | ||||
| - The `Caps Lock` key has been replaced with a dual function `LT()` key, which opens the Function layer when held, and is `Caps Lock` when tapped. | ||||
| - The Left `Control` key has been replaced with a `MT(MOD_CTRL, KC_GRV)` key, which is `Ctrl` when held and <code>` ~</code> when tapped. | ||||
| 
 | ||||
|  | ||||
| ### Layer 0: Dvorak - `_DV` | ||||
| 
 | ||||
| A hardware-based Dvorak Simplified layout. In this layer, I can leave the host system in QWERTY, plug my keyboard in, and still type in Dvorak. | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| 
 | ||||
| ---- | ||||
| 
 | ||||
| ### Layer 1: Hardware Dvorak - `_DV` | ||||
| ### Layer 1: QWERTY - `_QW` | ||||
| 
 | ||||
| - Accessed by holding either `Fn` and tapping `/?` key, then tapping `2@`. | ||||
| 
 | ||||
| A hardware-based Dvorak Simplified layout. At my weekend job, I use a shared computer that runs MacOS Sierra, in US QWERTY layout. In this layer, I can leave the system in QWERTY, plug my keyboard in, and still type in Dvorak. | ||||
| For when other people need to use my keyboard. :) | ||||
| 
 | ||||
|  | ||||
|  | ||||
| 
 | ||||
| 
 | ||||
| ---- | ||||
| 
 | ||||
| ### Layer 2: Hardware Colemak `_CM` | ||||
| 
 | ||||
| - Accessed by holding either `Fn` and tapping `/?` key, then tapping `3#`. | ||||
| 
 | ||||
| A hardware-based Colemak layout. Been thinking of trying it, so it's here. | ||||
| 
 | ||||
|  | ||||
|  | ||||
| 
 | ||||
| 
 | ||||
| ---- | ||||
| @ -83,11 +81,7 @@ A hardware-based Colemak layout. Been thinking of trying it, so it's here. | ||||
| 
 | ||||
| - Accessed by holding either `Fn` key and tapping the `/?` key, then tapping `4$` | ||||
| 
 | ||||
| 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 have solved this by writing a custom QMK macro. The keycode in the System layer that enables these layers, [`GO_Q2`](./keymap.c#L205), is a [macro](./keymap.c#L63-L70) 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 changes the dual-function Left Control/Grave key to a standard Left Control, and the Enter key into a special Enter key specific to Quake 2. | ||||
| 
 | ||||
| When I hit the `Enter` key (bound in-game to text chat), the [macro keycode](./keymap.c#L71-L86) I've created sends the keycode for `Enter`, then follows with flipping an internal boolean variable and enabling the Hardware Dvorak layer. Now the game is in text chat mode, and my keyboard is in Dvorak. When I hit `Enter` again, another `Enter` key is sent, which sends the message, then the macro flips the boolean back to false and disables the Hardware Dvorak layer, which brings me back to the standard QWERTY+Quake 2 setup. Hitting `Escape` instead runs a [macro](./keymap.c#L87-L97) that cancels the sending of the message, and undoes the layers. | ||||
| I used to have some macro craziness here. I've now switched to leaving my main system in QWERTY and having the Dvorak stuff happen on the keyboard, and setting my in-game key assignments to the Dvorak mapping (`.OEU` instead of `ESDF`). | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| @ -96,7 +90,7 @@ When I hit the `Enter` key (bound in-game to text chat), the [macro keycode](./k | ||||
| 
 | ||||
| ## Function Layer | ||||
| 
 | ||||
| ### Layer 4: Fn layer - `_FN` | ||||
| ### Layer 4: Function layer - `_FN` | ||||
| 
 | ||||
| - Accessed by holding either `Fn` key from any base layer | ||||
| 
 | ||||
| @ -118,8 +112,6 @@ Puts a Numpad on the right-hand side of the keyboard. A through F included for h | ||||
|  | ||||
| 
 | ||||
| 
 | ||||
| ---- | ||||
| 
 | ||||
| ### Layer 6: Macro layer - `_MA` | ||||
| 
 | ||||
| - Accessed by holding the right-side `Win` key | ||||
| @ -131,8 +123,6 @@ For macro documentation, see [my userspace readme](../../../../users/noroadsleft | ||||
|  | ||||
| 
 | ||||
| 
 | ||||
| ---- | ||||
| 
 | ||||
| ### Layer 7: System layer - `_SY` | ||||
| 
 | ||||
| - Accessed by holding either `Fn` key and tapping the `/?` key | ||||
|  | ||||
| @ -25,7 +25,7 @@ Some frequently used Git commands. | ||||
| | [`G_FTCH`](./noroadsleft.c#L43-L52) | `git fetch upstream `  | `git pull upstream `         | | ||||
| | [`G_BRCH`](./noroadsleft.c#L53-L62) | `master`               | `$(git branch-name)`         | | ||||
| 
 | ||||
| `$(git branch-name)` is an alias for `git rev-parse --abbrev-ref HEAD`, which normally return the name of the current branch. | ||||
| `$(git branch-name)` is an alias for `git rev-parse --abbrev-ref HEAD`, which normally returns the name of the current branch. | ||||
| 
 | ||||
| ### "Macro Mode" Macros and Customized Keycodes | ||||
| 
 | ||||
| @ -76,6 +76,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>. | ||||
| ## Footnotes | ||||
| 
 | ||||
| - 1: [^](#macro-mode-macros-and-customized-keycodes) The `M_MDSWP` keycode is used in my keymaps in the following locations: | ||||
|   - [KC60](../../keyboards/kc60/keymaps/noroadsleft/keymap.c#L206) | ||||
|   - [KBDfans KBD75 rev1](../../keyboards/kbdfans/kbd75/keymaps/noroadsleft/keymap.c#L102) | ||||
|   - [CoseyFannitutti Discipline](../../keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c#L67) | ||||
|   - [KC60](../../keyboards/kc60/keymaps/noroadsleft/keymap.c#L111) | ||||
|   - [KBDfans KBD75 rev1](../../keyboards/kbdfans/kbd75/keymaps/noroadsleft/keymap.c#L93) | ||||
|   - [CoseyFannitutti Discipline](../../keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c#L66) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 James Young
						James Young