Merge remote-tracking branch 'origin/master' into develop
This commit is contained in:
		
						commit
						084d0ae96e
					
				
					 5 changed files with 68 additions and 242 deletions
				
			
		| 
						 | 
				
			
			@ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue