]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/mitosis/keymaps/nzen/keymap.c
Mitosis refactor and Configurator support (#3271)
[qmk_firmware.git] / keyboards / mitosis / keymaps / nzen / keymap.c
1
2
3 #include QMK_KEYBOARD_H
4
5 enum mitosis_layers
6 {
7         _QWERTY,
8         _WORKMAN,
9         _NUMBERS,
10         _PUNCT,
11         _MOUSE,
12         _LAYERS,
13         _GAMING,
14         _UNICODE,
15         _NUMPAD
16 };
17
18
19 //Mousekeys
20 #define MOUSEKEY_DELAY 300
21 #define MOUSEKEY_INTERNAL 50
22 #define MOUSEKEY_MAX_SPEED 20
23 #define MOUSEKEY_TIME_TO_MAX 30
24 #define MOUSEKEY_WHEEL_MAX_SPEED 8
25 #define MOUSEKEY_WHEEL_TIME_TO_MAX 40
26
27 // Fillers to make layering more clear
28 #define _______ KC_TRNS
29 #define XXX KC_NO
30
31 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
32   // https://github.com/nhou7/qmk_firmware_amj40/blob/master/doc/keycode.txt
33   /* QWERTY
34   ['Q', 'W', 'E', 'R', 'T',// 'Y', 'U', 'I', 'O', 'P' ],
35   ['A', 'S', 'D', 'F', 'G',// 'H', 'J', 'K', 'L', '; :' ],
36   ['Z', 'X', 'C', 'V', 'B',// 'N', 'M', ', <', '. >', '\' "' ],
37   [  'back', 'del', 'ctrl', 'L_n',// 'L_p', 'ctrl', 'ent', 'back',  ],
38   [  'alt', '0', 'shif', 'spac',// 'spac', 'shif', 'cap', 'alt',  ]
39    */
40   [_QWERTY] = LAYOUT(
41     KC_Q,      KC_W,      KC_E,      KC_R,      KC_T,     KC_Y,      KC_U,        KC_I,        KC_O,   KC_P,
42     KC_A,      KC_S,      KC_D,      KC_F,      KC_G,     KC_H,      KC_J,        KC_K,        KC_L,   KC_SCOLON,
43     KC_Z,      KC_X,      KC_C,      KC_V,      KC_B,     KC_N,      KC_M,        KC_COMM,     KC_DOT, KC_QUOTE,
44                KC_BSPACE, KC_DELETE, KC_LCTRL,  TG( 2 ),  TG( 3 ),   KC_RCTRL,    KC_ENTER,    KC_BSPACE,
45                KC_LALT,   KC_0,      KC_LSHIFT, KC_SPACE, KC_SPACE,  KC_RSHIFT,   KC_CAPSLOCK, KC_RALT
46   ),
47   /*
48   ['Q', 'D', 'R', 'W', 'B',/ ** / 'J', 'F', 'U', 'P', '; :' ],
49   ['A', 'S', 'H', 'T', 'G',/ ** / 'Y', 'N', 'E', 'O', 'I' ],
50   ['Z', 'X', 'M', 'C', 'V',/ ** / 'K', 'L', ', <', '. >', '\' "' ],
51   [ '', '', '', '',/ ** / '', '', '', '',  ],
52   [ '', '4', '', '',/ ** / '', '', '', '',  ]
53    */
54   [_WORKMAN] = LAYOUT(
55     KC_Q, KC_D,    KC_R,    KC_W,    KC_B,    KC_J,    KC_F,    KC_U,     KC_P,    KC_SCOLON,
56     KC_A, KC_S,    KC_H,    KC_T,    KC_G,    KC_Y,    KC_N,    KC_E,     KC_O,    KC_I,
57     KC_Z, KC_X,    KC_M,    KC_C,    KC_V,    KC_K,    KC_L,    KC_COMMA, KC_DOT,  KC_QUOTE,
58           _______, _______, _______, _______, _______, _______, _______,  _______,
59           _______, KC_1,    _______, _______, _______, _______, _______,  _______
60   ),
61   /*
62   ['9', '8', '7', '6', '5',/ ** / 'F2', 'pDn', *up* /, '*tab* /, 'pUp' ],
63   [' 4', ' 3', ' 2', ' 1', ' 0',/ ** / 'home', *lf* /, '*dn* /, *rt* /, 'end' ],
64   ['undo', 'cut', 'copy', 'paste', 'os',/ ** / 'D', '_', ',', '-', '.' ],
65   // --
66   [ '', '', '', 'L_=6',/ ** / 'L_7', '', '', '',  ],
67   [ '', '6', '', '',/ ** / '', '', '', '',  ]
68    */
69   [_NUMBERS] = LAYOUT(
70     KC_9,       KC_8,       KC_7,       KC_6,       KC_5,    KC_F2,   KC_PGDOWN,     KC_UP,    KC_TAB,   KC_PGUP,
71     KC_4,       KC_3,       KC_2,       KC_1,       KC_0,    KC_HOME, KC_LEFT,       KC_DOWN,  KC_RIGHT, KC_END,
72     LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_LGUI, KC_D,    KC_UNDERSCORE, KC_COMMA, KC_MINUS, KC_DOT,
73                 _______,    _______,    _______,    TG( 2 ), TG( 3 ), _______,       _______,  _______,
74                 _______,    KC_2,       _______,    _______, _______, _______,       _______,  _______
75   ),
76   /*
77   [ '#', '@', '&', '.', ';',/ ** / '_', ',', '|', '^', '%' ],
78   [ '*', '+', '{', '(', ':',/ ** / '"', ')', '}', '-', '=' ],
79   [ '\\', '?', '<', '[', '$',/ ** / '~', ']', '>', '!', '/' ],
80   // --
81   ['', '', '', 'L_8',/ ** / 'L_=7', '', '', '',  ],
82   ['', '7', '', '',/ ** / '', '', '', '',  ]
83    */
84   [_PUNCT] = LAYOUT(
85     KC_HASH,     KC_AT,       KC_AMPERSAND, KC_DOT,      KC_SCOLON, KC_UNDERSCORE, KC_COMMA,    KC_PIPE, KC_CIRCUMFLEX, KC_PERCENT,
86     KC_ASTERISK, KC_PLUS,     KC_LCBR,      KC_LPRN,     KC_COLON,  KC_DQUO,       KC_RPRN,     KC_RCBR, KC_MINUS,      KC_EQUAL,
87     KC_BSLASH,   KC_QUESTION, KC_LT,        KC_LBRACKET, KC_DOLLAR, KC_TILDE,      KC_RBRACKET, KC_GT,   KC_EXCLAIM,    KC_SLASH,
88                  _______,     _______,      _______,     TG( 4 ),   TG( 3 ),       _______,     _______, _______,
89                  _______,     KC_3,         _______,     _______,   _______,       _______,     _______, _______
90   ),
91   /*
92   ['F6', 'F7', 'F8', 'F9', 'F10',/ ** / 'app', 'mb1', 'mmU', 'mb2', 'mwU' ],
93   ['F1', 'F2', 'F3', 'F4', 'F5',/ ** / 'mnu', 'mmL', 'mmD', 'mmR', 'mwD' ],
94   ['F11', 'F12', '`', 'mute', 'ESC',/ ** / 'prtSc', 'scrLk', 'mwL', 'mwR', 'mb3' ],
95   // --
96   [ '', '', '', 'L_=8',/ ** / 'L_9', '', '', '',  ],
97   [ '', '8', '', '',/ ** / '', '', '', '',  ]
98    */
99   [_MOUSE] = LAYOUT(
100     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,
101     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,
102     KC_F11, KC_F12,  KC_GRAVE, KC__MUTE, KC_ESCAPE, KC_PSCREEN, KC_SLCK,    KC_MS_WH_LEFT, KC_MS_WH_RIGHT, KC_MS_BTN3,
103             _______, _______,  _______,  TG( 4 ),   TG( 5 ),    _______,    _______,       _______,
104             _______, KC_4,     _______,  _______,   _______,    _______,    _______,       _______
105   ),
106   /*
107   ['L_ma1', '!', 'L_dv2', '!', 'L_cl3',/ ** / 'L_wk4', '!', 'L_ar5', '!', '!' ],
108   ['!', '!', '!', '!', '!',/ ** / '!', '!', '!', '!', '!' ],
109   ['L_gmA', '!', 'L_ucB', '!', 'L_npC',/ ** / '!', '!', '!', '!', '!' ],
110   // --
111   [ '', '', '', 'L_=9',/ ** / 'L_=9', '', '', '',  ],
112   [ '', '9', '', '',/ ** / '', '', '', '',  ]
113    */
114   [_LAYERS] = LAYOUT(
115     KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, TG( 1 ),    KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM,
116     KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM,
117     TG( 6 ),    KC_EXCLAIM, TG( 7 ),    KC_EXCLAIM, TG( 8 ),    KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM,
118                 _______,    _______,    _______,    TG( 5 ),    TG( 5 ),    _______,    _______,    _______,
119                 _______,    KC_5,       _______,    _______,    _______,    _______,    _______,    _______
120   ),
121   /*
122   ['Q', 'W', 'E', 'R', 'T',/ ** / 'P', 'Y', '\u2191'*up* /, 'K', '1' ],
123   ['A', 'S', 'D', 'F', 'G',/ ** / 'H', '\u2190'*lf* /, '\u2193'*dn* /, '\u2192'*rt* /, '2' ],
124   ['Z', 'X', 'C', 'V', 'B',/ ** / 'M', '*', '*', '*', '3' ],
125   // --
126   [ '', '', '', 'L_=A',/ ** / 'A', '', '', '',  ],
127   [ '', 'A', '', '',/ ** / '', '', '', '',  ]
128    */
129   [_GAMING] = LAYOUT(
130     KC_Q, KC_W,    KC_E,    KC_R,    KC_T,    KC_P,    KC_Y,        KC_UP,       KC_K,        KC_1,
131     KC_A, KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_LEFT,     KC_DOWN,     KC_RIGHT,    KC_2,
132     KC_Z, KC_X,    KC_C,    KC_V,    KC_B,    KC_M,    KC_ASTERISK, KC_ASTERISK, KC_ASTERISK, KC_3,
133           _______, _______, _______, TG( 6 ), KC_6,    _______,     _______,     _______,
134           _______, KC_6,    _______, _______, _______, _______,     _______,     _______
135   ),
136   /*
137   ['\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* / ],
138   ['\u00F1'n~* /, '\u00a9'&copy* /, '\u00b0'degrees* /, '\u00b1'+-* /, '\u2b0f'arrow up* /,/ ** / '\u2523'box ml* /, '\u254B'box mm* /, '\u252B'box mr* /, '\u0394'delta* /, '\u2019'sm'up* / ],
139   ['\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* / ],
140   // --
141   [ '', '', '', 'L_=B',/ ** / 'B', '', '', '',  ],
142   [ '', 'B', '', '',/ ** / '', '', '', '',  ]
143    */
144   [_UNICODE] = LAYOUT(
145     UC(0x00A2), UC(0x00BC), UC(0x00BD), UC(0x03A3), UC(0x00D8), UC(0x250F), UC(0x2533), UC(0x2513), UC(0x03BB), UC(0x2018),
146     UC(0x00F1), UC(0x00A9), UC(0x00B0), UC(0x00B1), UC(0x2B0F), UC(0x2523), UC(0x254B), UC(0x252B), UC(0x0394), UC(0x2019),
147     UC(0x00A1), UC(0x00BF), UC(0x00D7), UC(0x00F7), UC(0x03C0), UC(0x2517), UC(0x253B), UC(0x251B), UC(0x201C), UC(0x201D),
148                 _______,    _______,    _______,    TG( 7 ),    KC_7,       _______,    _______,    _______,
149                 _______,    KC_7,       _______,    _______,    _______,    _______,    _______,    _______
150   ),
151   /*
152   ['n-.', 'n-7', 'n-8', 'n-9', 'n--',/ ** / 'n-=', 'volU', 'volD', 'volU', 'volD' ],
153   ['n-0', 'n-4', 'n-5', 'n-6', 'n-+',/ ** / 'N-lck', 'BACK', 'MUTE', 'RGUI', 'paus' ],
154   ['n -*', 'n-1', 'n-2', 'n-3', 'n-/',/ ** / 'n-ent', 'PLAY', 'PREV', 'NEXT', 'insr' ],
155   // --
156   [ '', '', '', 'L_=C',/ ** / 'C', '', '', '',  ],
157   [ '', 'C', '', '',/ ** / '', '', '', '',  ]
158    */
159   [_NUMPAD] = LAYOUT(
160     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__VOLUP,           KC__VOLDOWN,
161     KC_KP_0,        KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS,  KC_NUMLOCK,  KC_WWW_BACK,         KC_AUDIO_MUTE,       KC_RGUI,             KC_PAUSE,
162     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,
163                     _______, _______, _______, TG( 8 ),     KC_8,        _______,             _______,             _______,
164                     _______, KC_8,    _______, _______,     _______,     _______,             _______,             _______
165   )// ,
166   /*
167    * /
168   [_] = LAYOUT(
169     _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
170     _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
171     _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
172              _______, _______, _______, _______, _______, _______, _______, _______,
173              _______, _______, _______, _______, _______, _______, _______, _______
174   )
175    */
176 };
177
178 void matrix_scan_user(void) {
179     uint8_t layer = biton32(layer_state);
180
181     switch (layer) {
182         case _QWERTY:
183         case _WORKMAN:
184                 set_led_off;
185                 break;
186         case _NUMBERS:
187             set_led_blue;
188             break;
189         case _PUNCT:
190             set_led_red;
191             break;
192         case _MOUSE:
193             set_led_green;
194             break;
195         case _LAYERS:
196             set_led_yellow;
197             break;
198         case _UNICODE:
199             set_led_cyan;
200             break;
201         default:
202             break;
203    }
204 };
205
206 void matrix_init_user(void) {
207         set_unicode_input_mode(UC_LNX); // or UC_WINC
208 };
209
210