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.
		
		
		
		
		
			
		
			
				
					160 lines
				
				18 KiB
			
		
		
			
		
	
	
					160 lines
				
				18 KiB
			| 
								 
											7 years ago
										 
									 | 
							
								#include QMK_KEYBOARD_H
							 | 
						||
| 
								 
											8 years ago
										 
									 | 
							
								
							 | 
						||
| 
								 | 
							
								#define _QWERTY 0
							 | 
						||
| 
								 | 
							
								#define _COLEMAK 1
							 | 
						||
| 
								 | 
							
								#define _DVORAK 2
							 | 
						||
| 
								 | 
							
								#define _FL 3
							 | 
						||
| 
								 | 
							
								#define _CL 4
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								enum planck_keycodes {
							 | 
						||
| 
								 | 
							
								  QWERTY = SAFE_RANGE,
							 | 
						||
| 
								 | 
							
								  COLEMAK,
							 | 
						||
| 
								 | 
							
								  DVORAK
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Custom macros
							 | 
						||
| 
								 | 
							
								#define CTL_ESC     CTL_T(KC_ESC)               // Tap for Esc, hold for Ctrl
							 | 
						||
| 
								 | 
							
								#define HPR_TAB     ALL_T(KC_TAB)               // Tap for Tab, hold for Hyper (Super+Ctrl+Shift+Alt)
							 | 
						||
| 
								 | 
							
								#define SFT_ENT     SFT_T(KC_ENT)               // Tap for Enter, hold for Shift
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
							 | 
						||
| 
								 | 
							
								  /* 0: Qwerty layer
							 | 
						||
| 
								 | 
							
								   * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
							 | 
						||
| 
								 | 
							
								   * │ ESC │  1  │  2  │  3  │  4  │  5  │  6  │  7  │  8  │  9  │  0  │  -  │  =  │▒▒▒▒▒│BKSPC│  `  │
							 | 
						||
| 
								 | 
							
								   * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
							 | 
						||
| 
								 | 
							
								   * │H_TAB│  Q  │  W  │  E  │  R  │  T  │  Y  │  U  │  I  │  O  │  P  │  [  │  ]  │  \  │█████│ DEL │
							 | 
						||
| 
								 | 
							
								   * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
							 | 
						||
| 
								 | 
							
								   * │C_ESC│  A  │  S  │  D  │  F  │  G  │  H  │  J  │  K  │  L  │  ;  │  '  │▒▒▒▒▒│ENTER│█████│PG_UP│
							 | 
						||
| 
								 | 
							
								   * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
							 | 
						||
| 
								 | 
							
								   * │LSHFT│▒▒▒▒▒│  Z  │  X  │  C  │  V  │  B  │  N  │  M  │  ,  │  .  │  /  │▒▒▒▒▒│RSHFT│ UP  │PG_DN│
							 | 
						||
| 
								 | 
							
								   * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
							 | 
						||
| 
								 | 
							
								   * │LCTRL│L_GUI│L_GUI│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ _FL │R_GUI│LEFT │DOWN │RIGHT│
							 | 
						||
| 
								 | 
							
								   * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /* 0: ANSI qwerty */
							 | 
						||
| 
								 
											7 years ago
										 
									 | 
							
								  [_QWERTY] = LAYOUT_65_ansi(
							 | 
						||
| 
								 
											8 years ago
										 
									 | 
							
								    KC_GESC,  KC_1,     KC_2,     KC_3,     KC_4,     KC_5,     KC_6,     KC_7,     KC_8,     KC_9,     KC_0,     KC_MINS,  KC_EQL,   KC_BSPC,  KC_GRV,  \
							 | 
						||
| 
								 | 
							
								    HPR_TAB,  KC_Q,     KC_W,     KC_E,     KC_R,     KC_T,     KC_Y,     KC_U,     KC_I,     KC_O,     KC_P,     KC_LBRC,  KC_RBRC,  KC_BSLS,  KC_DEL,  \
							 | 
						||
| 
								 | 
							
								    CTL_ESC,  KC_A,     KC_S,     KC_D,     KC_F,     KC_G,     KC_H,     KC_J,     KC_K,     KC_L,     KC_SCLN,  KC_QUOT,            KC_ENT,   KC_PGUP, \
							 | 
						||
| 
								 | 
							
								    KC_LSFT,            KC_Z,     KC_X,     KC_C,     KC_V,     KC_B,     KC_N,     KC_M,     KC_COMM,  KC_DOT,   KC_SLSH,  SFT_ENT,  KC_UP,    KC_PGDN, \
							 | 
						||
| 
								 | 
							
								    KC_LCTL,  KC_LGUI,  KC_LALT,                      KC_SPC,                                 KC_RALT,  MO(_FL),  KC_RGUI,  KC_LEFT,  KC_DOWN,  KC_RGHT),
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /* 1: Colemak layer
							 | 
						||
| 
								 | 
							
								   * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
							 | 
						||
| 
								 | 
							
								   * │ ESC │  1  │  2  │  3  │  4  │  5  │  6  │  7  │  8  │  9  │  0  │  -  │  =  │▒▒▒▒▒│BKSPC│  `  │
							 | 
						||
| 
								 | 
							
								   * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
							 | 
						||
| 
								 | 
							
								   * │H_TAB│  Q  │  W  │  F  │  P  │  G  │  J  │  L  │  U  │  Y  │  ;  │  [  │  ]  │  \  │█████│ DEL │
							 | 
						||
| 
								 | 
							
								   * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
							 | 
						||
| 
								 | 
							
								   * │C_ESC│  A  │  R  │  S  │  T  │  D  │  H  │  N  │  E  │  I  │  O  │  '  │▒▒▒▒▒│ENTER│█████│PG_UP│
							 | 
						||
| 
								 | 
							
								   * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
							 | 
						||
| 
								 | 
							
								   * │LSHFT│▒▒▒▒▒│  Z  │  X  │  C  │  V  │  B  │  K  │  M  │  ,  │  .  │  /  │▒▒▒▒▒│RSHFT│ UP  │PG_DN│
							 | 
						||
| 
								 | 
							
								   * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
							 | 
						||
| 
								 | 
							
								   * │LCTRL│L_GUI│L_GUI│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ _FL │R_GUI│LEFT │DOWN │RIGHT│
							 | 
						||
| 
								 | 
							
								   * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /* 1: ANSI colemak */
							 | 
						||
| 
								 
											7 years ago
										 
									 | 
							
								  [_COLEMAK] = LAYOUT_65_ansi(
							 | 
						||
| 
								 
											8 years ago
										 
									 | 
							
								    KC_GESC,  KC_1,     KC_2,     KC_3,     KC_4,     KC_5,     KC_6,     KC_7,     KC_8,     KC_9,     KC_0,     KC_MINS,  KC_EQL,   KC_BSPC,  KC_GRV,  \
							 | 
						||
| 
								 | 
							
								    HPR_TAB,  KC_Q,     KC_W,     KC_F,     KC_P,     KC_G,     KC_J,     KC_L,     KC_U,     KC_Y,     KC_SCLN,  KC_LBRC,  KC_RBRC,  KC_BSLS,  KC_DEL,  \
							 | 
						||
| 
								 | 
							
								    CTL_ESC,  KC_A,     KC_R,     KC_S,     KC_T,     KC_D,     KC_H,     KC_N,     KC_E,     KC_I,     KC_O,     KC_QUOT,            KC_ENT,   KC_PGUP, \
							 | 
						||
| 
								 | 
							
								    KC_LSFT,            KC_Z,     KC_X,     KC_C,     KC_V,     KC_B,     KC_K,     KC_M,     KC_COMM,  KC_DOT,   KC_SLSH,  SFT_ENT,  KC_UP,    KC_PGDN, \
							 | 
						||
| 
								 | 
							
								    KC_LCTL,  KC_LGUI,  KC_LALT,                      KC_SPC,                                 KC_RALT,  MO(_FL),  KC_RGUI,  KC_LEFT,  KC_DOWN,  KC_RGHT),
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /* 2: Dvorak layer
							 | 
						||
| 
								 | 
							
								   * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
							 | 
						||
| 
								 | 
							
								   * │ ESC │  1  │  2  │  3  │  4  │  5  │  6  │  7  │  8  │  9  │  0  │  [  │  ]  │▒▒▒▒▒│BKSPC│  `  │
							 | 
						||
| 
								 | 
							
								   * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
							 | 
						||
| 
								 | 
							
								   * │H_TAB│  '  │  ,  │  .  │  P  │  Y  │  F  │  G  │  C  │  R  │  L  │  /  │  =  │  \  │█████│ DEL │
							 | 
						||
| 
								 | 
							
								   * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
							 | 
						||
| 
								 | 
							
								   * │C_ESC│  A  │  O  │  E  │  U  │  I  │  D  │  H  │  T  │  N  │  S  │  -  │▒▒▒▒▒│ENTER│█████│PG_UP│
							 | 
						||
| 
								 | 
							
								   * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
							 | 
						||
| 
								 | 
							
								   * │LSHFT│▒▒▒▒▒│  ;  │  Q  │  J  │  K  │  X  │  B  │  M  │  W  │  V  │  Z  │▒▒▒▒▒│RSHFT│ UP  │PG_DN│
							 | 
						||
| 
								 | 
							
								   * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
							 | 
						||
| 
								 | 
							
								   * │LCTRL│L_GUI│L_GUI│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ _FL │R_GUI│LEFT │DOWN │RIGHT│
							 | 
						||
| 
								 | 
							
								   * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /* 2: ANSI dvorak */
							 | 
						||
| 
								 
											7 years ago
										 
									 | 
							
								  [_DVORAK] = LAYOUT_65_ansi(
							 | 
						||
| 
								 
											8 years ago
										 
									 | 
							
								    KC_GESC,  KC_1,     KC_2,     KC_3,     KC_4,     KC_5,     KC_6,     KC_7,     KC_8,     KC_9,     KC_0,     KC_LBRC,  KC_RBRC,  KC_BSPC,  KC_GRV,  \
							 | 
						||
| 
								 | 
							
								    HPR_TAB,  KC_QUOT,  KC_COMM,  KC_DOT,   KC_P,     KC_Y,     KC_F,     KC_G,     KC_C,     KC_R,     KC_L,     KC_SLSH,  KC_EQL,   KC_BSLS,  KC_DEL,  \
							 | 
						||
| 
								 | 
							
								    CTL_ESC,  KC_A,     KC_O,     KC_E,     KC_U,     KC_I,     KC_D,     KC_H,     KC_T,     KC_N,     KC_S,     KC_MINS,            KC_ENT,   KC_PGUP, \
							 | 
						||
| 
								 | 
							
								    KC_LSFT,            KC_SCLN,  KC_Q,     KC_J,     KC_K,     KC_X,     KC_B,     KC_M,     KC_W,     KC_V,     KC_Z,     SFT_ENT,  KC_UP,    KC_PGDN, \
							 | 
						||
| 
								 | 
							
								    KC_LCTL,  KC_LGUI,  KC_LALT,                      KC_SPC,                                 KC_RALT,  MO(_FL),  KC_RGUI,  KC_LEFT,  KC_DOWN,  KC_RGHT),
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /* 3: Function layer
							 | 
						||
| 
								 | 
							
								   * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
							 | 
						||
| 
								 | 
							
								   * │  `  │ F1  │ F2  │ F3  │ F4  │ F5  │ F6  │ F7  │ F8  │ F9  │ F10 │ F11 │ F12 │▒▒▒▒▒│ F13 │     │
							 | 
						||
| 
								 | 
							
								   * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
							 | 
						||
| 
								 | 
							
								   * │     │     │     │     │     │     │     │     │PRSCR│SCLCK│PAUSE│     │     │     │█████│     │
							 | 
						||
| 
								 | 
							
								   * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
							 | 
						||
| 
								 | 
							
								   * │     │     │ _CL │     │     │     │     │     │     │     │     │     │▒▒▒▒▒│     │█████│     │
							 | 
						||
| 
								 | 
							
								   * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
							 | 
						||
| 
								 | 
							
								   * │     │▒▒▒▒▒│     │     │     │     │     │     │     │     │     │     │▒▒▒▒▒│     │PG_UP│     │
							 | 
						||
| 
								 | 
							
								   * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
							 | 
						||
| 
								 | 
							
								   * │     │     │     │█████│█████│█████│     │█████│█████│█████│     │ _FL │     │HOME │PG_DN│ END │
							 | 
						||
| 
								 | 
							
								   * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /* 3: ANSI Fn layer */
							 | 
						||
| 
								 
											7 years ago
										 
									 | 
							
								  [_FL] = LAYOUT_65_ansi(
							 | 
						||
| 
								 
											8 years ago
										 
									 | 
							
								    KC_GRV,   KC_F1,    KC_F2,    KC_F3,    KC_F4,    KC_F5,    KC_F6,    KC_F7,    KC_F8,    KC_F9,    KC_F10,   KC_F11,   KC_F12,   KC_F13,   _______, \
							 | 
						||
| 
								 | 
							
								    _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  KC_PSCR,  KC_SLCK,  KC_PAUS,  _______,  _______,  _______,  _______, \
							 | 
						||
| 
								 | 
							
								    _______,  _______,  MO(_CL),  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,  _______, \
							 | 
						||
| 
								 | 
							
								    _______,            _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  KC_PGUP,  _______, \
							 | 
						||
| 
								 | 
							
								    _______,  _______,  _______,                      _______,                                _______,  MO(_FL),  _______,  KC_HOME,  KC_PGDN,  KC_END),
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /* 4: Control layer
							 | 
						||
| 
								 | 
							
								   * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
							 | 
						||
| 
								 | 
							
								   * │     │     │     │     │     │     │     │     │     │     │     │     │     │▒▒▒▒▒│     │ RGB │
							 | 
						||
| 
								 | 
							
								   * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
							 | 
						||
| 
								 | 
							
								   * │     │     │     │     │RESET│     │     │QWRTY│COLMK│DVORK│     │     │     │     │█████│RGBV+│
							 | 
						||
| 
								 | 
							
								   * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
							 | 
						||
| 
								 | 
							
								   * │     │     │ _CL │     │     │     │     │     │     │     │     │     │▒▒▒▒▒│     │█████│RGBV-│
							 | 
						||
| 
								 | 
							
								   * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
							 | 
						||
| 
								 | 
							
								   * │ _FL │▒▒▒▒▒│     │     │     │     │     │     │     │     │     │     │▒▒▒▒▒│     │RGBS+│     │
							 | 
						||
| 
								 | 
							
								   * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
							 | 
						||
| 
								 | 
							
								   * │     │     │     │█████│█████│█████│RGB_M│█████│█████│█████│     │ _FL │     │RGBH-│RGBS-│RGBH+│
							 | 
						||
| 
								 | 
							
								   * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /* 4: ANSI control layer */
							 | 
						||
| 
								 
											7 years ago
										 
									 | 
							
								  [_CL] = LAYOUT_65_ansi(
							 | 
						||
| 
								 
											8 years ago
										 
									 | 
							
								    _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______, RGB_TOG, \
							 | 
						||
| 
								 | 
							
								    _______,  _______,  _______,  _______,  RESET,    _______,  _______,  QWERTY,   COLEMAK,  DVORAK,   _______,  _______,  _______,  _______, RGB_VAI, \
							 | 
						||
| 
								 | 
							
								    _______,  _______,  MO(_CL),  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______, RGB_VAD, \
							 | 
						||
| 
								 | 
							
								    MO(_FL),            _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  RGB_SAI, _______, \
							 | 
						||
| 
								 | 
							
								    _______,  _______,  _______,                      RGB_MOD,                                _______,  MO(_FL),  _______,  RGB_HUD,  RGB_SAD, RGB_HUI),
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void persistent_default_layer_set(uint16_t default_layer) {
							 | 
						||
| 
								 | 
							
								  eeconfig_update_default_layer(default_layer);
							 | 
						||
| 
								 | 
							
								  default_layer_set(default_layer);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								bool process_record_user(uint16_t keycode, keyrecord_t *record) {
							 | 
						||
| 
								 | 
							
								  switch (keycode) {
							 | 
						||
| 
								 | 
							
								    case QWERTY:
							 | 
						||
| 
								 | 
							
								      if (record->event.pressed) {
							 | 
						||
| 
								 | 
							
								        persistent_default_layer_set(1UL<<_QWERTY);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								      return false;
							 | 
						||
| 
								 | 
							
								      break;
							 | 
						||
| 
								 | 
							
								    case COLEMAK:
							 | 
						||
| 
								 | 
							
								      if (record->event.pressed) {
							 | 
						||
| 
								 | 
							
								        persistent_default_layer_set(1UL<<_COLEMAK);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								      return false;
							 | 
						||
| 
								 | 
							
								      break;
							 | 
						||
| 
								 | 
							
								    case DVORAK:
							 | 
						||
| 
								 | 
							
								      if (record->event.pressed) {
							 | 
						||
| 
								 | 
							
								        persistent_default_layer_set(1UL<<_DVORAK);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								      return false;
							 | 
						||
| 
								 | 
							
								      break;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  return true;
							 | 
						||
| 
								 | 
							
								}
							 |