Add OS specific layers that can be switched with macros (#436)
This commit is contained in:
		
							parent
							
								
									bab6a8fde5
								
							
						
					
					
						commit
						ba116ceb49
					
				
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -21,8 +21,12 @@ extern keymap_config_t keymap_config; | |||||||
| #define _RAISE 4 | #define _RAISE 4 | ||||||
| #define _FCT 5 | #define _FCT 5 | ||||||
| #define _SETUP 6 | #define _SETUP 6 | ||||||
| #define _MUSIC 7 | #define _MAC 7 | ||||||
|  | #define _WIN 8 | ||||||
|  | #define _LIN 9 | ||||||
| #define _MICMUTE 16 | #define _MICMUTE 16 | ||||||
|  | #define _OS 17 | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| // Macro name shortcuts
 | // Macro name shortcuts
 | ||||||
| #define QWERTY M(_QWERTY) | #define QWERTY M(_QWERTY) | ||||||
| @ -31,12 +35,19 @@ extern keymap_config_t keymap_config; | |||||||
| #define LOWER M(_LOWER) | #define LOWER M(_LOWER) | ||||||
| #define RAISE M(_RAISE) | #define RAISE M(_RAISE) | ||||||
| #define FCT M(_FCT) | #define FCT M(_FCT) | ||||||
|  | #define OS M(_OS) | ||||||
|  | #define MAC M(_MAC) | ||||||
|  | #define WIN M(_WIN) | ||||||
|  | #define LIN M(_LIN) | ||||||
| #define MICMUTE M(_MICMUTE) | #define MICMUTE M(_MICMUTE) | ||||||
| 
 | 
 | ||||||
| #define MACPRNT LGUI(LSFT(KC_3)) | #define MACPRNT LGUI(LSFT(KC_3)) | ||||||
| #define MACPRNT2 LGUI(LSFT(KC_4)) | #define MACPRNT2 LGUI(LSFT(KC_4)) | ||||||
|  | #define WINPRNT KC_PSCR | ||||||
|  | #define WINPRNT2 LGUI(KC_PSCR) | ||||||
| #define CYCLWIN LGUI(KC_GRV) | #define CYCLWIN LGUI(KC_GRV) | ||||||
| #define MAC_SLEP LSFT(LCTL(KC_POWER)) | #define MACSLEEP LSFT(LCTL(KC_POWER)) | ||||||
|  | #define WINSLEEP KC_SLEP | ||||||
| 
 | 
 | ||||||
| // Fillers to make layering more clear
 | // Fillers to make layering more clear
 | ||||||
| #define _______ KC_TRNS | #define _______ KC_TRNS | ||||||
| @ -48,57 +59,71 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||||||
|   {KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    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_BSPC}, | ||||||
|   {KC_ESC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT}, |   {KC_ESC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT}, | ||||||
|   {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, 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_ENT }, | ||||||
|   {FCT,     KC_LCTL, KC_LALT, KC_LGUI, LOWER,   KC_SPC,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT} |   {OS,     KC_LCTL, KC_LALT, KC_LGUI, LOWER,   KC_SPC,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT} | ||||||
| }, | }, | ||||||
| 
 | 
 | ||||||
| [_COLEMAK] = { | [_COLEMAK] = { | ||||||
|   {KC_TAB,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, 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_BSPC}, | ||||||
|   {KC_ESC,  KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,    KC_QUOT}, |   {KC_ESC,  KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,    KC_QUOT}, | ||||||
|   {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT }, |   {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT }, | ||||||
|   {FCT,     KC_LCTL, KC_LALT, KC_LGUI, LOWER,   KC_SPC,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT} |   {OS,      KC_LCTL, KC_LALT, KC_LGUI, LOWER,   KC_SPC,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT} | ||||||
| }, | }, | ||||||
| 
 | 
 | ||||||
| [_DVORAK] = { | [_DVORAK] = { | ||||||
|   {KC_TAB,  KC_QUOT, KC_COMM, KC_DOT,  KC_P,    KC_Y,    KC_F,    KC_G,    KC_C,    KC_R,    KC_L,    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_BSPC}, | ||||||
|   {KC_ESC,  KC_A,    KC_O,    KC_E,    KC_U,    KC_I,    KC_D,    KC_H,    KC_T,    KC_N,    KC_S,    KC_SLSH}, |   {KC_ESC,  KC_A,    KC_O,    KC_E,    KC_U,    KC_I,    KC_D,    KC_H,    KC_T,    KC_N,    KC_S,    KC_SLSH}, | ||||||
|   {KC_LSFT, KC_SCLN, KC_Q,    KC_J,    KC_K,    KC_X,    KC_B,    KC_M,    KC_W,    KC_V,    KC_Z,    KC_ENT }, |   {KC_LSFT, KC_SCLN, KC_Q,    KC_J,    KC_K,    KC_X,    KC_B,    KC_M,    KC_W,    KC_V,    KC_Z,    KC_ENT }, | ||||||
|   {FCT,     KC_LCTL, KC_LALT, KC_LGUI, LOWER,   KC_SPC,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT} |   {OS,      KC_LCTL, KC_LALT, KC_LGUI, LOWER,   KC_SPC,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT} | ||||||
| }, | }, | ||||||
| 
 | 
 | ||||||
| [_LOWER] = { | [_LOWER] = { | ||||||
|   {KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, |   {KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, | ||||||
|   {_______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, |   {_______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, | ||||||
|   {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, |   {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | ||||||
|   {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} |   {_______,  _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} | ||||||
| }, | }, | ||||||
| 
 | 
 | ||||||
| [_RAISE] = { | [_RAISE] = { | ||||||
|   {KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC}, |   {KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC}, | ||||||
|   {_______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS}, |   {_______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS}, | ||||||
|   {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, |   {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | ||||||
|   {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} |   {_RAISE,  _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} | ||||||
| }, |  | ||||||
| 
 |  | ||||||
| [_FCT] = { /* Function */ |  | ||||||
|   {BL_STEP, MAC_SLEP,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_DELT}, |  | ||||||
|   {_______, MICMUTE, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, KC_F5,   KC_F6,   KC_F7,   KC_F8,   MACPRNT}, |  | ||||||
|   {_______, CYCLWIN, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, KC_F9,   KC_F10,  KC_F11,  KC_F12, MACPRNT2}, |  | ||||||
|   {FCT,     _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDOWN,KC_PGUP,KC_END } |  | ||||||
| }, | }, | ||||||
| 
 | 
 | ||||||
| [_SETUP] = { /* Setup */ | [_SETUP] = { /* Setup */ | ||||||
|   {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, |   {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | ||||||
|   {_______, _______, _______, _______, _______, _______, _______, QWERTY,  COLEMAK, DVORAK,  _______, _______}, |   {_______, _______, _______, WIN,     MAC,     _______, _______, QWERTY,  COLEMAK, DVORAK,  _______, _______}, | ||||||
|   {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, |   {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | ||||||
|   {_______, _______, _______, _______, _______, RESET,   RESET,   _______, _______, _______, _______, _______} |   {_______, _______, _______, _______, _______, RESET,   RESET,   _______, _______, _______, _______, _______} | ||||||
|  | }, | ||||||
|  | [_MAC] = { /* Mac */ | ||||||
|  |   {CYCLWIN,MACSLEEP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_DELT}, | ||||||
|  |   {_______, MICMUTE, KC_MUTE, KC_VOLD, KC_VOLU, MACPRNT,MACPRNT2, KC_F5,   KC_F6,   KC_F7,   KC_F8,   XXXXXXX}, | ||||||
|  |   {_______, BL_STEP, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, KC_F9,   KC_F10,  KC_F11,  KC_F12,  XXXXXXX}, | ||||||
|  |   {_______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDOWN,KC_PGUP,KC_END } | ||||||
|  | }, | ||||||
|  | [_WIN] = { /* Windows */ | ||||||
|  |   {CYCLWIN,WINSLEEP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_DELT}, | ||||||
|  |   {_______, MICMUTE, KC_MUTE, KC_VOLD, KC_VOLU, WINPRNT,WINPRNT2, KC_F5,   KC_F6,   KC_F7,   KC_F8,   XXXXXXX}, | ||||||
|  |   {_______, BL_STEP, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, KC_F9,   KC_F10,  KC_F11,  KC_F12,  XXXXXXX}, | ||||||
|  |   {_______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDOWN,KC_PGUP,KC_END } | ||||||
|  | }, | ||||||
|  | [_LIN] = { /* Linux */ | ||||||
|  |   {KC_L,    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | ||||||
|  |   {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | ||||||
|  |   {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | ||||||
|  |   {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} | ||||||
| } | } | ||||||
|  | 
 | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  | int currentOs = _MAC; | ||||||
| const uint16_t PROGMEM fn_actions[] = { | const uint16_t PROGMEM fn_actions[] = { | ||||||
| 
 | 
 | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| #ifdef AUDIO_ENABLE | #ifdef AUDIO_ENABLE | ||||||
|  | 
 | ||||||
| float tone_startup[][2] = { | float tone_startup[][2] = { | ||||||
|   {440.0*pow(2.0,(31)/12.0), 12}, |   {440.0*pow(2.0,(31)/12.0), 12}, | ||||||
|   {440.0*pow(2.0,(28)/12.0), 8}, |   {440.0*pow(2.0,(28)/12.0), 8}, | ||||||
| @ -188,7 +213,23 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | |||||||
|             unregister_code(KC_RGUI); |             unregister_code(KC_RGUI); | ||||||
|           }  |           }  | ||||||
|         break; |         break; | ||||||
| 
 |         case _OS: | ||||||
|  |           if (record->event.pressed) { | ||||||
|  |             layer_on(currentOs); | ||||||
|  |           } else { | ||||||
|  |             layer_off(_MAC); | ||||||
|  |             layer_off(_WIN); | ||||||
|  |             layer_off(_LIN); | ||||||
|  |           } | ||||||
|  |         break; | ||||||
|  |         case _MAC: | ||||||
|  |         case _WIN: | ||||||
|  |         case _LIN: | ||||||
|  |           if (record->event.pressed) { | ||||||
|  |             layer_off(currentOs); | ||||||
|  |             currentOs = id; | ||||||
|  |           } | ||||||
|  |         break;         | ||||||
|       } |       } | ||||||
|     return MACRO_NONE; |     return MACRO_NONE; | ||||||
| }; | }; | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user