You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					178 lines
				
				11 KiB
			
		
		
			
		
	
	
					178 lines
				
				11 KiB
			| 
								 
											7 years ago
										 
									 | 
							
								#include QMK_KEYBOARD_H
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								enum layer_number {
							 | 
						||
| 
								 | 
							
								    _MAC = 0,
							 | 
						||
| 
								 | 
							
								    _WINDOWS,
							 | 
						||
| 
								 | 
							
								    _FN,
							 | 
						||
| 
								 | 
							
								    _ADJ
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								enum custom_keycodes {
							 | 
						||
| 
								 | 
							
								  MAC = SAFE_RANGE,
							 | 
						||
| 
								 | 
							
								  WINDOWS,
							 | 
						||
| 
								 | 
							
								  FN,
							 | 
						||
| 
								 | 
							
								  ADJ
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
							 | 
						||
| 
								 | 
							
								/* Mac
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * ,--------------------------------------------------.           ,--------------------------------------------------.
							 | 
						||
| 
								 | 
							
								 * | Esc    |   1  |   2  |   3  |   4  |   5  |  -   |           |  =   |   6  |   7  |   8  |   9  |   0  |  Bsp   |
							 | 
						||
| 
								 | 
							
								 * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
							 | 
						||
| 
								 | 
							
								 * | Tab    |   Q  |   W  |   E  |   R  |   T  |  [   |           |  ]   |   Y  |   U  |   I  |   O  |   P  |  Enter |
							 | 
						||
| 
								 | 
							
								 * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
							 | 
						||
| 
								 | 
							
								 * | Caps   |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |   ;  |   '    |
							 | 
						||
| 
								 | 
							
								 * |--------+------+------+------+------+------|  `   |           |  \   |------+------+------+------+------+--------|
							 | 
						||
| 
								 | 
							
								 * | LShift |   Z  |   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  |  /   | RShift |
							 | 
						||
| 
								 | 
							
								 * `--------+------+------+---------------------------'           `---------------------------+------+------+--------'
							 | 
						||
| 
								 | 
							
								 *   | Ctrl |  Alt |  Gui |                                                                   |  Gui |  Alt | Ctrl |
							 | 
						||
| 
								 | 
							
								 *   `--------------------'                                                                   `--------------------'
							 | 
						||
| 
								 | 
							
								 *                                        ,-------------.       ,--------------.
							 | 
						||
| 
								 | 
							
								 *                                        |      |      |       |      |       |  
							 | 
						||
| 
								 | 
							
								 *                                        | Bspc |  FN  |       |  ADJ | Space |
							 | 
						||
| 
								 | 
							
								 *                                        |      |      |       |      |       | 
							 | 
						||
| 
								 | 
							
								 *                                        `-------------'       `--------------'
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								    [_MAC] = LAYOUT(
							 | 
						||
| 
								 | 
							
									KC_ESC,  KC_1,   KC_2,   KC_3,   KC_4,   KC_5,   KC_MINS,       KC_EQL,  KC_6,   KC_7,   KC_8,   KC_9,   KC_0,    KC_DEL,
							 | 
						||
| 
								 | 
							
									KC_TAB,  KC_Q,   KC_W,   KC_E,   KC_R,   KC_T,   KC_LBRC,       KC_RBRC, KC_Y,   KC_U,   KC_I,   KC_O,   KC_P,    KC_ENT,
							 | 
						||
| 
								 | 
							
									KC_CAPS, 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_GRV,        KC_BSLS, KC_N,   KC_M,   KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
							 | 
						||
| 
								 | 
							
									KC_LCTL, KC_LALT,KC_LGUI,                                                                        KC_RGUI,KC_RALT, KC_RCTL,
							 | 
						||
| 
								 | 
							
								                                           KC_BSPC,FN,            ADJ, KC_SPC,
							 | 
						||
| 
								 | 
							
								                                           KC_BSPC,FN,            ADJ, KC_SPC
							 | 
						||
| 
								 | 
							
								    ),
							 | 
						||
| 
								 | 
							
								/* Windows
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * ,--------------------------------------------------.           ,--------------------------------------------------.
							 | 
						||
| 
								 | 
							
								 * | Esc    |   1  |   2  |   3  |   4  |   5  |  -   |           |  =   |   6  |   7  |   8  |   9  |   0  |  Bsp   |
							 | 
						||
| 
								 | 
							
								 * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
							 | 
						||
| 
								 | 
							
								 * | Tab    |   Q  |   W  |   E  |   R  |   T  |  [   |           |  ]   |   Y  |   U  |   I  |   O  |   P  |  Enter |
							 | 
						||
| 
								 | 
							
								 * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
							 | 
						||
| 
								 | 
							
								 * | Caps   |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |   ;  |   '    |
							 | 
						||
| 
								 | 
							
								 * |--------+------+------+------+------+------|  `   |           |  \   |------+------+------+------+------+--------|
							 | 
						||
| 
								 | 
							
								 * | LShift |   Z  |   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  |  /   | RShift |
							 | 
						||
| 
								 | 
							
								 * `--------+------+------+---------------------------'           `---------------------------+------+------+--------'
							 | 
						||
| 
								 | 
							
								 *   | Gui  |  Alt | Ctrl |                                                                   | Ctrl |  Alt |  Gui |
							 | 
						||
| 
								 | 
							
								 *   `--------------------'                                                                   `--------------------'
							 | 
						||
| 
								 | 
							
								 *                                        ,-------------.       ,--------------.
							 | 
						||
| 
								 | 
							
								 *                                        |      |      |       |      |       |  
							 | 
						||
| 
								 | 
							
								 *                                        | Bspc |  FN  |       |  ADJ | Space | 
							 | 
						||
| 
								 | 
							
								 *                                        |      |      |       |      |       | 
							 | 
						||
| 
								 | 
							
								 *                                        `-------------'       `--------------'
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								    [_WINDOWS] = LAYOUT(
							 | 
						||
| 
								 | 
							
								  KC_ESC,  KC_1,   KC_2,   KC_3,   KC_4,   KC_5,   KC_MINS,       KC_EQL,  KC_6,   KC_7,   KC_8,   KC_9,   KC_0,    KC_DEL,
							 | 
						||
| 
								 | 
							
								  KC_TAB,  KC_Q,   KC_W,   KC_E,   KC_R,   KC_T,   KC_LBRC,       KC_RBRC, KC_Y,   KC_U,   KC_I,   KC_O,   KC_P,    KC_ENT,
							 | 
						||
| 
								 | 
							
								  KC_CAPS, 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_GRV,        KC_BSLS, KC_N,   KC_M,   KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
							 | 
						||
| 
								 | 
							
								  KC_LGUI, KC_LALT,KC_LCTL,                                                                        KC_RCTL,KC_RALT, KC_RGUI,
							 | 
						||
| 
								 | 
							
								                                           KC_BSPC,FN,            ADJ, KC_SPC,
							 | 
						||
| 
								 | 
							
								                                           KC_BSPC,FN,            ADJ, KC_SPC
							 | 
						||
| 
								 | 
							
								    ),
							 | 
						||
| 
								 | 
							
								/* FN
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * ,--------------------------------------------------.           ,--------------------------------------------------.
							 | 
						||
| 
								 | 
							
								 * | RESET  |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
							 | 
						||
| 
								 | 
							
								 * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
							 | 
						||
| 
								 | 
							
								 * | MAC    |      |      |      |      |      |      |           |      |      | PgDn |  Up  | PgUp | Print|  Home  |
							 | 
						||
| 
								 | 
							
								 * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
							 | 
						||
| 
								 | 
							
								 * | WINDOWS|      |      |      |      |      |------|           |------|      | Left | Down | Right|Insert|  End   |
							 | 
						||
| 
								 | 
							
								 * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
							 | 
						||
| 
								 | 
							
								 * | Shift  |      |      |      |      |      |      |           |      | Play | Mute | Vol- | Vol+ | Last |  Next  |
							 | 
						||
| 
								 | 
							
								 * `--------+------+------+---------------------------'           `---------------------------+------+------+--------'
							 | 
						||
| 
								 | 
							
								 *   |      |      |GuiCtl|                                                                   |GuiCtl|      |      |
							 | 
						||
| 
								 | 
							
								 *   `--------------------'                                                                   `--------------------'
							 | 
						||
| 
								 | 
							
								 *                                        ,-------------.       ,--------------.
							 | 
						||
| 
								 | 
							
								 *                                        |      |      |       |      |       |  
							 | 
						||
| 
								 | 
							
								 *                                        |      |      |       |      |       | 
							 | 
						||
| 
								 | 
							
								 *                                        |      |      |       |      |       | 
							 | 
						||
| 
								 | 
							
								 *                                        `-------------'       `--------------'
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								    [_FN] = LAYOUT(
							 | 
						||
| 
								 | 
							
								  RESET,   XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX,   XXXXXXX,   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
							 | 
						||
| 
								 | 
							
								  MAC,     XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX,   XXXXXXX,   XXXXXXX, XXXXXXX, XXXXXXX, KC_PGDN, KC_UP,   KC_PGUP, KC_PSCR, KC_HOME,
							 | 
						||
| 
								 | 
							
								  WINDOWS, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX,   XXXXXXX,                     XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS,  KC_END, 
							 | 
						||
| 
								 | 
							
								  _______, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX,   XXXXXXX,   XXXXXXX, XXXXXXX, KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, KC_MRWD, KC_MFFD,
							 | 
						||
| 
								 | 
							
								  XXXXXXX, XXXXXXX,_______,                                                                             _______, XXXXXXX, XXXXXXX,
							 | 
						||
| 
								 | 
							
								                                                XXXXXXX,   _______, XXXXXXX, XXXXXXX,
							 | 
						||
| 
								 | 
							
								                                                XXXXXXX,   _______, XXXXXXX, XXXXXXX
							 | 
						||
| 
								 | 
							
								    ),
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* ADJ
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * ,--------------------------------------------------.           ,--------------------------------------------------.
							 | 
						||
| 
								 | 
							
								 * |   F1   |  F2  |  F3  |  F4  |  F5  |  F6  |      |           |Nlock |  =   |  /   |  *   |  -   |      |        |
							 | 
						||
| 
								 | 
							
								 * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
							 | 
						||
| 
								 | 
							
								 * |   F7   |  F8  |  F9  |  F10 |  F11 |  F12 |      |           |      |  7   |  8   |  9   |  +   |      |        |
							 | 
						||
| 
								 | 
							
								 * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
							 | 
						||
| 
								 | 
							
								 * |        |      |      |      |      |      |------|           |------|  4   |  5   |  6   | Enter|      |        |
							 | 
						||
| 
								 | 
							
								 * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
							 | 
						||
| 
								 | 
							
								 * |        |      |      |      |      |      |      |           |      |  1   |  2   |  3   | Space|      |        |
							 | 
						||
| 
								 | 
							
								 * `--------+------+------+---------------------------'           `---------------------------+------+------+--------'
							 | 
						||
| 
								 | 
							
								 *   |      |      |      |                                                                   |  0   |  .   |      |
							 | 
						||
| 
								 | 
							
								 *   `--------------------'                                                                   `--------------------'
							 | 
						||
| 
								 | 
							
								 *                                        ,-------------.       ,--------------.
							 | 
						||
| 
								 | 
							
								 *                                        |      |      |       |      |       |  
							 | 
						||
| 
								 | 
							
								 *                                        |      |      |       |      |       | 
							 | 
						||
| 
								 | 
							
								 *                                        |      |      |       |      |       | 
							 | 
						||
| 
								 | 
							
								 *                                        `-------------'       `--------------'
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								    [_ADJ] = LAYOUT(
							 | 
						||
| 
								 | 
							
								  KC_F1,   KC_F2,  KC_F3,   KC_F4,   KC_F5,   KC_F6,   XXXXXXX, KC_NLCK, KC_PEQL, KC_PSLS, KC_PAST, KC_PMNS, XXXXXXX, XXXXXXX,
							 | 
						||
| 
								 | 
							
								  KC_F7,   KC_F8,  KC_F9,   KC_F10,  KC_F11,  KC_F12,  XXXXXXX, XXXXXXX, KC_P7,   KC_P8,   KC_P9,   KC_PPLS, XXXXXXX, XXXXXXX,
							 | 
						||
| 
								 | 
							
								  XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                   KC_P4,   KC_P5,   KC_P6,   KC_PENT, XXXXXXX, XXXXXXX, 
							 | 
						||
| 
								 | 
							
								  XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_P1,   KC_P2,   KC_P3,   KC_SPC,  XXXXXXX, XXXXXXX,
							 | 
						||
| 
								 | 
							
								  XXXXXXX, XXXXXXX,XXXXXXX,                                                                         KC_P0,   KC_PDOT, XXXXXXX,
							 | 
						||
| 
								 | 
							
								                                              XXXXXXX, XXXXXXX, _______, XXXXXXX,
							 | 
						||
| 
								 | 
							
								                                              XXXXXXX, XXXXXXX, _______, XXXXXXX
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void matrix_init_user(void) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void matrix_scan_user(void) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								bool process_record_user(uint16_t keycode, keyrecord_t *record) {
							 | 
						||
| 
								 | 
							
								   switch (keycode) {
							 | 
						||
| 
								 | 
							
								    case MAC:
							 | 
						||
| 
								 | 
							
								      if (record->event.pressed) {
							 | 
						||
| 
								 | 
							
								        set_single_persistent_default_layer(_MAC);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								      return false;
							 | 
						||
| 
								 | 
							
								      break;
							 | 
						||
| 
								 | 
							
								    case WINDOWS:
							 | 
						||
| 
								 | 
							
								      if(record->event.pressed) {
							 | 
						||
| 
								 | 
							
								        set_single_persistent_default_layer(_WINDOWS);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								      return false;
							 | 
						||
| 
								 | 
							
								      break;
							 | 
						||
| 
								 | 
							
								    case FN:
							 | 
						||
| 
								 | 
							
								      if (record->event.pressed) {
							 | 
						||
| 
								 | 
							
								        layer_on(_FN);
							 | 
						||
| 
								 | 
							
								      } else {
							 | 
						||
| 
								 | 
							
								        layer_off(_FN);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								      return false;
							 | 
						||
| 
								 | 
							
								      break;
							 | 
						||
| 
								 | 
							
								    case ADJ:
							 | 
						||
| 
								 | 
							
								        if (record->event.pressed) {
							 | 
						||
| 
								 | 
							
								          layer_on(_ADJ);
							 | 
						||
| 
								 | 
							
								        } else {
							 | 
						||
| 
								 | 
							
								          layer_off(_ADJ);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return false;
							 | 
						||
| 
								 | 
							
								        break;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  return true;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void led_set_user(uint8_t usb_led) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |