summaryrefslogtreecommitdiff
path: root/keyboards/ergodox/keymaps/coderkun_neo2
diff options
context:
space:
mode:
authorJosh Colbeck <skrymir@gmail.com>2017-02-21 20:31:16 -0600
committerJosh Colbeck <skrymir@gmail.com>2017-02-21 20:31:16 -0600
commite51001efcc3ff8b64f8264e8bd4c2dbea15f3364 (patch)
treebdf5a0a4b44d5e63ba1376b70d94f64c77f3c90c /keyboards/ergodox/keymaps/coderkun_neo2
parentc56693f858cb3409e4a68a8e65a1370c022a51ed (diff)
parent7ff41df32c29bca4e3a6efc3047b8fa93bb99b92 (diff)
downloadqmk_firmware-e51001efcc3ff8b64f8264e8bd4c2dbea15f3364.tar.gz
qmk_firmware-e51001efcc3ff8b64f8264e8bd4c2dbea15f3364.zip
Merge remote-tracking branch 'qmk/master'
Diffstat (limited to 'keyboards/ergodox/keymaps/coderkun_neo2')
-rw-r--r--keyboards/ergodox/keymaps/coderkun_neo2/Makefile3
-rw-r--r--keyboards/ergodox/keymaps/coderkun_neo2/keymap.c319
-rw-r--r--keyboards/ergodox/keymaps/coderkun_neo2/readme.md31
3 files changed, 353 insertions, 0 deletions
diff --git a/keyboards/ergodox/keymaps/coderkun_neo2/Makefile b/keyboards/ergodox/keymaps/coderkun_neo2/Makefile
new file mode 100644
index 0000000000..b0fe90ab1d
--- /dev/null
+++ b/keyboards/ergodox/keymaps/coderkun_neo2/Makefile
@@ -0,0 +1,3 @@
+SLEEP_LED_ENABLE = no
+UNICODE_ENABLE = yes
+COMMAND_ENABLE = no
diff --git a/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c b/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c
new file mode 100644
index 0000000000..aaf75d58f2
--- /dev/null
+++ b/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c
@@ -0,0 +1,319 @@
+#include "ergodox.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, UC(0x250C),UC(0x252C),UC(0x2510),UC(0x2500),UC(0x2502),KC_TRNS,
+ KC_TRNS, UC(0x251C),UC(0x253C),UC(0x2524),UC(0x2713),UC(0x2715),
+ KC_TRNS, UC(0x2514),UC(0x2534),UC(0x2518),UC(0x2194),UC(0x21D4),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) {
+ set_unicode_input_mode(UC_LNX);
+};
+
+
+// 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;
+ }
+
+};
+
+
+// Override Unicode start method to use NEO_U instead of KC_U
+void unicode_input_start (void) {
+ register_code(KC_LCTL);
+ register_code(KC_LSFT);
+ register_code(NEO_U);
+ unregister_code(NEO_U);
+ unregister_code(KC_LSFT);
+ unregister_code(KC_LCTL);
+};
+
+// Override method to use NEO_A instead of KC_A
+uint16_t hex_to_keycode(uint8_t hex)
+{
+ if (hex == 0x0) {
+ return KC_0;
+ } else if (hex < 0xA) {
+ return KC_1 + (hex - 0x1);
+ } else {
+ switch(hex) {
+ case 0xA:
+ return NEO_A;
+ case 0xB:
+ return NEO_B;
+ case 0xC:
+ return NEO_C;
+ case 0xD:
+ return NEO_D;
+ case 0xE:
+ return NEO_E;
+ case 0xF:
+ return NEO_F;
+ default:
+ return KC_NO;
+ }
+ }
+}
diff --git a/keyboards/ergodox/keymaps/coderkun_neo2/readme.md b/keyboards/ergodox/keymaps/coderkun_neo2/readme.md
new file mode 100644
index 0000000000..2a4d3a535b
--- /dev/null
+++ b/keyboards/ergodox/keymaps/coderkun_neo2/readme.md
@@ -0,0 +1,31 @@
+# coderkun’s Neo2 layout for the ErgoDox EZ
+
+The idea of this layout is to use it for [Neo2](http://www.neo-layout.org) but also provide layers to use QWERTZ with activated Neo driver and to use (basic) Neo when no driver is available (standard QWERTZ driver is active) (e. g. on other computers, in virtual machines) and to make heavily use of thumb keys.
+
+The main goal of the default layer is to provide a complete symmetric layout with each modifier equally placed for both hands (mirror, of course).
+
+It also features a layer for additional keys like F-keys (F1 – F12), some mouse keys and (hopefully in the near future) some useful Unicode symbols.
+
+
+## Layers
+
+0. Default layer for Neo2
+1. Poor man’s QWERTZ
+2. Poor man’s Neo
+3. F-keys, mouse keys und Unicode symbols
+4. Neo’s software layers 4 rebuilt in hardware
+
+
+## Build
+
+1. Enable Unicode in Makefile
+
+ ```
+ UNICODE_ENABLE = yes
+ ```
+2. Build as usual
+
+ ```
+ make clean
+ make KEYMAP=coderkun_neo2
+ ```