summaryrefslogtreecommitdiffstats
path: root/keyboards/mitosis/keymaps
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/mitosis/keymaps')
-rw-r--r--keyboards/mitosis/keymaps/datagrok/keymap.c237
-rw-r--r--keyboards/mitosis/keymaps/nzen/keymap.c207
2 files changed, 444 insertions, 0 deletions
diff --git a/keyboards/mitosis/keymaps/datagrok/keymap.c b/keyboards/mitosis/keymaps/datagrok/keymap.c
new file mode 100644
index 0000000000..9a177a7b8d
--- /dev/null
+++ b/keyboards/mitosis/keymaps/datagrok/keymap.c
@@ -0,0 +1,237 @@
+#include QMK_KEYBOARD_H
+
+#ifdef AUDIO_ENABLE
+#include "audio.h"
+#ifdef DEFAULT_LAYER_SONGS
+extern float default_layer_songs[][16][2];
+#endif
+#endif
+
+enum mitosis_layers
+ {
+ _xQ, // qwerty
+ _xC, // colemak
+ _xD, // dvorak
+ _xW, // workman
+ _xS, // symbols
+ _xN, // numbers
+ _xF // functions
+ };
+
+enum mitosis_keycodes
+ {
+ KC_LAYO = SAFE_RANGE
+ };
+
+// Setting MITOSIS_DATAGROK_BOTTOMSPACE in rules.mk will swap the upper and
+// lower center four thumb-keys. See keymaps/datagrok/rules.mk.
+#ifdef MITOSIS_DATAGROK_BOTTOMSPACE
+#undef LAYOUT
+#define LAYOUT LAYOUT_bottomspace
+#endif
+
+// I don't use Japanese myself, but I've placed henkan 変換 and muhenkan 無変換
+// in my layout to act as left and right HYPER
+
+// Momentary tri-state layers. Mitosis default keymap does this too but employs
+// new keymappings and a bunch of conditional code. This simpler keymap
+// accomplishes it but with a small quirk: triggering both layers then releasing
+// one out-of-order will leave the tri-state triggered until the other is
+// released. Which doesn't bother me.
+
+// The weird /*,*/ comments are a hack to get slightly better automatic
+// tabulation in my editor.
+
+// We use Space Cadet SC_RSPC to get _ on right shift. See config.h for details.
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_xQ] = LAYOUT(
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
+ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_QUOT,
+ /*, */ KC_LGUI, KC_LCTL, MO(_xS), KC_BSPC, KC_SPC, MO(_xS), KC_RCTL, KC_RGUI,
+ /*, */ KC_INT4, KC_LALT, MO(_xN), LSFT_T(KC_TAB), SC_RSPC, MO(_xN), KC_RALT, KC_INT5),
+ [_xC] = LAYOUT(
+ KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,
+ KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_QUOT,
+ /*, */ _______, _______, _______, _______, _______, _______, _______, _______,
+ /*, */ _______, _______, _______, _______, _______, _______, _______, _______),
+ [_xD] = LAYOUT(
+ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L,
+ KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S,
+ KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z,
+ /*, */ _______, _______, _______, _______, _______, _______, _______, _______,
+ /*, */ _______, _______, _______, _______, _______, _______, _______, _______),
+ [_xW] = LAYOUT(
+ KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN,
+ KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I,
+ KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_QUOT,
+ /*, */ _______, _______, _______, _______, _______, _______, _______, _______,
+ /*, */ _______, _______, _______, _______, _______, _______, _______, _______),
+ [_xS] = LAYOUT(
+ KC_ESC, KC_GRV , KC_UP, KC_EQL , KC_TILD, KC_PLUS, KC_CIRC, KC_AMPR, KC_PERC, KC_MINS,
+ _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_PIPE, KC_AT, KC_DLR, KC_HASH, KC_ENT,
+ KC_BSLS, KC_LABK, KC_LCBR, KC_LPRN, KC_LBRC, KC_RBRC, KC_RPRN, KC_RCBR, KC_RABK, KC_SLSH,
+ /*, */ _______, _______, _______, KC_DEL, _______, _______, _______, _______,
+ /*, */ _______, _______, TT(_xF), _______, _______, TT(_xF), _______, _______),
+ [_xN] = LAYOUT(
+ KC_PSCR, KC_F7, KC_F8, KC_F9, KC_F10, KC_PPLS, KC_7, KC_8, KC_9, KC_PMNS,
+ KC_SCRL, KC_F4, KC_F5, KC_F6, KC_F11, KC_NUM, KC_4, KC_5, KC_6, KC_PENT,
+ KC_PAUS, KC_F1, KC_F2, KC_F3, KC_F12, KC_PAST, KC_1, KC_2, KC_3, KC_PSLS,
+ /*, */ _______, _______, TT(_xF), _______, _______, TT(_xF), KC_0, KC_DOT,
+ /*, */ _______, _______, _______, _______, _______, _______, _______, _______),
+ [_xF] = LAYOUT(
+ QK_BOOT, KC_INS, KC_PGUP, DB_TOGG, KC_VOLU, KC_PPLS, KC_P7, KC_P8, KC_P9, KC_PMNS,
+ CK_TOGG, KC_HOME, KC_PGDN, KC_END, KC_VOLD, KC_NUM, KC_P4, KC_P5, KC_P6, KC_PENT,
+ KC_LAYO, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_PAST, KC_P1, KC_P2, KC_P3, KC_PSLS,
+ /*, */ CK_UP, MU_TOGG, _______, _______, _______, _______, KC_P0, KC_PDOT,
+ /*, */ CK_DOWN, MU_NEXT, _______, _______, _______, _______, _______, _______),
+};
+const bool defaultlayers[] = {
+ [_xQ] = true,
+ [_xC] = true,
+ [_xD] = true,
+ [_xW] = true,
+ [_xS] = false,
+ [_xN] = false,
+ [_xF] = false,
+};
+const size_t defaultlayers_n = ARRAY_SIZE(defaultlayers);
+
+// New keycode KC_LAYO rotates between available default layers (for e.g.,
+// selecting a base layout). Shift+KC_LAYO makes the current one persistent.
+bool process_record_layout(uint16_t keycode, keyrecord_t *record) {
+ uint8_t default_layer;
+ uint8_t i;
+ #if defined(AUDIO_ENABLE)
+ float saved_song[][2] = SONG(COIN_SOUND);
+ #endif
+
+ if (keycode != KC_LAYO || !record->event.pressed) {
+ return true;
+ }
+
+ if (get_mods() & (MOD_BIT(KC_LSFT)|MOD_BIT(KC_RSFT))) { // shift pressed
+ // save default layer. whatever the current default layer is, store that
+ eeconfig_update_default_layer(default_layer_state);
+ #if defined(AUDIO_ENABLE)
+ PLAY_SONG(saved_song);
+ #endif
+ } else {
+ // rotate default layer.
+ // find the current default layer
+ default_layer = get_highest_layer(default_layer_state);
+ // find next valid default layer
+ for (i = 1; i < defaultlayers_n; i++) {
+ if (defaultlayers[(default_layer + i) % defaultlayers_n]) {
+ break;
+ }
+ }
+ if (i == defaultlayers_n) {
+ // we fell out of the loop without finding another default layer to switch
+ // to.
+ return false;
+ }
+ default_layer = (default_layer + i) % defaultlayers_n;
+ default_layer_set(1U<<default_layer);
+ led_set(host_keyboard_leds());
+ #if defined(AUDIO_ENABLE) && defined(DEFAULT_LAYER_SONGS)
+ PLAY_SONG(default_layer_songs[default_layer]);
+ #endif
+ }
+ return false;
+}
+
+// This is a hack to place <question mark> on <shift-comma> and <exclamation
+// mark> on <shift-period>, when using an operating system configured for a
+// US/qwerty layout.
+// cdeq = "comma dot exclamation question"
+bool comm_shifted = false;
+bool ques_shifted = false;
+bool process_record_cdeq(uint16_t keycode, keyrecord_t *record) {
+ uint8_t shifted;
+ uint16_t s_keycode;
+ bool *k_shifted;
+
+ switch (keycode) {
+ case KC_COMM:
+ s_keycode = KC_SLSH;
+ k_shifted = &comm_shifted;
+ break;
+ case KC_DOT:
+ s_keycode = KC_1;
+ k_shifted = &ques_shifted;
+ break;
+ default:
+ return true;
+ }
+
+ shifted = get_mods() & (MOD_BIT(KC_LSFT)|MOD_BIT(KC_RSFT));
+
+ // Keydown. If shift is currently pressed, register its alternate keycode.
+ if (record->event.pressed && shifted) {
+ *k_shifted = true;
+ register_code(s_keycode);
+ return false;
+ // Keyup. If shift was pressed back when the key was pressed, unregister
+ // its alternate keycode.
+ } else if (!(record->event.pressed) && *k_shifted) {
+ *k_shifted = false;
+ unregister_code(s_keycode);
+ return false;
+ // Otherwise, behave as normal.
+ } else {
+ return true;
+ }
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ return \
+ process_record_cdeq(keycode, record) && \
+ process_record_layout(keycode, record);
+}
+
+// Set the bits of A selected by MASK to the corresponding bits of B
+#define setbits(A, B, MASK) A = (A & (B | ~MASK)) | (B & MASK)
+
+void led_set_user(uint8_t usb_leds) {
+ // A simple (but technically inaccurate) model of the momentary layer state:
+ // Red layer active -> indicator = red
+ // Blue layer active -> indicator = blue
+ // Purple layer active -> indicator = purple
+ // the Pro Micro tx LED displays Num Lock status.
+ //
+ // Workman layout active -> indicator = green
+ // Workman red layer -> indicator = yellow (red + green)
+ // Workman blue layer -> indicator = cyan (blue + green)
+ // Workman purple layer -> indicator = white (red + blue + green)
+
+ // Bit # 7 6 5 4 3 2 1 0
+ // layer_state: [ | _xF | _xN | _xS | _xW | _xD | _xC | _xQ ]
+ // usb_led [ | | |kana |cmps |scrl |caps | num ]
+ // PORTB: [ NC | 10 | 9 | 8 | 14 | 16 | 15 |rxled]
+ // PORTC: [ NC | 5 | | | | | | ]
+ // PORTD: [ 6 | NC |txled| 4 | tx* | rx* | grn | p29 ]
+ // PORTE: [ | 7 | | | | | | ]
+ // PORTF: [ a0 | a1 | red | blu | | | NC | NC ]
+ //
+ // PD0 is connected to the pairing switch and p29 on the wireless module.
+ // PF0,PF1,PB7,PC7,PD6 are not broken out by the pro micro board. I don't understand why.
+ // PB1-PB6,PD4,PD5,PD6,PF6,PF7 are not connected to the Mitosis receiver
+ // board. Each may be connected to an LED by way of a resistor (4.7k to
+ // match the others) for a total of 14 additional indicators.
+
+ uint32_t portf_bits = \
+ ((layer_state|default_layer_state)&0b01100000)>>1 | \
+ ((layer_state|default_layer_state)&0b00010000)<<1 | \
+ ((layer_state|default_layer_state)&0b01000000)>>2;
+ uint32_t portd_bits = \
+ (usb_leds&0b1)<<5 | \
+ ((layer_state|default_layer_state)&0b1000)>>2;
+ // negated because for ports 0=LED on.
+ setbits(PORTF, ~portf_bits, 0b00110000);
+ setbits(PORTD, ~portd_bits, 0b00100010);
+}
+
+// vim: set sw=2 et:
diff --git a/keyboards/mitosis/keymaps/nzen/keymap.c b/keyboards/mitosis/keymaps/nzen/keymap.c
new file mode 100644
index 0000000000..07816067b4
--- /dev/null
+++ b/keyboards/mitosis/keymaps/nzen/keymap.c
@@ -0,0 +1,207 @@
+
+
+#include QMK_KEYBOARD_H
+
+enum mitosis_layers
+{
+ _QWERTY,
+ _WORKMAN,
+ _NUMBERS,
+ _PUNCT,
+ _MOUSE,
+ _LAYERS,
+ _GAMING,
+ _UNICODE,
+ _NUMPAD
+};
+
+
+//Mousekeys
+#define MOUSEKEY_DELAY 300
+#define MOUSEKEY_INTERNAL 50
+#define MOUSEKEY_MAX_SPEED 20
+#define MOUSEKEY_TIME_TO_MAX 30
+#define MOUSEKEY_WHEEL_MAX_SPEED 8
+#define MOUSEKEY_WHEEL_TIME_TO_MAX 40
+
+// Fillers to make layering more clear
+#define XXX KC_NO
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ // https://github.com/nhou7/qmk_firmware_amj40/blob/master/doc/keycode.txt
+ /* QWERTY
+ ['Q', 'W', 'E', 'R', 'T',// 'Y', 'U', 'I', 'O', 'P' ],
+ ['A', 'S', 'D', 'F', 'G',// 'H', 'J', 'K', 'L', '; :' ],
+ ['Z', 'X', 'C', 'V', 'B',// 'N', 'M', ', <', '. >', '\' "' ],
+ [ 'back', 'del', 'ctrl', 'L_n',// 'L_p', 'ctrl', 'ent', 'back', ],
+ [ 'alt', '0', 'shif', 'spac',// 'spac', 'shif', 'cap', 'alt', ]
+ */
+ [_QWERTY] = LAYOUT(
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
+ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_QUOTE,
+ KC_BSPC, KC_DELETE, KC_LCTL, TG( 2 ), TG( 3 ), KC_RCTL, KC_ENTER, KC_BSPC,
+ KC_LALT, KC_0, KC_LSFT, KC_SPACE, KC_SPACE, KC_RSFT, KC_CAPS, KC_RALT
+ ),
+ /*
+ ['Q', 'D', 'R', 'W', 'B',/ ** / 'J', 'F', 'U', 'P', '; :' ],
+ ['A', 'S', 'H', 'T', 'G',/ ** / 'Y', 'N', 'E', 'O', 'I' ],
+ ['Z', 'X', 'M', 'C', 'V',/ ** / 'K', 'L', ', <', '. >', '\' "' ],
+ [ '', '', '', '',/ ** / '', '', '', '', ],
+ [ '', '4', '', '',/ ** / '', '', '', '', ]
+ */
+ [_WORKMAN] = LAYOUT(
+ KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN,
+ KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I,
+ KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMMA, KC_DOT, KC_QUOTE,
+ _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, KC_1, _______, _______, _______, _______, _______, _______
+ ),
+ /*
+ ['9', '8', '7', '6', '5',/ ** / 'F2', 'pDn', *up* /, '*tab* /, 'pUp' ],
+ [' 4', ' 3', ' 2', ' 1', ' 0',/ ** / 'home', *lf* /, '*dn* /, *rt* /, 'end' ],
+ ['undo', 'cut', 'copy', 'paste', 'os',/ ** / 'D', '_', ',', '-', '.' ],
+ // --
+ [ '', '', '', 'L_=6',/ ** / 'L_7', '', '', '', ],
+ [ '', '6', '', '',/ ** / '', '', '', '', ]
+ */
+ [_NUMBERS] = LAYOUT(
+ KC_9, KC_8, KC_7, KC_6, KC_5, KC_F2, KC_PGDN, KC_UP, KC_TAB, KC_PGUP,
+ KC_4, KC_3, KC_2, KC_1, KC_0, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END,
+ LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_LGUI, KC_D, KC_UNDERSCORE, KC_COMMA, KC_MINUS, KC_DOT,
+ _______, _______, _______, TG( 2 ), TG( 3 ), _______, _______, _______,
+ _______, KC_2, _______, _______, _______, _______, _______, _______
+ ),
+ /*
+ [ '#', '@', '&', '.', ';',/ ** / '_', ',', '|', '^', '%' ],
+ [ '*', '+', '{', '(', ':',/ ** / '"', ')', '}', '-', '=' ],
+ [ '\\', '?', '<', '[', '$',/ ** / '~', ']', '>', '!', '/' ],
+ // --
+ ['', '', '', 'L_8',/ ** / 'L_=7', '', '', '', ],
+ ['', '7', '', '',/ ** / '', '', '', '', ]
+ */
+ [_PUNCT] = LAYOUT(
+ KC_HASH, KC_AT, KC_AMPERSAND, KC_DOT, KC_SCLN, KC_UNDERSCORE, KC_COMMA, KC_PIPE, KC_CIRCUMFLEX, KC_PERCENT,
+ KC_ASTERISK, KC_PLUS, KC_LCBR, KC_LPRN, KC_COLON, KC_DQUO, KC_RPRN, KC_RCBR, KC_MINUS, KC_EQUAL,
+ KC_BSLS, KC_QUESTION, KC_LT, KC_LBRC, KC_DOLLAR, KC_TILDE, KC_RBRC, KC_GT, KC_EXCLAIM, KC_SLASH,
+ _______, _______, _______, TG( 4 ), TG( 3 ), _______, _______, _______,
+ _______, KC_3, _______, _______, _______, _______, _______, _______
+ ),
+ /*
+ ['F6', 'F7', 'F8', 'F9', 'F10',/ ** / 'app', 'mb1', 'mmU', 'mb2', 'mwU' ],
+ ['F1', 'F2', 'F3', 'F4', 'F5',/ ** / 'mnu', 'mmL', 'mmD', 'mmR', 'mwD' ],
+ ['F11', 'F12', '`', 'mute', 'ESC',/ ** / 'prtSc', 'scrLk', 'mwL', 'mwR', 'mb3' ],
+ // --
+ [ '', '', '', 'L_=8',/ ** / 'L_9', '', '', '', ],
+ [ '', '8', '', '',/ ** / '', '', '', '', ]
+ */
+ [_MOUSE] = LAYOUT(
+ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_MENU, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_MS_WH_UP,
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MENU, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_DOWN,
+ KC_F11, KC_F12, KC_GRAVE, KC_MUTE, KC_ESCAPE, KC_PSCR, KC_SCRL, KC_MS_WH_LEFT, KC_MS_WH_RIGHT, KC_MS_BTN3,
+ _______, _______, _______, TG( 4 ), TG( 5 ), _______, _______, _______,
+ _______, KC_4, _______, _______, _______, _______, _______, _______
+ ),
+ /*
+ ['L_ma1', '!', 'L_dv2', '!', 'L_cl3',/ ** / 'L_wk4', '!', 'L_ar5', '!', '!' ],
+ ['!', '!', '!', '!', '!',/ ** / '!', '!', '!', '!', '!' ],
+ ['L_gmA', '!', 'L_ucB', '!', 'L_npC',/ ** / '!', '!', '!', '!', '!' ],
+ // --
+ [ '', '', '', 'L_=9',/ ** / 'L_=9', '', '', '', ],
+ [ '', '9', '', '',/ ** / '', '', '', '', ]
+ */
+ [_LAYERS] = LAYOUT(
+ KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, TG( 1 ), KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM,
+ KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM,
+ TG( 6 ), KC_EXCLAIM, TG( 7 ), KC_EXCLAIM, TG( 8 ), KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM,
+ _______, _______, _______, TG( 5 ), TG( 5 ), _______, _______, _______,
+ _______, KC_5, _______, _______, _______, _______, _______, _______
+ ),
+ /*
+ ['Q', 'W', 'E', 'R', 'T',/ ** / 'P', 'Y', '\u2191'*up* /, 'K', '1' ],
+ ['A', 'S', 'D', 'F', 'G',/ ** / 'H', '\u2190'*lf* /, '\u2193'*dn* /, '\u2192'*rt* /, '2' ],
+ ['Z', 'X', 'C', 'V', 'B',/ ** / 'M', '*', '*', '*', '3' ],
+ // --
+ [ '', '', '', 'L_=A',/ ** / 'A', '', '', '', ],
+ [ '', 'A', '', '',/ ** / '', '', '', '', ]
+ */
+ [_GAMING] = LAYOUT(
+ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_P, KC_Y, KC_UP, KC_K, KC_1,
+ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_LEFT, KC_DOWN, KC_RIGHT, KC_2,
+ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_M, KC_ASTERISK, KC_ASTERISK, KC_ASTERISK, KC_3,
+ _______, _______, _______, TG( 6 ), KC_6, _______, _______, _______,
+ _______, KC_6, _______, _______, _______, _______, _______, _______
+ ),
+ /*
+ ['\u00a2'cent* /, '\u00bc'1/4* /, '\u00bd'1/2* /, '\u03a3'sum* /, '\u00d8'Oslash* /,/ ** / '\u250f'box ul* /, '\u2533'box um* /, '\u2513'box ur* /, '\u03bb'lambda* /, '\u2018'sm'dn* / ],
+ ['\u00F1'n~* /, '\u00a9'&copy* /, '\u00b0'degrees* /, '\u00b1'+-* /, '\u2b0f'arrow up* /,/ ** / '\u2523'box ml* /, '\u254B'box mm* /, '\u252B'box mr* /, '\u0394'delta* /, '\u2019'sm'up* / ],
+ ['\u00a1'down !* /, '\u00bf'down ?* /, '\u00d7'mult x* /, '\u00f7'div/ * /, '\u03c0'pi* /,/ ** / '\u2517'box ll* /, '\u253b'bos lm* /, '\u251b'box lr* /, '\u201c'sm"dn* /, '\u201d'sm"up* / ],
+ // --
+ [ '', '', '', 'L_=B',/ ** / 'B', '', '', '', ],
+ [ '', 'B', '', '',/ ** / '', '', '', '', ]
+ */
+ [_UNICODE] = LAYOUT(
+ UC(0x00A2), UC(0x00BC), UC(0x00BD), UC(0x03A3), UC(0x00D8), UC(0x250F), UC(0x2533), UC(0x2513), UC(0x03BB), UC(0x2018),
+ UC(0x00F1), UC(0x00A9), UC(0x00B0), UC(0x00B1), UC(0x2B0F), UC(0x2523), UC(0x254B), UC(0x252B), UC(0x0394), UC(0x2019),
+ UC(0x00A1), UC(0x00BF), UC(0x00D7), UC(0x00F7), UC(0x03C0), UC(0x2517), UC(0x253B), UC(0x251B), UC(0x201C), UC(0x201D),
+ _______, _______, _______, TG( 7 ), KC_7, _______, _______, _______,
+ _______, KC_7, _______, _______, _______, _______, _______, _______
+ ),
+ /*
+ ['n-.', 'n-7', 'n-8', 'n-9', 'n--',/ ** / 'n-=', 'volU', 'volD', 'volU', 'volD' ],
+ ['n-0', 'n-4', 'n-5', 'n-6', 'n-+',/ ** / 'N-lck', 'BACK', 'MUTE', 'RGUI', 'paus' ],
+ ['n -*', 'n-1', 'n-2', 'n-3', 'n-/',/ ** / 'n-ent', 'PLAY', 'PREV', 'NEXT', 'insr' ],
+ // --
+ [ '', '', '', 'L_=C',/ ** / 'C', '', '', '', ],
+ [ '', 'C', '', '',/ ** / '', '', '', '', ]
+ */
+ [_NUMPAD] = LAYOUT(
+ KC_KP_DOT, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, KC_KP_EQUAL, KC_AUDIO_VOL_UP, KC_AUDIO_VOL_DOWN, KC_VOLU, KC_VOLD,
+ KC_KP_0, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, KC_NUM, KC_WWW_BACK, KC_AUDIO_MUTE, KC_RGUI, KC_PAUSE,
+ KC_KP_ASTERISK, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_SLASH, KC_KP_ENTER, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_PREV_TRACK, KC_MEDIA_NEXT_TRACK, KC_INSERT,
+ _______, _______, _______, TG( 8 ), KC_8, _______, _______, _______,
+ _______, KC_8, _______, _______, _______, _______, _______, _______
+ )// ,
+ /*
+ * /
+ [_] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______
+ )
+ */
+};
+
+void matrix_scan_user(void) {
+ uint8_t layer = get_highest_layer(layer_state);
+
+ switch (layer) {
+ case _QWERTY:
+ case _WORKMAN:
+ set_led_off;
+ break;
+ case _NUMBERS:
+ set_led_blue;
+ break;
+ case _PUNCT:
+ set_led_red;
+ break;
+ case _MOUSE:
+ set_led_green;
+ break;
+ case _LAYERS:
+ set_led_yellow;
+ break;
+ case _UNICODE:
+ set_led_cyan;
+ break;
+ default:
+ break;
+ }
+};
+
+void matrix_init_user(void) {
+ set_unicode_input_mode(UNICODE_MODE_LINUX); // or UNICODE_MODE_WINCOMPOSE
+};