Swap steno/media layers to allow using media keys in the Plover layer; display all active layers, not just the top; use only momentary modifiers
This commit is contained in:
		
							parent
							
								
									1ce6da2605
								
							
						
					
					
						commit
						1173dbd02f
					
				
					 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
	
	 James ‘Twey’ Kay
						James ‘Twey’ Kay