1 from sortedcontainers import SortedDict
3 # Add all used Unicode symbols to this list.
4 # The key (e.g. "SNEK") is used in keymap.c for "enum", "unicode_map" and "keymaps", so it needs to be a valid C variable name.
5 # The key is also used in this file to define the layout, so use recognizeable names.
6 # The value (e.g. "0x1f40d") is used in keymap.c for "unicode_map" and to automatically generate the "ASCII"-art comments.
7 # When adding new Unicode names, use "0x1f40d" until you looked up the correct Unicode code point.
9 "SNEK": "0x1f40d", ## Error
146 "SHOGI_WD": "0x26c9",
164 "COMMON_T": "0x1d134",
165 "ALLA_BR": "0x1d135",
168 "HEARTS_W": "0x2661",
169 "SPADES_W": "0x2664",
171 "WHOLE_N": "0x1d15d",
173 "QUART_N": "0x1d15f",
174 "EIGHTH_N": "0x1d160",
177 "KNIGHT_W": "0x2658",
178 "BISHOP_W": "0x2657",
185 "PEDAL_UP": "0x1d1af",
187 "SHOGI_BD": "0x26ca",
189 "SPEAKER_UP": "0x1f50a",
190 "SPEAKER_TG": "0x1f507",
191 "SPEAKER_DN": "0x1f509",
195 "LOCK_OPEN": "0x1f513",
197 "BARLINE": "0x1d100",
198 "BARLINE_D": "0x1d101",
199 "BARLINE_FIN": "0x1d102",
203 "HEARTS_B": "0x2665",
204 "SPADES_B": "0x2660",
206 "WHOLE_P": "0x1d13b",
208 "QUART_P": "0x1d13d",
209 "EIGHTH_P": "0x1d13e",
212 "KNIGHT_B": "0x265e",
213 "BISHOP_B": "0x265d",
216 "REPEAT_S": "0x1d106",
217 "REPEAT_E": "0x1d107",
219 "DALSEGNO": "0x1d109",
230 "SETMINUS": "0x2216",
238 "IMPL_REV": "0x21d0",
255 "PR_SUBSET": "0x2282",
257 "SUBSET_REV": "0x2287",
258 "EMPTYSET": "0x2205",
260 "LEFT_CEIL": "0x2308",
263 "RIGHT_CEIL": "0x2309",
264 "LEFT_FLOOR": "0x230a",
268 "RIGHT_FLOOR": "0x230b",
276 "POWERSET": "0x1d4ab",
278 "INTEGRAL": "0x222b",
289 "INDICATOR": "0x1d7cf",
291 "HAMILTON": "0x210b",
294 "RIGHT_TACK": "0x22a2",
299 "LESS_LESS": "0x226a",
303 "GREAT_GREAT": "0x226b",
304 "TRIANGLE": "0x25b3",
309 "MINUS_OP": "0x2296",
311 "ISOMORPH": "0x2245",
317 "CIRC_MID": "0x2218",
320 "PLUS_MINUS": "0x00b1",
321 "MINUS_PLUS": "0x2213",
322 "LEFT_OUTER": "0x27d5",
323 "RIGHT_OUTER": "0x27d6",
324 "FULL_OUTER": "0x27d7",
326 "SQ_LS_EQ": "0x2291",
328 "PARALLEL": "0x2225",
329 "NOT_PARA": "0x2226",
330 "TIMES_OP": "0x2297",
334 # Add all used Keycodes to this list.
335 # The key (e.g. "a") is used in keymap.c to automatically generate the comments. The first 7 chars will show as a keycap legend.
337 # test cases (These are handled in generate_km.py within toKC() and toLgd(), so these definitions will be ignored.
338 # If you find "BAD" in your keymaps, then something went wrong.)
339 "a": "BAD", "A": "BAD", "0": "BAD",
341 "XXX": "XXXXXXX", "": "KC_TRNS",
342 "!": "S(KC_1)", "@": "S(KC_2)", "#": "S(KC_3)", "$": "S(KC_4)", "%": "S(KC_5)",
343 "^": "S(KC_6)", "&": "S(KC_7)", "*": "S(KC_8)", "(": "S(KC_9)", ")": "S(KC_0)",
344 "Enter": "KC_ENT", "Esc": "KC_ESC", "BSpace": "KC_BSPC", "Tab": "KC_TAB",
345 "Space": "KC_SPC", "-": "KC_MINS", "_": "S(KC_MINS)", "=": "KC_EQL",
346 "+": "S(KC_EQL)", "[": "KC_LBRC", "{": "S(KC_LBRC)", "]": "KC_RBRC",
347 "}": "S(KC_RBRC)", "\\": "KC_BSLS", "|": "S(KC_BSLS)", ";": "KC_SCLN",
348 ":": "S(KC_SCLN)", "'": "KC_QUOT", "\"": "S(KC_QUOT)", "`": "KC_GRV",
349 "~": "S(KC_GRV)", ",": "KC_COMM", "<": "S(KC_COMM)", ".": "KC_DOT",
350 ">": "S(KC_DOT)", "/": "KC_SLSH", "?": "S(KC_SLSH)", "Caps": "KC_CAPS",
351 "Pr Scr": "KC_PSCR", "Scr Lck": "KC_SLCK", "Pause": "KC_BRK", "Insert": "KC_INS", "SInsert": "SFT_T(KC_INS)",
352 "Home": "KC_HOME", "Pg Up": "KC_PGUP", "Del": "KC_DEL", "End": "KC_END",
353 "Pg Down": "KC_PGDN", "> Arrow": "KC_RIGHT", "< Arrow": "KC_LEFT",
354 "v Arrow": "KC_DOWN", "^ Arrow": "KC_UP",
355 # Keypad keycodes missing
356 "App": "KC_APP", "Menu": "KC_MENU",
357 # Command keycodes missing (Execute, Help, ..., Find)
358 # Basic Keycodes missing from Print Screen onwards, included as fallback
360 "RGui": "KC_RGUI", "LGui": "KC_LGUI", "LAlt": "KC_LALT", "RAlt": "KC_RALT", "LShift": "KC_LSFT", "LCtrl": "KC_LCTRL", "RCtrl": "KC_RCTRL",
361 "LShift(": "KC_LSPO", "RShift)": "KC_RSPC",
362 "L1_ENT": "LT(1, KC_ENT)", "LT6_SPC": "LT(6, KC_SPC)",
363 "CPg Dn": "CTL_T(KC_PGDN)", "CPg Up": "CTL_T(KC_PGUP)",
364 "S_Enter": "S(KC_ENT)", "S_Tab": "S(KC_TAB)", "Compose": "KC_ALGR",
366 "Vol 0": "KC_MUTE", "Vol +": "KC_VOLU", "Vol -": "KC_VOLD",
367 ">>|": "KC_MNXT", "|<<": "KC_MPRV", "play/ps": "KC_MPLY",
368 "Bri +": "KC_BRIU", "Bri -": "KC_BRID",
370 "_reset": "RESET", "_debug": "DEBUG", "_eep_re": "EEP_RST",
373 "Led 0": "BL_TOGG", "Led +": "BL_INC", "Led -": "BL_DEC", "Led ~": "BL_BRTG",
376 "OUT_AUTO": "OUT_AUTO", "OUT_USB": "OUT_USB", "OUT_BT": "OUT_BT",
377 # Layer Switching missing, Lx -> MO(x), Tx -> TG(x)
378 "qwertz": "DF(0)", "neo": "DF(2)",
380 "^ Mouse": "KC_MS_U", "v Mouse": "KC_MS_D", "< Mouse": "KC_MS_L",
381 "> Mouse": "KC_MS_R", "Mouse 1": "KC_BTN1", "Mouse 2": "KC_BTN2",
382 "Mouse 3": "KC_BTN3", "Mouse 4": "KC_BTN4", "Mouse 5": "KC_BTN5",
383 "^ Wheel": "KC_WH_U", "v Wheel": "KC_WH_D", "< Wheel": "KC_WH_L",
384 "> Wheel": "KC_WH_R", "acc0": "KC_ACL0", "acc1": "KC_ACL1",
386 # Modifiers missinng, add entry for each specific application
387 # Mod-Tap Keys missing, add entry for each specific application
388 "_Sh_swp": "LSFT_T(SH_TG)",
389 # RGB Lighting missing
390 # RGB Matrix Lighting missing
391 # Thermal Printer missing
392 # US ANSI Shifted Symbols done via S(), don't add KC_entries
393 # One Shot Keys missing
395 "_sp_swp": "SHT(KC_SPC)",
396 # Unicode support (via X()) included implicitly
397 # Switching Unicode Input Modes
398 "UC_win": "UC_M_WC", "UC_lnx": "UC_M_LN", "UC_osx": "UC_M_OS",
401 "altF4": "LALT(KC_F4)",
402 "Undo": "LCTL(KC_Z)", "Cut": "LCTL(KC_X)", "Copy": "LCTL(KC_C)", "Paste": "LCTL(KC_V)",
403 "< Tab": "LCTL(S(KC_TAB))", "> Tab": "LCTL(KC_TAB)",
404 "Tab x": "LCTL(KC_W)", "Tab n": "LCTL(KC_T)",
405 "Gui Tab": "LGUI_T(KC_TAB)", "< Gui": "LGUI_T(KC_LEFT)", "> Gui": "LGUI_T(KC_RIGHT)",
406 "C+A+Del": "LCTL(LALT(KC_DEL))", "Mic 0": "LCTL(KC_M)",
407 "Power": "KC_PWR", "Sleep": "KC_SLEP",
410 "Macro 1": "KC_1", "Macro 2": "KC_2", "Macro 3": "KC_3", "Macro 4": "KC_4", "Macro 5": "KC_5",
421 # These keys are repeated in all layers.
422 # Generate a keymap.c with the python script and refer to the "ASCII"-art comments, to see which positions this concerns.
423 # If you want to put different keycodes in these positions for different layers, you need to modify the python script by yourself.
424 static = ["NEO", "GREEK", "GREEK", "GREEK", "GREEK", "MOUSE"]
426 # mutex_layers = {"GREEK": 8, "GAME": 10, "MOUSE": 11}
431 ["Tab", "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "["],
432 ["LCtrl", "a", "s", "d", "f", "g", "h", "j", "k", "l", ";", "'"],
433 ["LShift(", "z", "x", "c", "v", "b", "n", "m", ",", ".", "/", "RShift)"],
434 ["MO2", "LGui", "LAlt", "TT2", "LT6_SPC", "TT4", "Enter", "Space", "TT2", "RAlt", "RGui", "RCtrl"],
439 ["Tab", "q", "w", "f", "p", "g", "j", "l", "u", "y", ";", "["],
440 ["LCtrl", "a", "r", "s", "t", "d", "h", "n", "e", "i", "o", "'"],
441 ["LShift(", "z", "x", "c", "v", "b", "k", "m", ",", ".", "/", "RShift)"],
442 ["MO2", "LGui", "LAlt", "TT2", "LT6_SPC", "TT4", "Enter", "Space", "TT2", "RAlt", "RGui", "RCtrl"],
447 ["`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "]"],
448 ["", "DF0", "DF1", "XXX", "XXX", "MO3", "4", "4", "5", "6", "-", "="],
449 ["", "XXX", "XXX", "XXX", "XXX", "MO5", "1", "1", "2", "3", "\\", ""],
450 ["TG2", "", "", "", "Del", "", "", "BSpace", "0", "", "", ""],
455 ["", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "XXX"],
456 ["", "XXX", "XXX", "XXX", "XXX", "MO3", "F4", "F4", "F5", "F6", "XXX", "XXX"],
457 ["", "XXX", "XXX", "XXX", "XXX", "XXX", "F1", "F1", "F2", "F3", "XXX", ""],
458 ["TG3", "", "", "", "", "", "F10", "F11", "F12", "", "", ""],
463 ["Esc", "Esc", "Tab x", "Tab n", "CPg Dn", "CPg Dn", "Pg Down", "Home", "^ Arrow", "Insert", "SInsert", "Esc"],
464 ["", "Caps", "< Gui", "Gui Tab", "> Gui", "> Gui", "< Arrow", "< Arrow", "v Arrow", "> Arrow", "End", "Pr Scr"],
465 ["", "XXX", "XXX", "XXX", "CPg Up", "CPg Up", "Pg Up", "XXX", "v Arrow", "XXX", "App", ""],
466 ["TG4", "", "", "", "Del", "", "", "BSpace", "", "", "", ""],
471 ["", "XXX", "play/ps", "Vol +", "Vol +", "XXX", "XXX", "XXX", "XXX", "XXX", "_reset", "Power"],
472 ["", "XXX", "|<<", "Vol 0", ">>|", "XXX", "XXX", "XXX", "XXX", "XXX", "XXX", "Sleep"],
473 ["", "XXX", "XXX", "Vol -", "Vol -", "MO5", "XXX", "XXX", "XXX", "XXX", "XXX", "XXX"],
474 ["TG5", "", "", "", "", "", "", "", "", "", "", ""],
479 ["", "acc1", "XXX", "XXX", "XXX", "XXX", "^ Wheel", "< Wheel", "^ Mouse", "> Wheel", "XXX", "XXX"],
480 ["", "acc2", "Mouse 3", "Mouse 2", "Mouse 1", "Mouse 1", "< Mouse", "< Mouse", "v Mouse", "> Mouse", "XXX", "XXX"],
481 ["", "acc0", "XXX", "XXX", "XXX", "XXX", "v Wheel", "XXX", "v Mouse", "XXX", "XXX", ""],
482 ["TG6", "", "", "", "", "", "", "", "", "", "", ""],