|  |  |  | @ -5,8 +5,8 @@ | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | #define BASE 0 // default layer
 | 
			
		
	
		
			
				
					|  |  |  |  | #define SYMB 1 // symbols
 | 
			
		
	
		
			
				
					|  |  |  |  | #define MDIA 2 // media keys
 | 
			
		
	
		
			
				
					|  |  |  |  | #define STEN 3 // steno
 | 
			
		
	
		
			
				
					|  |  |  |  | #define STEN 2 // steno
 | 
			
		
	
		
			
				
					|  |  |  |  | #define MDIA 3 // media keys
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 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  |   /    | | 
			
		
	
		
			
				
					|  |  |  |  |  * |--------+------+------+------+-------+------|      |           |       |------+------+------+------+------+--------| | 
			
		
	
		
			
				
					|  |  |  |  |  * | 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 |------+------+------+------+------+--------| | 
			
		
	
		
			
				
					|  |  |  |  |  * | 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  | | 
			
		
	
		
			
				
					|  |  |  |  |  *                                 ,------|------|------|         |-------+-------+------. | 
			
		
	
		
			
				
					|  |  |  |  |  *                                 |      |      | NONE |         | NONE  |       |      | | 
			
		
	
		
			
				
					|  |  |  |  |  *                                 | Alt  | NONE |------|         |-------| Space | Ctrl | | 
			
		
	
		
			
				
					|  |  |  |  |  *                                 |      |      | Supr |         | AltGr |       |      | | 
			
		
	
		
			
				
					|  |  |  |  |  *                                 `--------------------'         `----------------------' | 
			
		
	
		
			
				
					|  |  |  |  |  *                                        ,--------------.         ,---------------. | 
			
		
	
		
			
				
					|  |  |  |  |  *                                        |  PgUp | PgDn |         | Home  |  End  | | 
			
		
	
		
			
				
					|  |  |  |  |  *                                 ,------|-------|------|         |-------+-------+------. | 
			
		
	
		
			
				
					|  |  |  |  |  *                                 |      |       | NONE |         | AltGr |       |      | | 
			
		
	
		
			
				
					|  |  |  |  |  *                                 | Alt  | Enter |------|         |-------| Space | Ctrl | | 
			
		
	
		
			
				
					|  |  |  |  |  *                                 |      |       | Supr |         | ~MDIA |       |      | | 
			
		
	
		
			
				
					|  |  |  |  |  *                                 `---------------------'         `----------------------' | 
			
		
	
		
			
				
					|  |  |  |  |  */ | 
			
		
	
		
			
				
					|  |  |  |  | // If it accepts an argument (i.e, is a function), it doesn't need 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_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, | 
			
		
	
		
			
				
					|  |  |  |  |         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_NO, | 
			
		
	
		
			
				
					|  |  |  |  |                                               KC_LALT,KC_ENT ,KC_LGUI, | 
			
		
	
		
			
				
					|  |  |  |  |         // right hand
 | 
			
		
	
		
			
				
					|  |  |  |  |              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_D,   KC_H,   KC_T,   KC_N,   LT(MDIA, KC_S),   GUI_T(KC_MINS), | 
			
		
	
		
			
				
					|  |  |  |  |              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_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_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_UP,  KC_DOWN,KC_LBRC,KC_RBRC, MO(SYMB), | 
			
		
	
		
			
				
					|  |  |  |  |              KC_HOME,KC_END, | 
			
		
	
		
			
				
					|  |  |  |  |              KC_NO, | 
			
		
	
		
			
				
					|  |  |  |  |              KC_RALT,KC_SPC,KC_RCTL | 
			
		
	
		
			
				
					|  |  |  |  |              KC_RALT, | 
			
		
	
		
			
				
					|  |  |  |  |              KC_FN1,KC_SPC,KC_RCTL | 
			
		
	
		
			
				
					|  |  |  |  |     ), | 
			
		
	
		
			
				
					|  |  |  |  | /* 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 | 
			
		
	
		
			
				
					|  |  |  |  | ), | 
			
		
	
		
			
				
					|  |  |  |  | /* 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_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[] = { | 
			
		
	
		
			
				
					|  |  |  |  |     [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) | 
			
		
	
	
		
			
				
					|  |  |  | @ -200,26 +201,17 @@ void matrix_init_user(void) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | // Runs constantly in the background, in a loop.
 | 
			
		
	
		
			
				
					|  |  |  |  | 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_right_led_1_off(); | 
			
		
	
		
			
				
					|  |  |  |  |     ergodox_right_led_2_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(); | 
			
		
	
		
			
				
					|  |  |  |  | }; | 
			
		
	
	
		
			
				
					|  |  |  | 
 |