forked from mirrors/qmk_userspace
		
	Merge pull request #300 from Twey/tweymap-momentary
Swap steno/media layers to allow using media keys in the Plover layer…
This commit is contained in:
		
				commit
				
					
						2c070163ff
					
				
			
		
					 1 changed files with 50 additions and 58 deletions
				
			
		| 
						 | 
					@ -5,8 +5,8 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define BASE 0 // default layer
 | 
					#define BASE 0 // default layer
 | 
				
			||||||
#define SYMB 1 // symbols
 | 
					#define SYMB 1 // symbols
 | 
				
			||||||
#define MDIA 2 // media keys
 | 
					#define STEN 2 // steno
 | 
				
			||||||
#define STEN 3 // steno
 | 
					#define MDIA 3 // media keys
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
					const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
| 
						 | 
					@ -17,19 +17,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
 * |--------+------+------+------+-------+-------------|           |-------+------+------+------+------+------+--------|
 | 
					 * |--------+------+------+------+-------+-------------|           |-------+------+------+------+------+------+--------|
 | 
				
			||||||
 * | Del    |   '  |   ,  |   .  |   P   |   Y  |  Esc |           | Caps  |   F  |   G  |   C  |   R  |   L  |   /    |
 | 
					 * | Del    |   '  |   ,  |   .  |   P   |   Y  |  Esc |           | Caps  |   F  |   G  |   C  |   R  |   L  |   /    |
 | 
				
			||||||
 * |--------+------+------+------+-------+------|      |           |       |------+------+------+------+------+--------|
 | 
					 * |--------+------+------+------+-------+------|      |           |       |------+------+------+------+------+--------|
 | 
				
			||||||
 * | BkSp   |   A  |   O  |   E  |   U   |   I  |------|           |-------|   D  |   H  |   T  |   N  |S / L2|- / Cmd |
 | 
					 * | BkSp   |   A  |   O  |   E  |   U   |   I  |------|           |-------|   D  |   H  |   T  |   N  |   S  |   -    |
 | 
				
			||||||
 * |--------+------+------+------+-------+------|  Tab |           | Enter |------+------+------+------+------+--------|
 | 
					 * |--------+------+------+------+-------+------|  Tab |           | Enter |------+------+------+------+------+--------|
 | 
				
			||||||
 * | LShift |   ;  |   Q  |   J  |   K   |   X  |      |           |       |   B  |   M  |   W  |   V  |   Z  | RShift |
 | 
					 * | LShift |   ;  |   Q  |   J  |   K   |   X  |      |           |       |   B  |   M  |   W  |   V  |   Z  | RShift |
 | 
				
			||||||
 * `--------+------+------+------+-------+-------------'           `--------------+------+------+------+------+--------'
 | 
					 * `--------+------+------+------+-------+-------------'           `--------------+------+------+------+------+--------'
 | 
				
			||||||
 *   |Grv/L1|  '"  |AltShf| Left | Right |                                        |  Up  | Down |   [  |   ]  | ~L1  |
 | 
					 *   |  L1  | NONE |  Grv | Left | Right |                                        |  Up  | Down |   [  |   ]  |  L1  |
 | 
				
			||||||
 *   `-----------------------------------'                                        `----------------------------------'
 | 
					 *   `-----------------------------------'                                        `----------------------------------'
 | 
				
			||||||
 *                                        ,-------------.         ,---------------.
 | 
					 *                                        ,--------------.         ,---------------.
 | 
				
			||||||
 *                                        | PgUp | PgDn |         | Home  |  End  |
 | 
					 *                                        |  PgUp | PgDn |         | Home  |  End  |
 | 
				
			||||||
 *                                 ,------|------|------|         |-------+-------+------.
 | 
					 *                                 ,------|-------|------|         |-------+-------+------.
 | 
				
			||||||
 *                                 |      |      | NONE |         | NONE  |       |      |
 | 
					 *                                 |      |       | NONE |         | AltGr |       |      |
 | 
				
			||||||
 *                                 | Alt  | NONE |------|         |-------| Space | Ctrl |
 | 
					 *                                 | Alt  | Enter |------|         |-------| Space | Ctrl |
 | 
				
			||||||
 *                                 |      |      | Supr |         | AltGr |       |      |
 | 
					 *                                 |      |       | Supr |         | ~MDIA |       |      |
 | 
				
			||||||
 *                                 `--------------------'         `----------------------'
 | 
					 *                                 `---------------------'         `----------------------'
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
 | 
					// If it accepts an argument (i.e, is a function), it doesn't need KC_.
 | 
				
			||||||
// Otherwise, it needs KC_*
 | 
					// Otherwise, it needs KC_*
 | 
				
			||||||
| 
						 | 
					@ -39,19 +39,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
        KC_DELT,        KC_QUOT,      KC_COMM,KC_DOT, KC_P,   KC_Y,   KC_ESC,
 | 
					        KC_DELT,        KC_QUOT,      KC_COMM,KC_DOT, KC_P,   KC_Y,   KC_ESC,
 | 
				
			||||||
        KC_BSPC,        KC_A,         KC_O,   KC_E,   KC_U,   KC_I,
 | 
					        KC_BSPC,        KC_A,         KC_O,   KC_E,   KC_U,   KC_I,
 | 
				
			||||||
        KC_LSFT,        KC_SCLN,      KC_Q,   KC_J,   KC_K,   KC_X,   KC_TAB,
 | 
					        KC_LSFT,        KC_SCLN,      KC_Q,   KC_J,   KC_K,   KC_X,   KC_TAB,
 | 
				
			||||||
        LT(SYMB,KC_GRV),KC_QUOT,      LALT(KC_LSFT),  KC_LEFT,KC_RGHT,
 | 
					        MO(SYMB),       KC_NO,        KC_GRV, KC_LEFT,KC_RGHT,
 | 
				
			||||||
                                                      KC_PGUP,KC_PGDN,
 | 
					                                                      KC_PGUP,KC_PGDN,
 | 
				
			||||||
                                                              KC_NO,
 | 
					                                                              KC_NO,
 | 
				
			||||||
                                              KC_LALT,KC_ENT ,KC_LGUI,
 | 
					                                              KC_LALT,KC_ENT ,KC_LGUI,
 | 
				
			||||||
        // right hand
 | 
					        // right hand
 | 
				
			||||||
             KC_NO,       KC_6,   KC_7,   KC_8,   KC_9,   KC_0,             KC_BSLS,
 | 
					             KC_NO,       KC_6,   KC_7,   KC_8,   KC_9,   KC_0,    KC_BSLS,
 | 
				
			||||||
             KC_CAPS,     KC_F,   KC_G,   KC_C,   KC_R,   KC_L,             KC_SLSH,
 | 
					             KC_CAPS,     KC_F,   KC_G,   KC_C,   KC_R,   KC_L,    KC_SLSH,
 | 
				
			||||||
                          KC_D,   KC_H,   KC_T,   KC_N,   LT(MDIA, KC_S),   GUI_T(KC_MINS),
 | 
					                          KC_D,   KC_H,   KC_T,   KC_N,   KC_S,    KC_MINS,
 | 
				
			||||||
             KC_ENT,      KC_B,   KC_M,   KC_W,   KC_V,   KC_Z   ,          KC_RSFT,
 | 
					             KC_ENT,      KC_B,   KC_M,   KC_W,   KC_V,   KC_Z   , KC_RSFT,
 | 
				
			||||||
                                  KC_UP,  KC_DOWN,KC_LBRC,KC_RBRC,          KC_FN1,
 | 
					                                  KC_UP,  KC_DOWN,KC_LBRC,KC_RBRC, MO(SYMB),
 | 
				
			||||||
             KC_HOME,KC_END,
 | 
					             KC_HOME,KC_END,
 | 
				
			||||||
             KC_NO,
 | 
					             KC_RALT,
 | 
				
			||||||
             KC_RALT,KC_SPC,KC_RCTL
 | 
					             KC_FN1,KC_SPC,KC_RCTL
 | 
				
			||||||
    ),
 | 
					    ),
 | 
				
			||||||
/* Keymap 1: Symbol Layer
 | 
					/* Keymap 1: Symbol Layer
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
| 
						 | 
					@ -95,7 +95,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
       KC_TRNS,
 | 
					       KC_TRNS,
 | 
				
			||||||
       KC_TRNS, KC_TRNS, KC_TRNS
 | 
					       KC_TRNS, KC_TRNS, KC_TRNS
 | 
				
			||||||
),
 | 
					),
 | 
				
			||||||
/* Keymap 2: Media and mouse keys
 | 
					
 | 
				
			||||||
 | 
					[STEN] = KEYMAP(  // layout: layer 2: Steno for Plover
 | 
				
			||||||
 | 
					        // left hand
 | 
				
			||||||
 | 
					        KC_NO,  KC_NO,  KC_NO,  KC_NO,   KC_NO,  KC_NO,   KC_TRNS,
 | 
				
			||||||
 | 
					        KC_NO,  PV_NUM, PV_NUM, PV_NUM,  PV_NUM, PV_NUM,  PV_STAR,
 | 
				
			||||||
 | 
					        KC_NO,  PV_LS,  PV_LT,  PV_LP,   PV_LH,  PV_STAR,
 | 
				
			||||||
 | 
					        KC_NO,  PV_LS,  PV_LK,  PV_LW,   PV_LR,  PV_STAR, PV_STAR,
 | 
				
			||||||
 | 
					        KC_NO,  KC_NO,  KC_NO,  KC_TRNS, KC_TRNS,
 | 
				
			||||||
 | 
					                                          KC_NO, KC_NO,
 | 
				
			||||||
 | 
					                                                 KC_NO,
 | 
				
			||||||
 | 
					                                   PV_A,  PV_O,  KC_NO,
 | 
				
			||||||
 | 
					        // right hand
 | 
				
			||||||
 | 
					          KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,
 | 
				
			||||||
 | 
					        PV_STAR,  PV_NUM,  PV_NUM,  PV_NUM,  PV_NUM,  PV_NUM,  PV_NUM,
 | 
				
			||||||
 | 
					                 PV_STAR,   PV_RF,   PV_RP,   PV_RL,   PV_RT,   PV_RD,
 | 
				
			||||||
 | 
					        PV_STAR, PV_STAR,   PV_RR,   PV_RB,   PV_RG,   PV_RS,   PV_RZ,
 | 
				
			||||||
 | 
					                          KC_TRNS, KC_TRNS,   KC_NO,   KC_NO,   KC_NO,
 | 
				
			||||||
 | 
					        KC_NO,  KC_NO,
 | 
				
			||||||
 | 
					        KC_NO,
 | 
				
			||||||
 | 
					        KC_FN1, PV_E,    PV_U
 | 
				
			||||||
 | 
					),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Keymap 3: Media and mouse keys
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * ,--------------------------------------------------.           ,--------------------------------------------------.
 | 
					 * ,--------------------------------------------------.           ,--------------------------------------------------.
 | 
				
			||||||
 * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
 | 
					 * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
 | 
				
			||||||
| 
						 | 
					@ -136,31 +158,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
       KC_TRNS,
 | 
					       KC_TRNS,
 | 
				
			||||||
       KC_TRNS, KC_TRNS, KC_WBAK
 | 
					       KC_TRNS, KC_TRNS, KC_WBAK
 | 
				
			||||||
),
 | 
					),
 | 
				
			||||||
 | 
					 | 
				
			||||||
[STEN] = KEYMAP(  // layout: layer 4: Steno for Plover
 | 
					 | 
				
			||||||
        // left hand
 | 
					 | 
				
			||||||
        KC_NO,  KC_NO,  KC_NO,  KC_NO,   KC_NO,  KC_NO,   KC_TRNS,
 | 
					 | 
				
			||||||
        KC_NO,  PV_NUM, PV_NUM, PV_NUM,  PV_NUM, PV_NUM,  PV_STAR,
 | 
					 | 
				
			||||||
        KC_NO,  PV_LS,  PV_LT,  PV_LP,   PV_LH,  PV_STAR,
 | 
					 | 
				
			||||||
        KC_NO,  PV_LS,  PV_LK,  PV_LW,   PV_LR,  PV_STAR, PV_STAR,
 | 
					 | 
				
			||||||
        KC_NO,  KC_NO,  KC_NO,  KC_TRNS, KC_TRNS,
 | 
					 | 
				
			||||||
                                          KC_NO, KC_NO,
 | 
					 | 
				
			||||||
                                                 KC_NO,
 | 
					 | 
				
			||||||
                                   PV_A,  PV_O,  KC_NO,
 | 
					 | 
				
			||||||
        // right hand
 | 
					 | 
				
			||||||
          KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,
 | 
					 | 
				
			||||||
        PV_STAR,  PV_NUM,  PV_NUM,  PV_NUM,  PV_NUM,  PV_NUM,  PV_NUM,
 | 
					 | 
				
			||||||
                 PV_STAR,   PV_RF,   PV_RP,   PV_RL,   PV_RT,   PV_RD,
 | 
					 | 
				
			||||||
        PV_STAR, PV_STAR,   PV_RR,   PV_RB,   PV_RG,   PV_RS,   PV_RZ,
 | 
					 | 
				
			||||||
                          KC_TRNS, KC_TRNS,   KC_NO,   KC_NO,   KC_NO,
 | 
					 | 
				
			||||||
        KC_NO, KC_NO,
 | 
					 | 
				
			||||||
        KC_NO,
 | 
					 | 
				
			||||||
        KC_NO, PV_E,    PV_U
 | 
					 | 
				
			||||||
),
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const uint16_t PROGMEM fn_actions[] = {
 | 
					const uint16_t PROGMEM fn_actions[] = {
 | 
				
			||||||
    [1] = ACTION_LAYER_TAP_TOGGLE(SYMB)                // FN1 - Momentary Layer 1 (Symbols)
 | 
					    [1] = ACTION_LAYER_TAP_TOGGLE(MDIA)                // FN1 - Momentary Layer 3 (Media)
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void toggle_steno(int pressed)
 | 
					void toggle_steno(int pressed)
 | 
				
			||||||
| 
						 | 
					@ -200,26 +201,17 @@ void matrix_init_user(void) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Runs constantly in the background, in a loop.
 | 
					// Runs constantly in the background, in a loop.
 | 
				
			||||||
void matrix_scan_user(void) {
 | 
					void matrix_scan_user(void) {
 | 
				
			||||||
    uint8_t layer = biton32(layer_state);
 | 
					    uint32_t layer0 = layer_state & (1UL << 0),
 | 
				
			||||||
 | 
					             layer1 = layer_state & (1UL << 1),
 | 
				
			||||||
 | 
					             layer2 = layer_state & (1UL << 2),
 | 
				
			||||||
 | 
					             layer3 = layer_state & (1UL << 3);    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ergodox_board_led_off();
 | 
					    ergodox_board_led_off();
 | 
				
			||||||
    ergodox_right_led_1_off();
 | 
					    ergodox_right_led_1_off();
 | 
				
			||||||
    ergodox_right_led_2_off();
 | 
					    ergodox_right_led_2_off();
 | 
				
			||||||
    ergodox_right_led_3_off();
 | 
					    ergodox_right_led_3_off();
 | 
				
			||||||
    switch (layer) {
 | 
					 | 
				
			||||||
      // TODO: Make this relevant to the ErgoDox EZ.
 | 
					 | 
				
			||||||
        case 1:
 | 
					 | 
				
			||||||
            ergodox_right_led_1_on();
 | 
					 | 
				
			||||||
            break;
 | 
					 | 
				
			||||||
        case 2:
 | 
					 | 
				
			||||||
            ergodox_right_led_2_on();
 | 
					 | 
				
			||||||
            break;
 | 
					 | 
				
			||||||
        case 3:
 | 
					 | 
				
			||||||
            ergodox_right_led_3_on();
 | 
					 | 
				
			||||||
            break;
 | 
					 | 
				
			||||||
        default:
 | 
					 | 
				
			||||||
            // none
 | 
					 | 
				
			||||||
            break;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (layer1) ergodox_right_led_1_on();
 | 
				
			||||||
 | 
					    if (layer2) ergodox_right_led_2_on();
 | 
				
			||||||
 | 
					    if (layer3) ergodox_right_led_3_on();
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue