| 
							
								 | 
							
							#include "ergodox.h"
 | 
						
						
						
						
							 | 
							
								 | 
							
							#include "debug.h"
 | 
						
						
						
						
							 | 
							
								 | 
							
							#include "action_layer.h"
 | 
						
						
						
						
							 | 
							
								 | 
							
							#include "led.h"
 | 
						
						
						
						
							 | 
							
								 | 
							
							#include "keymap_extras/keymap_neo2.h"
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// Layer names
 | 
						
						
						
						
							 | 
							
								 | 
							
							#define BASE 0      // default layer
 | 
						
						
						
						
							 | 
							
								 | 
							
							#define PMQ  1      // poor manโs QWERTZ
 | 
						
						
						
						
							 | 
							
								 | 
							
							#define PMN  2      // poor manโs Neo
 | 
						
						
						
						
							 | 
							
								 | 
							
							#define FMU  3      // FMU layer
 | 
						
						
						
						
							 | 
							
								 | 
							
							#define NHL  4      // Neoโs software layer 4 rebuilt in Hardware
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
						
						
						
						
							 | 
							
								 | 
							
							/* Layer 0: default
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โโโโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโ     โโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโโโ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โ  TAB  โ  1  โ  2  โ  3  โ  4  โ  5  โ  `  โ     โ  ยด  โ  6  โ  7  โ  8  โ  9  โ  0  โ BKSPC โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โโโโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโค     โโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโโโค
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โ   Y   โ  X  โ  V  โ  L  โ  C  โ  W  โ HOM โ     โ END โ  K  โ  H  โ  G  โ  F  โ  Q  โ  ร    โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โโโโโโโโโผโโโโโโผโโโโโโผโโโโโโโโโโโโ
โโโโโโค  E  โ     โ     โโโโโโโโโโโโโ
โโโโโโผโโโโโโผโโโโโโผโโโโโโโโค
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โ Mod3  โ  U  โ  I  โ  A  โ  E  โ  O  โโโโโโโค     โโโโโโโค  S  โ  N  โ  R  โ  T  โ  D  โ Mod3  โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โโโโโโโโโผโโโโโโผโโโโโโผโโโโโโโโโโโโโโโโโโค TL2 โ     โ TL3 โโโโโโโโโโโโโโโโโโโผโโโโโโผโโโโโโผโโโโโโโโค
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โ LSHFT โ  ร  โ  ร  โ  ร  โ  P  โ  Z  โ     โ     โ     โ  B  โ  M  โ  ,  โ  .  โ  J  โ Shift โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โโโฌโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโดโโโโโโ     โโโโโโโดโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโฌโโ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *   โ CTL โ ALT โ MO1 โ Win โ Mod4โ                             โ Mod4โ Win โ MO1 โ Alt โ CTL โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *   โโโโโโโดโโโโโโดโโโโโโดโโโโโโดโโโโโโ โโโโโโโฌโโโโโโ โโโโโโโฌโโโโโโ โโโโโโโดโโโโโโดโโโโโโดโโโโโโดโโโโโโ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                                   โ  โ  โ  โ  โ โ  โ  โ  โ  โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                             โโโโโโโผโโโโโโผโโโโโโค โโโโโโโผโโโโโโผโโโโโโ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                             โ     โ     โ  โ  โ โ  โ  โ     โ     โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                             โ SPC โ RTN โโโโโโโค โโโโโโโค RTN โ SPC โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                             โ     โ     โ HYP โ โ MEH โ     โ     โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                             โโโโโโโดโโโโโโดโโโโโโ โโโโโโโดโโโโโโดโโโโโโ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 */
 | 
						
						
						
						
							 | 
							
								 | 
							
							[BASE] = KEYMAP(
 | 
						
						
						
						
							 | 
							
								 | 
							
							        // left hand
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_TAB,     KC_1,   KC_2,   KC_3,   KC_4,   KC_5,   NEO_GRV,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        NEO_Y,      NEO_X,  NEO_V,  NEO_L,  NEO_C,  NEO_W,  KC_HOME,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        NEO_L1_L,   NEO_U,  NEO_I,  NEO_A,  NEO_E,  NEO_O,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_LSFT,    NEO_UE, NEO_OE, NEO_AE, NEO_P,  NEO_Z,  TG(PMQ),
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_LCTL,    KC_LALT,MO(FMU),KC_LGUI,NEO_L2_L,
 | 
						
						
						
						
							 | 
							
								 | 
							
							                                                    KC_LEFT,    KC_UP,
 | 
						
						
						
						
							 | 
							
								 | 
							
							                                                                KC_MINS,
 | 
						
						
						
						
							 | 
							
								 | 
							
							                                            KC_SPC, KC_ENT,    ALL_T(KC_NO),
 | 
						
						
						
						
							 | 
							
								 | 
							
							        // right hand
 | 
						
						
						
						
							 | 
							
								 | 
							
							        NEO_ACUT,   KC_6,   KC_7,   KC_8,   KC_9,   KC_0,   KC_BSPC,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_END,     NEO_K,  NEO_H,  NEO_G,  NEO_F,  NEO_Q,  NEO_SS,
 | 
						
						
						
						
							 | 
							
								 | 
							
							                    NEO_S,  NEO_N,  NEO_R,  NEO_T,  NEO_D,  NEO_L1_R,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        TG(PMN),    NEO_B,  NEO_M,  KC_COMM,KC_DOT, NEO_J,  KC_RSFT,
 | 
						
						
						
						
							 | 
							
								 | 
							
							                            NEO_L2_R,KC_RGUI,MO(FMU),KC_RALT,KC_RCTL,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_DOWN,    KC_RGHT,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_MINS,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        MEH_T(KC_NO),KC_ENT,KC_SPC
 | 
						
						
						
						
							 | 
							
								 | 
							
							    ),
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							/* Layer 1: poor manโs QWERTZ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * based on kaimiโs layout
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โโโโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโ     โโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโโโ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โ  TAB  โ  1  โ  2  โ  3  โ  4  โ  5  โ  `  โ     โ  ยด  โ  6  โ  7  โ  8  โ  9  โ  0  โ BKSPC โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โโโโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโค     โโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโโโค
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โ   C   โ  P  โ  T  โ  F  โ  K  โ  L  โ HOM โ     โ END โ  B  โ  A  โ  S  โ  G  โ  V  โ  Y    โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โโโโโโโโโผโโโโโโผโโโโโโผโโโโโโโโโโโโ
โโโโโโค  E  โ     โ     โโโโโโโโโโโโโ
โโโโโโผโโโโโโผโโโโโโผโโโโโโโโค
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โ Mod3  โ  D  โ  H  โ  ร  โ  O  โ  I  โโโโโโโค     โโโโโโโค  U  โ  -  โ  Z  โ  E  โ  X  โ Mod3  โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โโโโโโโโโผโโโโโโผโโโโโโผโโโโโโโโโโโโโโโโโโค(TL2)โ     โ(TL3)โโโโโโโโโโโโโโโโโโโผโโโโโโผโโโโโโผโโโโโโโโค
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โ LSHFT โ  ร  โ  Q  โ  R  โ  W  โ  N  โ     โ     โ     โ  J  โ  M  โ  ,  โ  .  โ  แบ  โ Shift โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โโโฌโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโดโโโโโโ     โโโโโโโดโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโฌโโ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *   โ CTL โ ALT โ MO1 โ Win โ MO4 โ                             โ M04 โ Win โ MO1 โ Alt โ CTL โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *   โโโโโโโดโโโโโโดโโโโโโดโโโโโโดโโโโโโ โโโโโโโฌโโโโโโ โโโโโโโฌโโโโโโ โโโโโโโดโโโโโโดโโโโโโดโโโโโโดโโโโโโ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                                   โ  โ  โ  โ  โ โ  โ  โ  โ  โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                             โโโโโโโผโโโโโโผโโโโโโค โโโโโโโผโโโโโโผโโโโโโ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                             โ     โ     โ  โ  โ โ  โ  โ     โ     โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                             โ SPC โ RTN โโโโโโโค โโโโโโโค RTN โ SPC โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                             โ     โ     โ HYP โ โ MEH โ     โ     โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                             โโโโโโโดโโโโโโดโโโโโโ โโโโโโโดโโโโโโดโโโโโโ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 */
 | 
						
						
						
						
							 | 
							
								 | 
							
							[PMQ] = KEYMAP(
 | 
						
						
						
						
							 | 
							
								 | 
							
							        // left hand
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_TAB,     KC_1,   KC_2,   KC_3,   KC_4,   KC_5,   KC_EQL,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        DE_C,       DE_P,   DE_T,   DE_F,   DE_K,   DE_L,   KC_HOME,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        NEO_L1_L,   DE_D,   DE_H,   DE_OE,  DE_O,   DE_I,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_LSFT,    DE_AE,  DE_Q,   DE_R,   DE_W,   DE_N,   KC_TRNS,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_LCTL,    KC_LALT,MO(FMU),KC_LGUI,MO(NHL),
 | 
						
						
						
						
							 | 
							
								 | 
							
							                                                    KC_LEFT,    KC_UP,
 | 
						
						
						
						
							 | 
							
								 | 
							
							                                                                KC_MINS,
 | 
						
						
						
						
							 | 
							
								 | 
							
							                                            KC_SPC, KC_ENT,    ALL_T(KC_NO),
 | 
						
						
						
						
							 | 
							
								 | 
							
							        // right hand
 | 
						
						
						
						
							 | 
							
								 | 
							
							        DE_ACUT,    KC_6,   KC_7,   KC_8,   KC_9,   KC_0,   KC_BSPC,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_END,     DE_B,   DE_A,   DE_S,   DE_G,   DE_V,   DE_Y,
 | 
						
						
						
						
							 | 
							
								 | 
							
							                    DE_U,   DE_MINS,DE_Z,   DE_E,   DE_X,   NEO_L1_R,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_TRNS,    DE_J,   DE_M,   DE_COMM,DE_DOT, DE_SS,  KC_RSFT,
 | 
						
						
						
						
							 | 
							
								 | 
							
							                            MO(NHL),KC_RGUI,MO(FMU),KC_RALT,KC_RCTL,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_DOWN,    KC_RGHT,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_MINS,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        MEH_T(KC_NO),KC_ENT,KC_SPC
 | 
						
						
						
						
							 | 
							
								 | 
							
							    ),
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							/* Layer 2: poor manโs Neo
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * based on kaimiโs layout
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โโโโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโ     โโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโโโ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โ  TAB  โ  1  โ  2  โ  3  โ  4  โ  5  โ  `  โ     โ  ยด  โ  6  โ  7  โ  8  โ  9  โ  0  โ BKSPC โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โโโโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโค     โโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโโโค
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โ   Y   โ  X  โ  V  โ  L  โ  C  โ  W  โ HOM โ     โ END โ  K  โ  H  โ  G  โ  F  โ  Q  โ  ร    โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โโโโโโโโโผโโโโโโผโโโโโโผโโโโโโโโโโโโ
โโโโโโค  E  โ     โ     โโโโโโโโโโโโโ
โโโโโโผโโโโโโผโโโโโโผโโโโโโโโค
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โ Mod3  โ  U  โ  I  โ  A  โ  E  โ  O  โโโโโโโค     โโโโโโโค  S  โ  N  โ  R  โ  T  โ  D  โ Mod3  โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โโโโโโโโโผโโโโโโผโโโโโโผโโโโโโโโโโโโโโโโโโค(TL2)โ     โ(TL3)โโโโโโโโโโโโโโโโโโโผโโโโโโผโโโโโโผโโโโโโโโค
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โ LSHFT โ  ร  โ  ร  โ  ร  โ  P  โ  Z  โ     โ     โ     โ  B  โ  M  โ  ,  โ  .  โ  J  โ Shift โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โโโฌโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโดโโโโโโ     โโโโโโโดโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโฌโโ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *   โ CTL โ ALT โ MO1 โ Win โ MO4 โ                             โ M04 โ Win โ MO1 โ Alt โ CTL โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *   โโโโโโโดโโโโโโดโโโโโโดโโโโโโดโโโโโโ โโโโโโโฌโโโโโโ โโโโโโโฌโโโโโโ โโโโโโโดโโโโโโดโโโโโโดโโโโโโดโโโโโโ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                                   โ  โ  โ  โ  โ โ  โ  โ  โ  โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                             โโโโโโโผโโโโโโผโโโโโโค โโโโโโโผโโโโโโผโโโโโโ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                             โ     โ     โ  โ  โ โ  โ  โ     โ     โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                             โ SPC โ RTN โโโโโโโค โโโโโโโค RTN โ SPC โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                             โ     โ     โ HYP โ โ MEH โ     โ     โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                             โโโโโโโดโโโโโโดโโโโโโ โโโโโโโดโโโโโโดโโโโโโ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 */
 | 
						
						
						
						
							 | 
							
								 | 
							
							[PMN] = KEYMAP(
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_TAB,     KC_1,   KC_2,   KC_3,   KC_4,   KC_5,   KC_EQL,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        DE_Y,       DE_X,   DE_V,   DE_L,   DE_C,   DE_W,   KC_HOME,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_NO,      DE_U,   DE_I,   DE_A,   DE_E,   DE_O,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_LSFT,    DE_UE,  DE_OE,  DE_AE,  DE_P,   DE_Z,   KC_TRNS,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_LCTL,    KC_LALT,MO(FMU),KC_LGUI,MO(NHL),
 | 
						
						
						
						
							 | 
							
								 | 
							
							                                                    KC_LEFT,    KC_UP,
 | 
						
						
						
						
							 | 
							
								 | 
							
							                                                                KC_MINS,
 | 
						
						
						
						
							 | 
							
								 | 
							
							                                            KC_SPC, KC_ENT,    ALL_T(KC_NO),
 | 
						
						
						
						
							 | 
							
								 | 
							
							        // right hand
 | 
						
						
						
						
							 | 
							
								 | 
							
							        DE_ACUT,    KC_6,   KC_7,   KC_8,   KC_9,   KC_0,   KC_BSPC,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_END,     DE_K,   DE_H,   DE_G,   DE_F,   DE_Q,   DE_SS,
 | 
						
						
						
						
							 | 
							
								 | 
							
							                    DE_S,   DE_N,   DE_R,   DE_T,   DE_D,   KC_NO,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_TRNS,    DE_B,   DE_M,   KC_COMM,KC_DOT, DE_J,   KC_RSFT,
 | 
						
						
						
						
							 | 
							
								 | 
							
							                            MO(NHL),KC_RGUI,MO(FMU),KC_RALT,KC_RCTL,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_DOWN,    KC_RGHT,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_MINS,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        MEH_T(KC_NO),KC_ENT,KC_SPC
 | 
						
						
						
						
							 | 
							
								 | 
							
							    ),
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							/* Layer 3: F-keys, Mouse and Unicode
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โโโโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโ     โโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโโโ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โ       โ     โ     โ     โ     โ     โ     โ     โ     โ     โ     โ     โ     โ     โ       โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โโโโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโค     โโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโโโค
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โ       โ     โ     โ     โ  โ  โ     โ     โ     โ     โ     โ F9  โ F10 โ F11 โ F12 โ       โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โโโโโโโโโผโโโโโโผโโโโโโผโโโโโโโโโโโโ
โโโโโโค     โ     โ     โโโโโโโโโโโโโ
โโโโโโผโโโโโโผโโโโโโผโโโโโโโโค
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โ       โ     โ     โ     โ  โ  โ     โโโโโโโค     โโโโโโโค     โ F5  โ F6  โ F7  โ F8  โ       โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โโโโโโโโโผโโโโโโผโโโโโโผโโโโโโโโโโโโโโโโโโค(TL2)โ     โ(TL3)โโโโโโโโโโโโโโโโโโโผโโโโโโผโโโโโโผโโโโโโโโค
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โ       โ     โ     โ     โ     โ     โ     โ     โ     โ     โ F1  โ F2  โ F3  โ F4  โ       โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โโโฌโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโดโโโโโโ     โโโโโโโดโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโฌโโ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *   โ     โ     โ(MO1)โ     โ(MO4)โ                             โ(MO4)โ     โ(MO1)โ     โ     โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *   โโโโโโโดโโโโโโดโโโโโโดโโโโโโดโโโโโโ โโโโโโโฌโโโโโโ โโโโโโโฌโโโโโโ โโโโโโโดโโโโโโดโโโโโโดโโโโโโดโโโโโโ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                                   โ Msโ โ Msโ โ โ Msโ โ Msโ โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                             โโโโโโโผโโโโโโผโโโโโโค โโโโโโโผโโโโโโผโโโโโโ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                             โ     โ     โ MLC โ โ MRC โ     โ     โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                             โ     โ     โโโโโโโค โโโโโโโค     โ     โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                             โ     โ     โ     โ โ     โ     โ     โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                             โโโโโโโดโโโโโโดโโโโโโ โโโโโโโดโโโโโโดโโโโโโ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 */
 | 
						
						
						
						
							 | 
							
								 | 
							
							[FMU] = KEYMAP(
 | 
						
						
						
						
							 | 
							
								 | 
							
							        // left hand
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_TRNS,    KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_TRNS,    KC_TRNS,KC_TRNS,KC_TRNS,UC(0x2713),KC_TRNS,KC_TRNS,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_TRNS,    KC_TRNS,KC_TRNS,KC_TRNS,UC(0x2715),KC_TRNS,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_TRNS,    KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_TRNS,    KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
 | 
						
						
						
						
							 | 
							
								 | 
							
							                                                    KC_MS_L,    KC_MS_U,
 | 
						
						
						
						
							 | 
							
								 | 
							
							                                                                KC_BTN1,
 | 
						
						
						
						
							 | 
							
								 | 
							
							                                            KC_TRNS,KC_TRNS,    KC_TRNS,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        // right hand
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_TRNS,    KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_TRNS,    KC_TRNS,KC_F9,  KC_F10, KC_F11, KC_F12, KC_TRNS,
 | 
						
						
						
						
							 | 
							
								 | 
							
							                    KC_TRNS,KC_F5,  KC_F6,  KC_F7,  KC_F8,  KC_TRNS,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_TRNS,    KC_TRNS,KC_F1,  KC_F2,  KC_F3,  KC_F4,  KC_TRNS,
 | 
						
						
						
						
							 | 
							
								 | 
							
							                            KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_MS_D,    KC_MS_R,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_BTN2,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_TRNS,    KC_TRNS,KC_TRNS
 | 
						
						
						
						
							 | 
							
								 | 
							
							    ),
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							/* Layer 4: Neoโs software layer 4 rebuilt in Hardware
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * based on kaimiโs layout
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โโโโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโ     โโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโฌโโโโโโโโ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โ       โ     โ     โ     โ     โ     โ     โ     โ     โ     โ     โ     โ     โ     โ       โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โโโโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโค     โโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโโโค
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โ       โ PgUpโ BSpcโ  โ  โ Del โ PgDnโ     โ     โ     โ     โ  7  โ  8  โ  9  โ  +  โ   โ   โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โโโโโโโโโผโโโโโโผโโโโโโผโโโโโโโโโโโโ
โโโโโโค     โ     โ     โโโโโโโโโโโโโ
โโโโโโผโโโโโโผโโโโโโผโโโโโโโโค
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โ       โ Homeโ  โ  โ  โ  โ  โ  โ End โโโโโโโค     โโโโโโโค     โ  4  โ  5  โ  6  โ  ,  โ   .   โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โโโโโโโโโผโโโโโโผโโโโโโผโโโโโโโโโโโโโโโโโโค(TL2)โ     โ(TL3)โโโโโโโโโโโโโโโโโโโผโโโโโโผโโโโโโผโโโโโโโโค
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โ       โ Esc โ Tab โ Ins โ Ret โ Undoโ     โ     โ     โ     โ  1  โ  2  โ  3  โ     โ       โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 * โโโฌโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโดโโโโโโ     โโโโโโโดโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโผโโโโโโฌโโ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *   โ     โ     โ(MO1)โ     โ(MO4)โ                             โ(MO4)โ     โ(MO1)โ     โ     โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *   โโโโโโโดโโโโโโดโโโโโโดโโโโโโดโโโโโโ โโโโโโโฌโโโโโโ โโโโโโโฌโโโโโโ โโโโโโโดโโโโโโดโโโโโโดโโโโโโดโโโโโโ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                                   โ     โ     โ โ     โ     โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                             โโโโโโโผโโโโโโผโโโโโโค โโโโโโโผโโโโโโผโโโโโโ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                             โ     โ     โ     โ โ     โ     โ     โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                             โ     โ     โโโโโโโค โโโโโโโค     โ     โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                             โ     โ     โ     โ โ     โ     โ     โ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 *                             โโโโโโโดโโโโโโดโโโโโโ โโโโโโโดโโโโโโดโโโโโโ
 | 
						
						
						
						
							 | 
							
								 | 
							
							 */
 | 
						
						
						
						
							 | 
							
								 | 
							
							[NHL] = KEYMAP(
 | 
						
						
						
						
							 | 
							
								 | 
							
							        // left hand
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_NO,      KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_NO,      KC_PGUP,KC_BSPC,KC_UP,  KC_DELT,KC_PGDN,KC_NO,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_NO,      KC_HOME,KC_LEFT,KC_DOWN,KC_RGHT,KC_END,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_NO,      KC_ESC, KC_TAB, KC_INS, KC_ENT, KC_UNDO,KC_TRNS,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_NO,      KC_NO,  KC_TRNS,KC_NO,  KC_TRNS,
 | 
						
						
						
						
							 | 
							
								 | 
							
							                                                    KC_NO,      KC_NO,
 | 
						
						
						
						
							 | 
							
								 | 
							
							                                                                KC_NO,
 | 
						
						
						
						
							 | 
							
								 | 
							
							                                            KC_NO,  KC_NO,      KC_NO,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        // right hand
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_NO,      KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_NO,      KC_NO,  KC_7,   KC_8,   KC_9,   DE_PLUS,DE_MINS,
 | 
						
						
						
						
							 | 
							
								 | 
							
							                    KC_NO,  KC_4,   KC_5,   KC_6,   KC_COMM,KC_DOT,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_TRNS,    KC_NO,  KC_1,   KC_2,   KC_3,   KC_NO,  KC_NO,
 | 
						
						
						
						
							 | 
							
								 | 
							
							                            KC_TRNS,KC_NO,  KC_TRNS,KC_NO,  KC_NO,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_NO,      KC_NO,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_NO,
 | 
						
						
						
						
							 | 
							
								 | 
							
							        KC_NO,      KC_NO,  KC_NO
 | 
						
						
						
						
							 | 
							
								 | 
							
							    ),
 | 
						
						
						
						
							 | 
							
								 | 
							
							};
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							const uint16_t PROGMEM fn_actions[] = {
 | 
						
						
						
						
							 | 
							
								 | 
							
							    [BASE] = ACTION_FUNCTION(BASE),
 | 
						
						
						
						
							 | 
							
								 | 
							
							    [PMQ]  = ACTION_FUNCTION(PMQ),
 | 
						
						
						
						
							 | 
							
								 | 
							
							    [PMN]  = ACTION_FUNCTION(PMN),
 | 
						
						
						
						
							 | 
							
								 | 
							
							    [FMU]  = ACTION_LAYER_TAP_TOGGLE(FMU),
 | 
						
						
						
						
							 | 
							
								 | 
							
							    [NHL]  = ACTION_LAYER_TAP_TOGGLE(NHL)
 | 
						
						
						
						
							 | 
							
								 | 
							
							};
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
						
						
						
						
							 | 
							
								 | 
							
							{
 | 
						
						
						
						
							 | 
							
								 | 
							
							    // MACRODOWN only works in this function
 | 
						
						
						
						
							 | 
							
								 | 
							
							    switch(id) {
 | 
						
						
						
						
							 | 
							
								 | 
							
							        case 0:
 | 
						
						
						
						
							 | 
							
								 | 
							
							            if (record->event.pressed) {
 | 
						
						
						
						
							 | 
							
								 | 
							
							                register_code(KC_RSFT);
 | 
						
						
						
						
							 | 
							
								 | 
							
							            }
 | 
						
						
						
						
							 | 
							
								 | 
							
							            else {
 | 
						
						
						
						
							 | 
							
								 | 
							
							                unregister_code(KC_RSFT);
 | 
						
						
						
						
							 | 
							
								 | 
							
							            }
 | 
						
						
						
						
							 | 
							
								 | 
							
							        break;
 | 
						
						
						
						
							 | 
							
								 | 
							
							    }
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							    return MACRO_NONE;
 | 
						
						
						
						
							 | 
							
								 | 
							
							};
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// Runs just one time when the keyboard initializes.
 | 
						
						
						
						
							 | 
							
								 | 
							
							void matrix_init_user(void) {
 | 
						
						
						
						
							 | 
							
								 | 
							
							};
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							// Runs constantly in the background, in a loop.
 | 
						
						
						
						
							 | 
							
								 | 
							
							void matrix_scan_user(void)
 | 
						
						
						
						
							 | 
							
								 | 
							
							{
 | 
						
						
						
						
							 | 
							
								 | 
							
							    uint8_t layer = biton32(layer_state);
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							    ergodox_board_led_off();
 | 
						
						
						
						
							 | 
							
								 | 
							
							    ergodox_right_led_1_off();
 | 
						
						
						
						
							 | 
							
								 | 
							
							    ergodox_right_led_2_off();
 | 
						
						
						
						
							 | 
							
								 | 
							
							    ergodox_right_led_3_off();
 | 
						
						
						
						
							 | 
							
								 | 
							
							    switch (layer) {
 | 
						
						
						
						
							 | 
							
								 | 
							
							        case FMU:
 | 
						
						
						
						
							 | 
							
								 | 
							
							            ergodox_right_led_1_on();
 | 
						
						
						
						
							 | 
							
								 | 
							
							        break;
 | 
						
						
						
						
							 | 
							
								 | 
							
							        case PMQ:
 | 
						
						
						
						
							 | 
							
								 | 
							
							            ergodox_right_led_2_on();
 | 
						
						
						
						
							 | 
							
								 | 
							
							        break;
 | 
						
						
						
						
							 | 
							
								 | 
							
							        case PMN:
 | 
						
						
						
						
							 | 
							
								 | 
							
							            ergodox_right_led_3_on();
 | 
						
						
						
						
							 | 
							
								 | 
							
							        break;
 | 
						
						
						
						
							 | 
							
								 | 
							
							        default:
 | 
						
						
						
						
							 | 
							
								 | 
							
							            if(host_keyboard_leds() & (1<<USB_LED_SCROLL_LOCK)) {
 | 
						
						
						
						
							 | 
							
								 | 
							
							                ergodox_led_all_set(LED_BRIGHTNESS_HI);
 | 
						
						
						
						
							 | 
							
								 | 
							
							                ergodox_right_led_1_on();
 | 
						
						
						
						
							 | 
							
								 | 
							
							            }
 | 
						
						
						
						
							 | 
							
								 | 
							
							            else {
 | 
						
						
						
						
							 | 
							
								 | 
							
							                ergodox_board_led_off();
 | 
						
						
						
						
							 | 
							
								 | 
							
							            }
 | 
						
						
						
						
							 | 
							
								 | 
							
							        break;
 | 
						
						
						
						
							 | 
							
								 | 
							
							    }
 | 
						
						
						
						
							 | 
							
								 | 
							
							
 | 
						
						
						
						
							 | 
							
								 | 
							
							};
 |