From 4493a05b74d8852222faa776d140233745114c53 Mon Sep 17 00:00:00 2001 From: Stan Gurenkov Date: Fri, 24 Sep 2021 13:05:29 -0400 Subject: [Keyboard] refactor signum30 (#14527) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan Co-authored-by: Stan Gurenkov --- keyboards/signum/3_0/config.h | 32 + keyboards/signum/3_0/elitec/config.h | 22 - keyboards/signum/3_0/elitec/elitec.h | 13 +- keyboards/signum/3_0/elitec/info.json | 64 -- .../3_0/elitec/keymaps/default/generate_km.py | 194 ------ .../signum/3_0/elitec/keymaps/default/keymap.c | 761 --------------------- .../3_0/elitec/keymaps/default/km_template.txt | 20 - .../signum/3_0/elitec/keymaps/default/layout.py | 495 -------------- .../signum/3_0/elitec/keymaps/default/readme.md | 24 - .../signum/3_0/elitec/keymaps/default/rules.mk | 1 - keyboards/signum/3_0/elitec/readme.md | 14 - keyboards/signum/3_0/elitec/rules.mk | 28 - keyboards/signum/3_0/info.json | 64 ++ .../signum/3_0/keymaps/default/generate_km.py | 194 ++++++ keyboards/signum/3_0/keymaps/default/keymap.c | 761 +++++++++++++++++++++ .../signum/3_0/keymaps/default/km_template.txt | 20 + keyboards/signum/3_0/keymaps/default/layout.py | 495 ++++++++++++++ keyboards/signum/3_0/keymaps/default/readme.md | 24 + keyboards/signum/3_0/keymaps/default/rules.mk | 1 + keyboards/signum/3_0/keymaps/sgurenkov/config.h | 45 ++ keyboards/signum/3_0/keymaps/sgurenkov/keymap.c | 128 ++++ keyboards/signum/3_0/keymaps/sgurenkov/rules.mk | 2 + keyboards/signum/3_0/readme.md | 15 + keyboards/signum/3_0/rules.mk | 28 + keyboards/signum/3_0/signum.c | 16 + keyboards/signum/3_0/signum.h | 33 + keyboards/signum/3_0/teensy/config.h | 23 + keyboards/signum/3_0/teensy/rules.mk | 1 + keyboards/signum/3_0/teensy/teensy.c | 16 + keyboards/signum/3_0/teensy/teensy.h | 19 + 30 files changed, 1918 insertions(+), 1635 deletions(-) create mode 100644 keyboards/signum/3_0/config.h delete mode 100644 keyboards/signum/3_0/elitec/info.json delete mode 100755 keyboards/signum/3_0/elitec/keymaps/default/generate_km.py delete mode 100644 keyboards/signum/3_0/elitec/keymaps/default/keymap.c delete mode 100644 keyboards/signum/3_0/elitec/keymaps/default/km_template.txt delete mode 100644 keyboards/signum/3_0/elitec/keymaps/default/layout.py delete mode 100644 keyboards/signum/3_0/elitec/keymaps/default/readme.md delete mode 100644 keyboards/signum/3_0/elitec/keymaps/default/rules.mk delete mode 100644 keyboards/signum/3_0/elitec/readme.md create mode 100644 keyboards/signum/3_0/info.json create mode 100755 keyboards/signum/3_0/keymaps/default/generate_km.py create mode 100644 keyboards/signum/3_0/keymaps/default/keymap.c create mode 100644 keyboards/signum/3_0/keymaps/default/km_template.txt create mode 100644 keyboards/signum/3_0/keymaps/default/layout.py create mode 100644 keyboards/signum/3_0/keymaps/default/readme.md create mode 100644 keyboards/signum/3_0/keymaps/default/rules.mk create mode 100644 keyboards/signum/3_0/keymaps/sgurenkov/config.h create mode 100644 keyboards/signum/3_0/keymaps/sgurenkov/keymap.c create mode 100644 keyboards/signum/3_0/keymaps/sgurenkov/rules.mk create mode 100644 keyboards/signum/3_0/readme.md create mode 100644 keyboards/signum/3_0/rules.mk create mode 100644 keyboards/signum/3_0/signum.c create mode 100644 keyboards/signum/3_0/signum.h create mode 100644 keyboards/signum/3_0/teensy/config.h create mode 100644 keyboards/signum/3_0/teensy/rules.mk create mode 100644 keyboards/signum/3_0/teensy/teensy.c create mode 100644 keyboards/signum/3_0/teensy/teensy.h (limited to 'keyboards/signum') diff --git a/keyboards/signum/3_0/config.h b/keyboards/signum/3_0/config.h new file mode 100644 index 0000000000..d0c3175d0f --- /dev/null +++ b/keyboards/signum/3_0/config.h @@ -0,0 +1,32 @@ +/* Copyright 2021 Stan Gurenkov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Troy Fletcher +#define PRODUCT Signum30 + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW diff --git a/keyboards/signum/3_0/elitec/config.h b/keyboards/signum/3_0/elitec/config.h index f86e6748a4..fdbfac3c93 100644 --- a/keyboards/signum/3_0/elitec/config.h +++ b/keyboards/signum/3_0/elitec/config.h @@ -2,29 +2,7 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xF1E7 -#define PRODUCT_ID 0x5163 -#define DEVICE_VER 0x0000 -#define MANUFACTURER troyfletcher -#define PRODUCT Signum - -/* mouse settings */ -#define MK_KINETIC_SPEED - -/* key matrix size */ -#define MATRIX_ROWS 4 -#define MATRIX_COLS 12 - /* key matrix pins */ #define MATRIX_ROW_PINS { D2, D1, F5, B5 } #define MATRIX_COL_PINS { B4, D7, D0, E6, D4, F6, F4, F7, B1, B3, C6, B2 } #define UNUSED_PINS - -#define DIODE_DIRECTION COL2ROW - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/signum/3_0/elitec/elitec.h b/keyboards/signum/3_0/elitec/elitec.h index d28d3d4769..7498fdcee3 100644 --- a/keyboards/signum/3_0/elitec/elitec.h +++ b/keyboards/signum/3_0/elitec/elitec.h @@ -1,15 +1,4 @@ #pragma once #include "quantum.h" - -#define LAYOUT_ortho_4x12( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ - K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ - K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 \ -) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ - { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \ - { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 } \ -} +#include "signum.h" diff --git a/keyboards/signum/3_0/elitec/info.json b/keyboards/signum/3_0/elitec/info.json deleted file mode 100644 index a3f14c480f..0000000000 --- a/keyboards/signum/3_0/elitec/info.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "keyboard_name": "Signum 3.0", - "url": "http://troyfletcher.net/", - "maintainer": "jceb", - "layouts": { - "LAYOUT_ortho_4x12": { - "layout": [ - - { "x": 0, "y": 0.5, "r": 15 }, - { "x": 1, "y": 0.5, "r": 15 }, - { "x": 2, "y": 0.25, "r": 15 }, - { "x": 3, "y": 0, "r": 15 }, - { "x": 4, "y": 0.25, "r": 15 }, - { "x": 5, "y": 0.5, "r": 15 }, - { "x": 9, "y": 0.5, "r": -15 }, - { "x": 10, "y": 0.25, "r": -15 }, - { "x": 11, "y": 0, "r": -15 }, - { "x": 12, "y": 0.25, "r": -15 }, - { "x": 13, "y": 0.5, "r": -15 }, - { "x": 14, "y": 0.5, "r": -15 }, - - { "x": 0, "y": 1.5, "r": 15 }, - { "x": 1, "y": 1.5, "r": 15 }, - { "x": 2, "y": 1.25, "r": 15 }, - { "x": 3, "y": 1, "r": 15 }, - { "x": 4, "y": 1.25, "r": 15 }, - { "x": 5, "y": 1.5, "r": 15 }, - { "x": 9, "y": 1.5, "r": -15 }, - { "x": 10, "y": 1.25, "r": -15 }, - { "x": 11, "y": 1, "r": -15 }, - { "x": 12, "y": 1.25, "r": -15 }, - { "x": 13, "y": 1.5, "r": -15 }, - { "x": 14, "y": 1.5, "r": -15 }, - - { "x": 0, "y": 2.5, "r": 15 }, - { "x": 1, "y": 2.5, "r": 15 }, - { "x": 2, "y": 2.25, "r": 15 }, - { "x": 3, "y": 2, "r": 15 }, - { "x": 4, "y": 2.25, "r": 15 }, - { "x": 5, "y": 2.5, "r": 15 }, - { "x": 9, "y": 2.5, "r": -15 }, - { "x": 10, "y": 2.25, "r": -15 }, - { "x": 11, "y": 2, "r": -15 }, - { "x": 12, "y": 2.25, "r": -15 }, - { "x": 13, "y": 2.5, "r": -15 }, - { "x": 14, "y": 2.5, "r": -15 }, - - { "x": 0, "y": 4, "r": 15 }, - { "x": 1, "y": 3.5, "r": 15 }, - { "x": 2, "y": 3.25, "r": 15 }, - { "x": 4, "y": 4.25, "r": 15, "h": 1.5 }, - { "x": 5, "y": 4, "r": 15, "h": 2 }, - { "x": 6, "y": 4.25, "r": 15, "h": 1.5 }, - { "x": 8, "y": 4.25, "r": -15, "h": 1.5 }, - { "x": 9, "y": 4, "r": -15, "h": 2 }, - { "x": 10, "y": 4.25, "r": -15, "h": 1.5 }, - { "x": 12, "y": 3.25, "r": -15 }, - { "x": 13, "y": 3.5, "r": -15 }, - { "x": 14, "y": 4, "r": -15 } - - ] - } - } -} diff --git a/keyboards/signum/3_0/elitec/keymaps/default/generate_km.py b/keyboards/signum/3_0/elitec/keymaps/default/generate_km.py deleted file mode 100755 index cfa8edf57a..0000000000 --- a/keyboards/signum/3_0/elitec/keymaps/default/generate_km.py +++ /dev/null @@ -1,194 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- - -import json -import layout -import os -import re - - -def gen_uc_iter(): - length = len(layout.uc_dict) - for key, value in sorted(layout.uc_dict.items()): - length -= 1 - if length: - yield (key, value, False) - else: - yield (key, value, True) - - -def _translate(s): - if re.match("^[0-9]$", s): - return ("KC_{0}".format(s), " {0} ".format(s)) - elif re.match("^[a-z]$", s): - return ("KC_{0}".format(s.upper()), " {0} ".format(s)) - elif re.match("^[A-Z]$", s): - return ("S(KC_{0})".format(s), " {0} ".format(s)) - elif re.match("^F[0-9]{1,2}$", s): # Fn, works from F0 to F99 - return ("KC_{0}".format(s), "{0:^7}".format(s)) - elif re.match("^DF[0-9]{1,2}$", s): # DFn, works from DF0 to DF99 - return ("DF({0})".format(s[2:]), "{0:^7}".format(s)) - elif re.match("^MO[0-9]{1,2}$", s): # MOn, works from MO0 to MO99 - return ("MO({0})".format(s[2:]), "{0:^7}".format(s)) - elif re.match("^OSL[0-9]{1,2}$", s): # OSLn, works from OSL0 to OSL99 - return ("OSL({0})".format(s[3:]), "{0:^7}".format(s)) - elif re.match("^TG[0-9]{1,2}$", s): # TGn, works from TG0 to TG99 - return ("TG({0})".format(s[2:]), "{0:^7}".format(s)) - elif re.match("^TO[0-9]{1,2}$", s): # Tn, works from TO0 to TO99 - return ("TO({0})".format(s[2:]), "{0:^7}".format(s)) - elif re.match("^TT[0-9]{1,2}$", s): # Tn, works from TT0 to TT99 - return ("TT({0})".format(s[2:]), "{0:^7}".format(s)) - elif s in layout.uc_dict: - return ("X("+s+")", " {0} ".format(chr(int(layout.uc_dict[s], 0)))) - elif s in layout.qmk_dict: - return (layout.qmk_dict[s], "{0:^7}".format(s)) - elif s == s.upper() and s.startswith("KC_"): - return (s, "{0:^7}".format(s[2:])) - else: - return ("XXXXXXX", " {0} ".format(chr(128165))) - - -def toKC(s): - return _translate(s)[0] - - -def toLgd(s): - return _translate(s)[1] - - -def quoteC(text): - yield "/*" - for line in text: - yield " * " + line - yield " */\n" - - -def getKeymapText(id, layer, columns, rows): - keymap = [] - keymap.append("Layer %d" % id) - keymap.append("------------------------------------------------- -------------------------------------------------") - keymap.append("|{0}|{1}|{2}|{3}|{4}|{5}| |{6}|{7}|{8}|{9}|{10}|{11}|".format(*map(toLgd, layer[:12]))) - keymap.append("------------------------------------------------- -------------------------------------------------") - keymap.append("|{0}|{1}|{2}|{3}|{4}|{5}| |{6}|{7}|{8}|{9}|{10}|{11}|".format(*map(toLgd, layer[12:24]))) - keymap.append("------------------------------------------------- -------------------------------------------------") - keymap.append("|{0}|{1}|{2}|{3}|{4}|{5}| |{6}|{7}|{8}|{9}|{10}|{11}|".format(*map(toLgd, layer[24:36]))) - keymap.append("-----------------------------------------------------------------------------------------------------------------") - keymap.append(" {0} {1} {2} |{3}|{4}|{5}|{6}|{7}|{8}| {9} {10} {11}".format(*map(toLgd, layer[36:48])).rstrip()) - keymap.append(" -------------------------------------------------") - return keymap - - -def writeKeymap(f_template, f_keymap, layers, columns, rows): - doCopy = False - - for line in f_template: - doCopy = True - if line.startswith("//"): - doCopy = False - # f_keymap.write(str(layout.uc_dict)) - for k, v, isLast in gen_uc_iter(): - if isLast: - f_keymap.write(k + "\n") - else: - f_keymap.write(k + ",\n") - elif line.startswith("//"): - doCopy = False - for k, v, isLast in gen_uc_iter(): - if isLast: - f_keymap.write(u"\t[{0}] = {1} // {2}\n".format(k, v, chr(int(v, 0)))) - else: - f_keymap.write(u"\t[{0}] = {1}, // {2}\n".format(k, v, chr(int(v, 0)))) - elif line.startswith("//"): - doCopy = False - for layer, L in enumerate(layers): - r_counter = rows - f_keymap.write('\n'.join(quoteC(getKeymapText(layer, L, columns, rows)))) - - l_code = '\tLAYOUT_ortho_4x12(\n' - for r in range(r_counter): - r_counter -= 1 - c_counter = columns - l_code += '\t\t' - for c in range(c_counter): - c_counter -= 1 - if c != 0: - l_code += " " - l_code += "%s" % toKC(L[r*columns + columns-c_counter-1]) - if r_counter or c_counter: - l_code += "," - l_code += '\n' - if layer + 1 != len(layout.layers): - l_code += "\t),\n\n" - else: - l_code += "\t)\n" - f_keymap.write(l_code) - if doCopy: - f_keymap.write(line) - - -def getKeymapJSON(keyboard, keymap, layout, layers): - return json.dumps({ - 'keyboard': keyboard, - 'keymap': keymap, - 'layout': layout, - 'layers': layers - }, sort_keys=True, indent=4) - - -def getKeymapAsciidoc(title, layers, columns, rows): - yield '= ' + title - yield '' - for id, layer in enumerate(layers): - keymap = getKeymapText(id, layer, columns, rows) - if len(keymap): - yield '.' + keymap[0] - yield '--------------------------' - for line in keymap[1:]: - yield ' ' + line - yield '--------------------------' - yield '' - - -def layersToKC(layers): - return [list(map(toKC, layer)) for layer in layers] - - -def pathToKeymap(path): - head, keymap = os.path.split(path) - _, keymapsdir = os.path.split(head) - if keymapsdir == 'keymaps': - return keymap - - -def pathToKeyboard(path): - head, keymap = os.path.split(path) - head, keymapsdir = os.path.split(head) - if keymapsdir == 'keymaps': - head, dir = os.path.split(head) - while dir not in ('/', 'keyboards'): - yield dir - head, dir = os.path.split(head) - - -if __name__ == "__main__": - with open("km_template.txt", mode="r") as f_template: - with open("keymap.c", mode="w", encoding='utf-8') as f_keymap: - writeKeymap(f_template, f_keymap, layout.layers, columns=12, rows=4) - - abspath = os.path.dirname(os.path.abspath(__file__)) - keyboard = list(reversed(list(pathToKeyboard(abspath)))) - keymap = pathToKeymap(abspath) - keyboard_layout = 'LAYOUT_ortho_4x12' - with open("%s_%s.json" % ('_'.join(keyboard), keymap), mode="w") as f_keymapjson: - f_keymapjson.write( - getKeymapJSON( - '/'.join(keyboard), - keymap, - keyboard_layout, - layersToKC(layout.layers)) - ) - - with open("keymap.adoc", mode="w") as f_keymapasciidoc: - f_keymapasciidoc.write('\n'.join(getKeymapAsciidoc('Signum 3.0 %s_%s' % ('_'.join(keyboard), keymap), layout.layers, columns=12, rows=4))) - print("Run the following command to generate a PDF from the keymap") - print("a2x -f pdf --xsltproc-opts '--stringparam page.orientation landscape --stringparam body.font.master 12' --fop -v keymap.adoc") diff --git a/keyboards/signum/3_0/elitec/keymaps/default/keymap.c b/keyboards/signum/3_0/elitec/keymaps/default/keymap.c deleted file mode 100644 index 15cf215305..0000000000 --- a/keyboards/signum/3_0/elitec/keymaps/default/keymap.c +++ /dev/null @@ -1,761 +0,0 @@ -/* keymap.c is auto-generated, don't edit it directly. - * Further instructions are provided in readme.md */ - -#include QMK_KEYBOARD_H - -enum unicode_name { -AB_ARC, -AB_LINE, -AB_VEC, -ACUTE, -AE, -ALEPH, -ALLA_BR, -ALPHA, -AND, -AND_, -ANGLE, -AST_MID, -A_SET, -BARLINE, -BARLINE_D, -BARLINE_FIN, -BETA, -BETH, -BICOND, -BIG_O, -BISHOP_B, -BISHOP_W, -BITCOIN, -BOTTOM, -BOWTIE, -BRA, -BULLET, -B_SET, -CENT, -CHI, -CIRCLE, -CIRC_MID, -CLUBS_B, -CLUBS_W, -CODA, -COMMON_T, -COPYR, -CORRESP, -CROSS, -CURRENCY, -C_CLEF, -C_SET, -DACAPO, -DALSEGNO, -DEFINE, -DEGREE, -DELTA, -DIAMS_B, -DIAMS_W, -DIGAMMA, -DIVISION, -DOTS, -DOT_OP, -DQT1, -DQT2, -DQT3, -DQT4, -DQT5, -EIGHTH_N, -EIGHTH_P, -EJECT, -EMBED, -EMDASH, -EMPTYSET, -EPSILON, -EQUIV, -ETA, -EURO, -EXISTS, -FEMALE, -FLAG_B, -FLAG_W, -FLAT, -FORALL, -FORWARD, -FOURIER, -FULL_OUTER, -F_CLEF, -F_SET, -GAMMA, -GREAT_GREAT, -GR_EQ, -G_CLEF, -HALF_N, -HALF_P, -HAMILTON, -HEARTS_B, -HEARTS_W, -HETA, -H_SET, -IMAG_P, -IMPL, -IMPL_REV, -IN, -INDICATOR, -INEQUAL, -INFO, -INFTY, -INTEGRAL, -INTERS, -INTERS_, -INV_EXCL, -INV_QST, -IOTA, -ISOMORPH, -KAPPA, -KET, -KEY, -KING_B, -KING_W, -KNIGHT_B, -KNIGHT_W, -KOPPA, -K_SET, -LAMBDA, -LAPLACE, -LEFT_CEIL, -LEFT_FLOOR, -LEFT_OUTER, -LENGTH, -LESS_LESS, -LETTER, -LOCK, -LOCK_OPEN, -LS_EQ, -LTIMES, -MALE, -MAPSTO, -MDOT, -MICRO, -MINUS_OP, -MINUS_PLUS, -MINUTE, -MODELS, -MY, -M_ANGLE, -NABLA, -NATURAL, -NO, -NOT, -NOTIN, -NOTSUBS, -NOT_DIV, -NOT_PARA, -NY, -N_SET, -N_TILDE, -OE, -OHM, -OMEGA, -OMIKRON, -OR, -OR_, -PARALLEL, -PARTIAL, -PAWN_B, -PAWN_W, -PEDAL, -PEDAL_UP, -PERMIL, -PHI, -PHONE, -PI, -PLAY, -PLUS_MINUS, -PLUS_OP, -POUND, -POWERSET, -PRED, -PROD_, -PROP_TO, -PR_SUBSET, -PSI, -QED, -QUART_N, -QUART_P, -QUEEN_B, -QUEEN_W, -Q_SET, -REAL_P, -REGTM, -REPEAT_E, -REPEAT_S, -REWIND, -RHO, -RIGHT_CEIL, -RIGHT_FLOOR, -RIGHT_OUTER, -RIGHT_TACK, -ROOK_B, -ROOK_W, -ROOT, -ROUGHLY, -RTIMES, -R_SET, -SAMPI, -SAN, -SCHO, -SECOND, -SECTION, -SEGNO, -SETMINUS, -SHARP, -SHOGI_B, -SHOGI_BD, -SHOGI_W, -SHOGI_WD, -SIGMA, -SIXT_N, -SIXT_P, -SNEK, -SPADES_B, -SPADES_W, -SPEAKER_DN, -SPEAKER_TG, -SPEAKER_UP, -SQT1, -SQT2, -SQT3, -SQT4, -SQT5, -SQUARE, -SQ_LS, -SQ_LS_EQ, -STAFF, -STIGMA, -STOP, -SUBSET, -SUBSET_REV, -SUCC, -SUM_, -SUP1, -SUP2, -SUP3, -SUP_A, -SUP_MIN, -SUP_O, -SZ, -TAU, -THETA, -TIMES, -TIMES_OP, -TMARK, -TO, -TOP, -TRIANGLE, -UE, -UNION, -UNION_, -U_SET, -WHOLE_N, -WHOLE_P, -XI, -YEN, -YES, -YPSI2, -YPSILON, -ZETA, -Z_SET, -ae, -alpha, -beta, -beta2, -chi, -delta, -digamma, -e_FUN, -epsi2, -epsilon, -eta, -gamma, -heta, -i_UNIT, -iota, -kappa, -kappa2, -koppa, -lambda, -my, -n_tilde, -ny, -oe, -omega, -omikron, -phi, -phi2, -pi, -pi2, -psi, -rho, -rho2, -sampi, -san, -scho, -sigma, -sigma2, -sigma3, -stigma, -sz, -tau, -theta, -theta2, -ue, -xi, -ypsilon, -zeta -}; - -const uint32_t PROGMEM unicode_map[] = { - [AB_ARC] = 0x0361, // ͡ - [AB_LINE] = 0x0305, // ̅ - [AB_VEC] = 0x20d7, // ⃗ - [ACUTE] = 0x00b4, // ´ - [AE] = 0x00c4, // Ä - [ALEPH] = 0x2135, // ℵ - [ALLA_BR] = 0x1d135, // 𝄵 - [ALPHA] = 0x0391, // Α - [AND] = 0x2227, // ∧ - [AND_] = 0x22c0, // ⋀ - [ANGLE] = 0x2220, // ∠ - [AST_MID] = 0x2217, // ∗ - [A_SET] = 0x1d538, // 𝔸 - [BARLINE] = 0x1d100, // 𝄀 - [BARLINE_D] = 0x1d101, // 𝄁 - [BARLINE_FIN] = 0x1d102, // 𝄂 - [BETA] = 0x0392, // Β - [BETH] = 0x2136, // ℶ - [BICOND] = 0x21d4, // ⇔ - [BIG_O] = 0x1d4aa, // 𝒪 - [BISHOP_B] = 0x265d, // ♝ - [BISHOP_W] = 0x2657, // ♗ - [BITCOIN] = 0x20bf, // ₿ - [BOTTOM] = 0x22a5, // ⊥ - [BOWTIE] = 0x22c8, // ⋈ - [BRA] = 0x27e8, // ⟨ - [BULLET] = 0x2022, // • - [B_SET] = 0x1d539, // 𝔹 - [CENT] = 0x00a2, // ¢ - [CHI] = 0x03a7, // Χ - [CIRCLE] = 0x25cb, // ○ - [CIRC_MID] = 0x2218, // ∘ - [CLUBS_B] = 0x2663, // ♣ - [CLUBS_W] = 0x2667, // ♧ - [CODA] = 0x1d10c, // 𝄌 - [COMMON_T] = 0x1d134, // 𝄴 - [COPYR] = 0x00a9, // © - [CORRESP] = 0x2259, // ≙ - [CROSS] = 0x2020, // † - [CURRENCY] = 0x00a4, // ¤ - [C_CLEF] = 0x1d121, // 𝄡 - [C_SET] = 0x2102, // ℂ - [DACAPO] = 0x1d10a, // 𝄊 - [DALSEGNO] = 0x1d109, // 𝄉 - [DEFINE] = 0x2254, // ≔ - [DEGREE] = 0x00b0, // ° - [DELTA] = 0x0394, // Δ - [DIAMS_B] = 0x2666, // ♦ - [DIAMS_W] = 0x2662, // ♢ - [DIGAMMA] = 0x03dc, // Ϝ - [DIVISION] = 0x00f7, // ÷ - [DOTS] = 0x2026, // … - [DOT_OP] = 0x2299, // ⊙ - [DQT1] = 0x00bb, // » - [DQT2] = 0x201e, // „ - [DQT3] = 0x201c, // “ - [DQT4] = 0x201d, // ” - [DQT5] = 0x00ab, // « - [EIGHTH_N] = 0x1d160, // 𝅘𝅥𝅮 - [EIGHTH_P] = 0x1d13e, // 𝄾 - [EJECT] = 0x23cf, // ⏏ - [EMBED] = 0x21aa, // ↪ - [EMDASH] = 0x2014, // — - [EMPTYSET] = 0x2205, // ∅ - [EPSILON] = 0x0395, // Ε - [EQUIV] = 0x2261, // ≡ - [ETA] = 0x0397, // Η - [EURO] = 0x20ac, // € - [EXISTS] = 0x2203, // ∃ - [FEMALE] = 0x2640, // ♀ - [FLAG_B] = 0x2691, // ⚑ - [FLAG_W] = 0x2690, // ⚐ - [FLAT] = 0x266d, // ♭ - [FORALL] = 0x2200, // ∀ - [FORWARD] = 0x23ed, // ⏭ - [FOURIER] = 0x2131, // ℱ - [FULL_OUTER] = 0x27d7, // ⟗ - [F_CLEF] = 0x1d122, // 𝄢 - [F_SET] = 0x1d53d, // 𝔽 - [GAMMA] = 0x0393, // Γ - [GREAT_GREAT] = 0x226b, // ≫ - [GR_EQ] = 0x2265, // ≥ - [G_CLEF] = 0x1d11e, // 𝄞 - [HALF_N] = 0x1d15e, // 𝅗𝅥 - [HALF_P] = 0x1d13c, // 𝄼 - [HAMILTON] = 0x210b, // ℋ - [HEARTS_B] = 0x2665, // ♥ - [HEARTS_W] = 0x2661, // ♡ - [HETA] = 0x0370, // Ͱ - [H_SET] = 0x210d, // ℍ - [IMAG_P] = 0x2111, // ℑ - [IMPL] = 0x21d2, // ⇒ - [IMPL_REV] = 0x21d0, // ⇐ - [IN] = 0x2208, // ∈ - [INDICATOR] = 0x1d7cf, // 𝟏 - [INEQUAL] = 0x2260, // ≠ - [INFO] = 0x1f6c8, // 🛈 - [INFTY] = 0x221e, // ∞ - [INTEGRAL] = 0x222b, // ∫ - [INTERS] = 0x2229, // ∩ - [INTERS_] = 0x22c2, // ⋂ - [INV_EXCL] = 0x00a1, // ¡ - [INV_QST] = 0x00bf, // ¿ - [IOTA] = 0x0399, // Ι - [ISOMORPH] = 0x2245, // ≅ - [KAPPA] = 0x039a, // Κ - [KET] = 0x27e9, // ⟩ - [KEY] = 0x1f511, // 🔑 - [KING_B] = 0x265a, // ♚ - [KING_W] = 0x2654, // ♔ - [KNIGHT_B] = 0x265e, // ♞ - [KNIGHT_W] = 0x2658, // ♘ - [KOPPA] = 0x03d8, // Ϙ - [K_SET] = 0x1d542, // 𝕂 - [LAMBDA] = 0x039b, // Λ - [LAPLACE] = 0x2112, // ℒ - [LEFT_CEIL] = 0x2308, // ⌈ - [LEFT_FLOOR] = 0x230a, // ⌊ - [LEFT_OUTER] = 0x27d5, // ⟕ - [LENGTH] = 0x2113, // ℓ - [LESS_LESS] = 0x226a, // ≪ - [LETTER] = 0x2709, // ✉ - [LOCK] = 0x1f512, // 🔒 - [LOCK_OPEN] = 0x1f513, // 🔓 - [LS_EQ] = 0x2264, // ≤ - [LTIMES] = 0x22c9, // ⋉ - [MALE] = 0x2642, // ♂ - [MAPSTO] = 0x27fc, // ⟼ - [MDOT] = 0x22c5, // ⋅ - [MICRO] = 0x00b5, // µ - [MINUS_OP] = 0x2296, // ⊖ - [MINUS_PLUS] = 0x2213, // ∓ - [MINUTE] = 0x02b9, // ʹ - [MODELS] = 0x22a7, // ⊧ - [MY] = 0x039c, // Μ - [M_ANGLE] = 0x2221, // ∡ - [NABLA] = 0x2207, // ∇ - [NATURAL] = 0x266e, // ♮ - [NO] = 0x2717, // ✗ - [NOT] = 0x00ac, // ¬ - [NOTIN] = 0x2209, // ∉ - [NOTSUBS] = 0x2288, // ⊈ - [NOT_DIV] = 0x2224, // ∤ - [NOT_PARA] = 0x2226, // ∦ - [NY] = 0x039d, // Ν - [N_SET] = 0x2115, // ℕ - [N_TILDE] = 0x00d1, // Ñ - [OE] = 0x00d6, // Ö - [OHM] = 0x2126, // Ω - [OMEGA] = 0x03a9, // Ω - [OMIKRON] = 0x039f, // Ο - [OR] = 0x2228, // ∨ - [OR_] = 0x22c1, // ⋁ - [PARALLEL] = 0x2225, // ∥ - [PARTIAL] = 0x2202, // ∂ - [PAWN_B] = 0x265f, // ♟ - [PAWN_W] = 0x2659, // ♙ - [PEDAL] = 0x1d1ae, // 𝆮 - [PEDAL_UP] = 0x1d1af, // 𝆯 - [PERMIL] = 0x2030, // ‰ - [PHI] = 0x03a6, // Φ - [PHONE] = 0x2706, // ✆ - [PI] = 0x03a0, // Π - [PLAY] = 0x23ef, // ⏯ - [PLUS_MINUS] = 0x00b1, // ± - [PLUS_OP] = 0x2295, // ⊕ - [POUND] = 0x00a3, // £ - [POWERSET] = 0x1d4ab, // 𝒫 - [PRED] = 0x227a, // ≺ - [PROD_] = 0x220f, // ∏ - [PROP_TO] = 0x221d, // ∝ - [PR_SUBSET] = 0x2282, // ⊂ - [PSI] = 0x03a8, // Ψ - [QED] = 0x220e, // ∎ - [QUART_N] = 0x1d15f, // 𝅘𝅥 - [QUART_P] = 0x1d13d, // 𝄽 - [QUEEN_B] = 0x265b, // ♛ - [QUEEN_W] = 0x2655, // ♕ - [Q_SET] = 0x211a, // ℚ - [REAL_P] = 0x211c, // ℜ - [REGTM] = 0x00ae, // ® - [REPEAT_E] = 0x1d107, // 𝄇 - [REPEAT_S] = 0x1d106, // 𝄆 - [REWIND] = 0x23ee, // ⏮ - [RHO] = 0x03a1, // Ρ - [RIGHT_CEIL] = 0x2309, // ⌉ - [RIGHT_FLOOR] = 0x230b, // ⌋ - [RIGHT_OUTER] = 0x27d6, // ⟖ - [RIGHT_TACK] = 0x22a2, // ⊢ - [ROOK_B] = 0x265c, // ♜ - [ROOK_W] = 0x2656, // ♖ - [ROOT] = 0x221a, // √ - [ROUGHLY] = 0x2248, // ≈ - [RTIMES] = 0x22ca, // ⋊ - [R_SET] = 0x211d, // ℝ - [SAMPI] = 0x0372, // Ͳ - [SAN] = 0x03fa, // Ϻ - [SCHO] = 0x03f7, // Ϸ - [SECOND] = 0x02ba, // ʺ - [SECTION] = 0x00a7, // § - [SEGNO] = 0x1d10b, // 𝄋 - [SETMINUS] = 0x2216, // ∖ - [SHARP] = 0x266f, // ♯ - [SHOGI_B] = 0x2617, // ☗ - [SHOGI_BD] = 0x26ca, // ⛊ - [SHOGI_W] = 0x2616, // ☖ - [SHOGI_WD] = 0x26c9, // ⛉ - [SIGMA] = 0x03a3, // Σ - [SIXT_N] = 0x1d161, // 𝅘𝅥𝅯 - [SIXT_P] = 0x1d13f, // 𝄿 - [SNEK] = 0x1f40d, // 🐍 - [SPADES_B] = 0x2660, // ♠ - [SPADES_W] = 0x2664, // ♤ - [SPEAKER_DN] = 0x1f509, // 🔉 - [SPEAKER_TG] = 0x1f507, // 🔇 - [SPEAKER_UP] = 0x1f50a, // 🔊 - [SQT1] = 0x203a, // › - [SQT2] = 0x201a, // ‚ - [SQT3] = 0x2018, // ‘ - [SQT4] = 0x2019, // ’ - [SQT5] = 0x2039, // ‹ - [SQUARE] = 0x25a1, // □ - [SQ_LS] = 0x228f, // ⊏ - [SQ_LS_EQ] = 0x2291, // ⊑ - [STAFF] = 0x1d11a, // 𝄚 - [STIGMA] = 0x03da, // Ϛ - [STOP] = 0x25fc, // ◼ - [SUBSET] = 0x2286, // ⊆ - [SUBSET_REV] = 0x2287, // ⊇ - [SUCC] = 0x227b, // ≻ - [SUM_] = 0x2211, // ∑ - [SUP1] = 0x00b9, // ¹ - [SUP2] = 0x00b2, // ² - [SUP3] = 0x00b3, // ³ - [SUP_A] = 0x00aa, // ª - [SUP_MIN] = 0x207b, // ⁻ - [SUP_O] = 0x00ba, // º - [SZ] = 0x1e9e, // ẞ - [TAU] = 0x03a4, // Τ - [THETA] = 0x0398, // Θ - [TIMES] = 0x00d7, // × - [TIMES_OP] = 0x2297, // ⊗ - [TMARK] = 0x2122, // ™ - [TO] = 0x27f6, // ⟶ - [TOP] = 0x22a4, // ⊤ - [TRIANGLE] = 0x25b3, // △ - [UE] = 0x00dc, // Ü - [UNION] = 0x222a, // ∪ - [UNION_] = 0x22c3, // ⋃ - [U_SET] = 0x1d54c, // 𝕌 - [WHOLE_N] = 0x1d15d, // 𝅝 - [WHOLE_P] = 0x1d13b, // 𝄻 - [XI] = 0x039e, // Ξ - [YEN] = 0x00a5, // ¥ - [YES] = 0x2713, // ✓ - [YPSI2] = 0x03d2, // ϒ - [YPSILON] = 0x03a5, // Υ - [ZETA] = 0x0396, // Ζ - [Z_SET] = 0x2124, // ℤ - [ae] = 0x00e4, // ä - [alpha] = 0x03b1, // α - [beta] = 0x03b2, // β - [beta2] = 0x03d0, // ϐ - [chi] = 0x03c7, // χ - [delta] = 0x03b4, // δ - [digamma] = 0x03dd, // ϝ - [e_FUN] = 0x0065, // e - [epsi2] = 0x03f5, // ϵ - [epsilon] = 0x03b5, // ε - [eta] = 0x03b7, // η - [gamma] = 0x03b3, // γ - [heta] = 0x0371, // ͱ - [i_UNIT] = 0x0069, // i - [iota] = 0x03b9, // ι - [kappa] = 0x03ba, // κ - [kappa2] = 0x03f0, // ϰ - [koppa] = 0x03d9, // ϙ - [lambda] = 0x03bb, // λ - [my] = 0x03bc, // μ - [n_tilde] = 0x00f1, // ñ - [ny] = 0x03bd, // ν - [oe] = 0x00f6, // ö - [omega] = 0x03c9, // ω - [omikron] = 0x03bf, // ο - [phi] = 0x03c6, // φ - [phi2] = 0x03d5, // ϕ - [pi] = 0x03c0, // π - [pi2] = 0x03d6, // ϖ - [psi] = 0x03c8, // ψ - [rho] = 0x03c1, // ρ - [rho2] = 0x03f1, // ϱ - [sampi] = 0x0373, // ͳ - [san] = 0x03fb, // ϻ - [scho] = 0x03f8, // ϸ - [sigma] = 0x03c3, // σ - [sigma2] = 0x03c2, // ς - [sigma3] = 0x03f2, // ϲ - [stigma] = 0x03db, // ϛ - [sz] = 0x00df, // ß - [tau] = 0x03c4, // τ - [theta] = 0x03b8, // θ - [theta2] = 0x03d1, // ϑ - [ue] = 0x00fc, // ü - [xi] = 0x03be, // ξ - [ypsilon] = 0x03c5, // υ - [zeta] = 0x03b6 // ζ -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* - * Layer 0 - * ------------------------------------------------- ------------------------------------------------- - * | Tab | q | w | e | r | t | | y | u | i | o | p | [ | - * ------------------------------------------------- ------------------------------------------------- - * |LCtTEsc| a | s | d | f | g | | h | j | k | l | ; | ' | - * ------------------------------------------------- ------------------------------------------------- - * |LShift(| z | x | c | v | b | | n | m | , | . | / |RShift)| - * ----------------------------------------------------------------------------------------------------------------- - * LCtrl[ LAlt LGui | TT2 |LT6_SPC|LT4_DEL|LT4_ENT| Space |LT2_BSP| RGui RLAlt RCtrl] - * ------------------------------------------------- - */ - LAYOUT_ortho_4x12( - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, - LCTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, - LCTL_T(KC_LBRC), KC_LALT, KC_LGUI, TT(2), LT(6,KC_SPC), LT(4,KC_DEL), LT(4,KC_ENT), KC_SPC, LT(2,KC_BSPC), KC_RGUI, LALT_T(KC_RALT), RCTL_T(KC_RBRC) - ), - -/* - * Layer 1 - * ------------------------------------------------- ------------------------------------------------- - * | Tab | q | w | f | p | g | | j | l | u | y | ; | [ | - * ------------------------------------------------- ------------------------------------------------- - * |LCtTEsc| a | r | s | t | d | | h | n | e | i | o | ' | - * ------------------------------------------------- ------------------------------------------------- - * |LShift(| z | x | c | v | b | | k | m | , | . | / |RShift)| - * ----------------------------------------------------------------------------------------------------------------- - * LCtrl[ LAlt LGui | TT2 |LT6_SPC|LT4_DEL|LT4_ENT| Space |LT2_BSP| RGui RLAlt RCtrl] - * ------------------------------------------------- - */ - LAYOUT_ortho_4x12( - KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, - LCTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, - KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, - LCTL_T(KC_LBRC), KC_LALT, KC_LGUI, TT(2), LT(6,KC_SPC), LT(4,KC_DEL), LT(4,KC_ENT), KC_SPC, LT(2,KC_BSPC), KC_RGUI, LALT_T(KC_RALT), RCTL_T(KC_RBRC) - ), - -/* - * Layer 2 - * ------------------------------------------------- ------------------------------------------------- - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ] | - * ------------------------------------------------- ------------------------------------------------- - * | | DF0 | DF1 | XXX | MO3 | MO3 | | 4 | 4 | 5 | 6 | - | = | - * ------------------------------------------------- ------------------------------------------------- - * | | MO5 | XXX | XXX | XXX | XXX | | 1 | 1 | 2 | 3 | \ | | - * ----------------------------------------------------------------------------------------------------------------- - * TG2 | | | Del | | 0 |BSpace | - * ------------------------------------------------- - */ - LAYOUT_ortho_4x12( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC, - KC_TRNS, DF(0), DF(1), KC_NO, MO(3), MO(3), KC_4, KC_4, KC_5, KC_6, KC_MINS, KC_EQL, - KC_TRNS, MO(5), KC_NO, KC_NO, KC_NO, KC_NO, KC_1, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, - TG(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_0, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS - ), - -/* - * Layer 3 - * ------------------------------------------------- ------------------------------------------------- - * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | XXX | - * ------------------------------------------------- ------------------------------------------------- - * | | XXX | XXX | XXX | MO3 | MO3 | | F4 | F4 | F5 | F6 | F11 | XXX | - * ------------------------------------------------- ------------------------------------------------- - * | | XXX | XXX | XXX | XXX | XXX | | F1 | F1 | F2 | F3 | F12 | | - * ----------------------------------------------------------------------------------------------------------------- - * TG3 | | | | | | | - * ------------------------------------------------- - */ - LAYOUT_ortho_4x12( - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO, - KC_TRNS, KC_NO, KC_NO, KC_NO, MO(3), MO(3), KC_F4, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO, - KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F1, KC_F1, KC_F2, KC_F3, KC_F12, KC_TRNS, - TG(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - -/* - * Layer 4 - * ------------------------------------------------- ------------------------------------------------- - * | Esc | Esc | Tab x | Tab n |CPg Dn |CPg Dn | |Pg Down| Home |^ Arrow|Insert |SInsert| Esc | - * ------------------------------------------------- ------------------------------------------------- - * | | Caps | < Gui |Gui Tab| > Gui | > Gui | |< Arrow|< Arrow|v Arrow|> Arrow| End |Pr Scr | - * ------------------------------------------------- ------------------------------------------------- - * | | XXX | XXX | XXX |CPg Up |CPg Up | | Pg Up | |v Arrow| XXX | App | | - * ----------------------------------------------------------------------------------------------------------------- - * TG4 | | | Del | |BSpace | | - * ------------------------------------------------- - */ - LAYOUT_ortho_4x12( - KC_ESC, KC_ESC, LCTL(KC_W), LCTL(KC_T), LCTL(KC_PGDN), LCTL(KC_PGDN), KC_PGDN, KC_HOME, KC_UP, KC_INS, LSFT(KC_INS), KC_ESC, - KC_TRNS, KC_CAPS, LGUI(KC_LEFT), LGUI(KC_TAB), LGUI(KC_RGHT), LGUI(KC_RGHT), KC_LEFT, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_PSCR, - KC_TRNS, KC_NO, KC_NO, KC_NO, LCTL(KC_PGUP), LCTL(KC_PGUP), KC_PGUP, KC_TRNS, KC_DOWN, KC_NO, KC_APP, KC_TRNS, - TG(4), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - -/* - * Layer 5 - * ------------------------------------------------- ------------------------------------------------- - * | | XXX |play/ps| Vol + | Vol + | XXX | | XXX | XXX | XXX | XXX |_reset | Power | - * ------------------------------------------------- ------------------------------------------------- - * | | XXX | |<< | Vol 0 | >>| | XXX | | XXX | XXX | XXX | XXX | XXX | Sleep | - * ------------------------------------------------- ------------------------------------------------- - * | | MO5 | XXX | Vol - | Vol - | XXX | | XXX | XXX | XXX | XXX | XXX | XXX | - * ----------------------------------------------------------------------------------------------------------------- - * TG5 | | | | | | | - * ------------------------------------------------- - */ - LAYOUT_ortho_4x12( - KC_TRNS, KC_NO, KC_MPLY, KC_VOLU, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET, KC_PWR, - KC_TRNS, KC_NO, KC_MPRV, KC_MUTE, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SLEP, - KC_TRNS, MO(5), KC_NO, KC_VOLD, KC_VOLD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - TG(5), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - -/* - * Layer 6 - * ------------------------------------------------- ------------------------------------------------- - * | | acc1 | XXX | XXX | XXX | XXX | |^ Wheel|< Wheel|^ Mouse|> Wheel| XXX | XXX | - * ------------------------------------------------- ------------------------------------------------- - * | | acc2 |Mouse 2|Mouse 3|Mouse 1|Mouse 1| |< Mouse|< Mouse|v Mouse|> Mouse| XXX | XXX | - * ------------------------------------------------- ------------------------------------------------- - * | | acc0 | XXX | XXX | XXX | XXX | |v Wheel| XXX |v Mouse| XXX | XXX | | - * ----------------------------------------------------------------------------------------------------------------- - * TG6 | | | | | | | - * ------------------------------------------------- - */ - LAYOUT_ortho_4x12( - KC_TRNS, KC_ACL1, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_U, KC_WH_L, KC_MS_U, KC_WH_R, KC_NO, KC_NO, - KC_TRNS, KC_ACL2, KC_BTN2, KC_BTN3, KC_BTN1, KC_BTN1, KC_MS_L, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO, - KC_TRNS, KC_ACL0, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_D, KC_NO, KC_MS_D, KC_NO, KC_NO, KC_TRNS, - TG(6), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; - -/* vi: ft=c:tw=80:sw=2:ts=2:sts=2:et - */ diff --git a/keyboards/signum/3_0/elitec/keymaps/default/km_template.txt b/keyboards/signum/3_0/elitec/keymaps/default/km_template.txt deleted file mode 100644 index 47b35ee514..0000000000 --- a/keyboards/signum/3_0/elitec/keymaps/default/km_template.txt +++ /dev/null @@ -1,20 +0,0 @@ -/* keymap.c is auto-generated, don't edit it directly. - * Further instructions are provided in readme.md */ - -#include QMK_KEYBOARD_H - -enum unicode_name { -// -}; - -const uint32_t PROGMEM unicode_map[] = { -// -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -// -}; - -/* vi: ft=c:tw=80:sw=2:ts=2:sts=2:et - */ diff --git a/keyboards/signum/3_0/elitec/keymaps/default/layout.py b/keyboards/signum/3_0/elitec/keymaps/default/layout.py deleted file mode 100644 index 1e43e25c57..0000000000 --- a/keyboards/signum/3_0/elitec/keymaps/default/layout.py +++ /dev/null @@ -1,495 +0,0 @@ -# -*- coding: utf-8 -*- - -# Add all used Unicode symbols to this list. -# 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. -# The key is also used in this file to define the layout, so use recognizeable names. -# The value (e.g. "0x1f40d") is used in keymap.c for "unicode_map" and to automatically generate the "ASCII"-art comments. -# When adding new Unicode names, use "0x1f40d" until you looked up the correct Unicode code point. -uc_dict = { - "SNEK": "0x1f40d", ## Error - ## qwertz - "ACUTE": "0x00b4", - ## QWERTZ - "INV_EXCL": "0x00a1", - "INV_QST": "0x00bf", - ## numpad - "SUP1": "0x00b9", - "SUP2": "0x00b2", - "SUP3": "0x00b3", - "SUP_MIN": "0x207b", - "ROOT": "0x221a", - "DEGREE": "0x00b0", - "MINUTE": "0x02b9", - "SECOND": "0x02ba", - "CURRENCY": "0x00a4", - "CENT": "0x00a2", - "YEN": "0x00a5", - "POUND": "0x00a3", - "EURO": "0x20ac", - "DIVISION": "0x00f7", - "MICRO": "0x00b5", - "OHM": "0x2126", - "BITCOIN": "0x20bf", - "SECTION": "0x00a7", - ## NAV_TYPO - "SQT1": "0x203a", - "SQT2": "0x201a", - "SQT3": "0x2018", - "SQT4": "0x2019", - "SQT5": "0x2039", - "SUP_A": "0x00aa", - "SUP_O": "0x00ba", - "TMARK": "0x2122", - "COPYR": "0x00a9", - "REGTM": "0x00ae", - "DOTS": "0x2026", - "CROSS": "0x2020", - "BULLET": "0x2022", - "EMDASH": "0x2014", - "PERMIL": "0x2030", - "DQT1": "0x00bb", - "DQT2": "0x201e", - "DQT3": "0x201c", - "DQT4": "0x201d", - "DQT5": "0x00ab", - ## lang - "ae": "0x00e4", - "oe": "0x00f6", - "ue": "0x00fc", - "sz": "0x00df", - "n_tilde": "0x00f1", - ## LANG - "AE": "0x00c4", - "OE": "0x00d6", - "UE": "0x00dc", - "SZ": "0x1e9e", - "N_TILDE": "0x00d1", - ## greek - "alpha": "0x03b1", - "beta": "0x03b2", - "gamma": "0x03b3", - "delta": "0x03b4", - "epsilon": "0x03b5", - "zeta": "0x03b6", - "eta": "0x03b7", - "theta": "0x03b8", - "iota": "0x03b9", - "kappa": "0x03ba", - "lambda": "0x03bb", - "my": "0x03bc", - "ny": "0x03bd", - "xi": "0x03be", - "omikron": "0x03bf", - "pi": "0x03c0", - "rho": "0x03c1", - "sigma": "0x03c3", - "tau": "0x03c4", - "ypsilon": "0x03c5", - "phi": "0x03c6", - "chi": "0x03c7", - "psi": "0x03c8", - "omega": "0x03c9", - # variants - "beta2": "0x03d0", - "epsi2": "0x03f5", - "theta2": "0x03d1", - "kappa2": "0x03f0", - "pi2": "0x03d6", - "rho2": "0x03f1", - "sigma2": "0x03c2", - "sigma3": "0x03f2", - "phi2": "0x03d5", - # non-standard - "digamma": "0x03dd", - "stigma": "0x03db", - "heta": "0x0371", - "san": "0x03fb", - "koppa": "0x03d9", - "sampi": "0x0373", - "scho": "0x03f8", - ## GREEK - "ALPHA": "0x0391", - "BETA": "0x0392", - "GAMMA": "0x0393", - "DELTA": "0x0394", - "EPSILON": "0x0395", - "ZETA": "0x0396", - "ETA": "0x0397", - "THETA": "0x0398", - "IOTA": "0x0399", - "KAPPA": "0x039a", - "LAMBDA": "0x039b", - "MY": "0x039c", - "NY": "0x039d", - "XI": "0x039e", - "OMIKRON": "0x039f", - "PI": "0x03a0", - "RHO": "0x03a1", - "SIGMA": "0x03a3", - "TAU": "0x03a4", - "YPSILON": "0x03a5", - "PHI": "0x03a6", - "CHI": "0x03a7", - "PSI": "0x03a8", - "OMEGA": "0x03a9", - # variants - "YPSI2": "0x03d2", - # non-standard - "DIGAMMA": "0x03dc", - "STIGMA": "0x03da", - "HETA": "0x0370", - "SAN": "0x03fa", - "KOPPA": "0x03d8", - "SAMPI": "0x0372", - "SCHO": "0x03f7", - ## symbol - "SHOGI_WD": "0x26c9", - "FLAG_W": "0x2690", - "LETTER": "0x2709", - "PHONE": "0x2706", - "INFO": "0x1f6c8", - "REWIND": "0x23ee", - "PLAY": "0x23ef", - "FORWARD": "0x23ed", - "STOP": "0x25fc", - "EJECT": "0x23cf", - "SHOGI_W": "0x2616", - "FEMALE": "0x2640", - "MALE": "0x2642", - "NO": "0x2717", - "YES": "0x2713", - "FLAT": "0x266d", - "NATURAL": "0x266e", - "SHARP": "0x266f", - "COMMON_T": "0x1d134", - "ALLA_BR": "0x1d135", - "PAWN_W": "0x2659", - "DIAMS_W": "0x2662", - "HEARTS_W": "0x2661", - "SPADES_W": "0x2664", - "CLUBS_W": "0x2667", - "WHOLE_N": "0x1d15d", - "HALF_N": "0x1d15e", - "QUART_N": "0x1d15f", - "EIGHTH_N": "0x1d160", - "SIXT_N": "0x1d161", - "ROOK_W": "0x2656", - "KNIGHT_W": "0x2658", - "BISHOP_W": "0x2657", - "QUEEN_W": "0x2655", - "KING_W": "0x2654", - "C_CLEF": "0x1d121", - "G_CLEF": "0x1d11e", - "F_CLEF": "0x1d122", - "PEDAL": "0x1d1ae", - "PEDAL_UP": "0x1d1af", - ## SYMBOL - "SHOGI_BD": "0x26ca", - "FLAG_B": "0x2691", - "SPEAKER_UP": "0x1f50a", - "SPEAKER_TG": "0x1f507", - "SPEAKER_DN": "0x1f509", - "SHOGI_B": "0x2617", - "KEY": "0x1f511", - "LOCK": "0x1f512", - "LOCK_OPEN": "0x1f513", - "STAFF": "0x1d11a", - "BARLINE": "0x1d100", - "BARLINE_D": "0x1d101", - "BARLINE_FIN": "0x1d102", - "CODA": "0x1d10c", - "PAWN_B": "0x265f", - "DIAMS_B": "0x2666", - "HEARTS_B": "0x2665", - "SPADES_B": "0x2660", - "CLUBS_B": "0x2663", - "WHOLE_P": "0x1d13b", - "HALF_P": "0x1d13c", - "QUART_P": "0x1d13d", - "EIGHTH_P": "0x1d13e", - "SIXT_P": "0x1d13f", - "ROOK_B": "0x265c", - "KNIGHT_B": "0x265e", - "BISHOP_B": "0x265d", - "QUEEN_B": "0x265b", - "KING_B": "0x265a", - "REPEAT_S": "0x1d106", - "REPEAT_E": "0x1d107", - "SEGNO": "0x1d10b", - "DALSEGNO": "0x1d109", - "DACAPO": "0x1d10a", - ## math - "EXISTS": "0x2203", - "FORALL": "0x2200", - "EQUIV": "0x2261", - "CORRESP": "0x2259", - "INEQUAL": "0x2260", - "DEFINE": "0x2254", - "TO": "0x27f6", - "MAPSTO": "0x27fc", - "SETMINUS": "0x2216", - "QED": "0x220e", - "OR_": "0x22c1", - "AND_": "0x22c0", - "OR": "0x2228", - "AND": "0x2227", - "NOT": "0x00ac", - "BICOND": "0x21d4", - "IMPL_REV": "0x21d0", - "IMPL": "0x21d2", - "TOP": "0x22a4", - "BOTTOM": "0x22a5", - "SUM_": "0x2211", - "PROD_": "0x220f", - "MDOT": "0x22c5", - "NOTIN": "0x2209", - "IN": "0x2208", - "LS_EQ": "0x2264", - "GR_EQ": "0x2265", - "INFTY": "0x221e", - "UNION_": "0x22c3", - "INTERS_": "0x22c2", - "UNION": "0x222a", - "INTERS": "0x2229", - "NOTSUBS": "0x2288", - "PR_SUBSET": "0x2282", - "SUBSET": "0x2286", - "SUBSET_REV": "0x2287", - "EMPTYSET": "0x2205", - ## MATHSCRIPT - "LEFT_CEIL": "0x2308", - "REAL_P": "0x211c", - "NABLA": "0x2207", - "RIGHT_CEIL": "0x2309", - "LEFT_FLOOR": "0x230a", - "BRA": "0x27e8", - "IMAG_P": "0x2111", - "KET": "0x27e9", - "RIGHT_FLOOR": "0x230b", - "Q_SET": "0x211a", - "e_FUN": "0x0065", - "R_SET": "0x211d", - "Z_SET": "0x2124", - "U_SET": "0x1d54c", - "i_UNIT": "0x0069", - "BIG_O": "0x1d4aa", - "POWERSET": "0x1d4ab", - "A_SET": "0x1d538", - "INTEGRAL": "0x222b", - "PARTIAL": "0x2202", - "F_SET": "0x1d53d", - "H_SET": "0x210d", - "K_SET": "0x1d542", - "LENGTH": "0x2113", - "ALEPH": "0x2135", - "BETH": "0x2136", - "C_SET": "0x2102", - "B_SET": "0x1d539", - "N_SET": "0x2115", - "INDICATOR": "0x1d7cf", - "FOURIER": "0x2131", - "HAMILTON": "0x210b", - "LAPLACE": "0x2112", - ## MATHEXT - "RIGHT_TACK": "0x22a2", - "MODELS": "0x22a7", - "AB_VEC": "0x20d7", - "AB_LINE": "0x0305", - "AB_ARC": "0x0361", - "LESS_LESS": "0x226a", - "PRED": "0x227a", - "EMBED": "0x21aa", - "SUCC": "0x227b", - "GREAT_GREAT": "0x226b", - "TRIANGLE": "0x25b3", - "SQUARE": "0x25a1", - "CIRCLE": "0x25cb", - "DOT_OP": "0x2299", - "PLUS_OP": "0x2295", - "MINUS_OP": "0x2296", - "ROUGHLY": "0x2248", - "ISOMORPH": "0x2245", - "LTIMES": "0x22c9", - "RTIMES": "0x22ca", - "BOWTIE": "0x22c8", - "M_ANGLE": "0x2221", - "ANGLE": "0x2220", - "CIRC_MID": "0x2218", - "AST_MID": "0x2217", - "TIMES": "0x00d7", - "PLUS_MINUS": "0x00b1", - "MINUS_PLUS": "0x2213", - "LEFT_OUTER": "0x27d5", - "RIGHT_OUTER": "0x27d6", - "FULL_OUTER": "0x27d7", - "SQ_LS": "0x228f", - "SQ_LS_EQ": "0x2291", - "PROP_TO": "0x221d", - "PARALLEL": "0x2225", - "NOT_PARA": "0x2226", - "TIMES_OP": "0x2297", - "NOT_DIV": "0x2224" -} - -# Add all used Keycodes to this list. -# 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. -qmk_dict = { - # test cases (These are handled in generate_km.py within toKC() and toLgd(), so these definitions will be ignored. - # If you find "BAD" in your keymaps, then something went wrong.) - "a": "BAD", "A": "BAD", "0": "BAD", - # Basic Keycodes - "XXX": "KC_NO", "": "KC_TRNS", - "!": "S(KC_1)", "@": "S(KC_2)", "#": "S(KC_3)", "$": "S(KC_4)", "%": "S(KC_5)", - "^": "S(KC_6)", "&": "S(KC_7)", "*": "S(KC_8)", "(": "S(KC_9)", ")": "S(KC_0)", - "Enter": "KC_ENT", "Esc": "KC_ESC", "BSpace": "KC_BSPC", "Tab": "KC_TAB", - "Space": "KC_SPC", "-": "KC_MINS", "_": "S(KC_MINS)", "=": "KC_EQL", - "+": "S(KC_EQL)", "[": "KC_LBRC", "{": "S(KC_LBRC)", "]": "KC_RBRC", - "}": "S(KC_RBRC)", "\\": "KC_BSLS", "|": "S(KC_BSLS)", ";": "KC_SCLN", - ":": "S(KC_SCLN)", "'": "KC_QUOT", "\"": "S(KC_QUOT)", "`": "KC_GRV", - "~": "S(KC_GRV)", ",": "KC_COMM", "<": "S(KC_COMM)", ".": "KC_DOT", - ">": "S(KC_DOT)", "/": "KC_SLSH", "?": "S(KC_SLSH)", "Caps": "KC_CAPS", - "Pr Scr": "KC_PSCR", "Scr Lck": "KC_SLCK", "Pause": "KC_BRK", "Insert": "KC_INS", "SInsert": "LSFT(KC_INS)", - "Home": "KC_HOME", "Pg Up": "KC_PGUP", "Del": "KC_DEL", "End": "KC_END", - "Pg Down": "KC_PGDN", "> Arrow": "KC_RGHT", "< Arrow": "KC_LEFT", - "v Arrow": "KC_DOWN", "^ Arrow": "KC_UP", - # Keypad keycodes missing - "App": "KC_APP", "Menu": "KC_MENU", - # Command keycodes missing (Execute, Help, ..., Find) - # Basic Keycodes missing from Print Screen onwards, included as fallback - # random Keycodes - "RGui": "KC_RGUI", "LGui": "KC_LGUI", "LAlt": "KC_LALT", "RLAlt": "LALT_T(KC_RALT)", "RAlt": "KC_RALT", "LShift": "KC_LSFT", "LCtrl": "KC_LCTL", "LCtTBsp": "LCTL_T(KC_BSPC)", "LCtTEsc": "LCTL_T(KC_ESC)", "RCtrl": "KC_RCTL", - "LShift(": "KC_LSPO", "RShift)": "KC_RSPC", - # "LShift(": "LSFT_T(KC_9)", "RShift)": "RSFT_T(RSFT(KC_0))", - "LCtrl[": "LCTL_T(KC_LBRC)", "RCtrl]": "RCTL_T(KC_RBRC)", - "L1_ENT": "LT(1, KC_ENT)", "LT2_BSP": "LT(2,KC_BSPC)", "LT4_DEL": "LT(4,KC_DEL)", "LT4_ENT": "LT(4,KC_ENT)", "LT6_SPC": "LT(6,KC_SPC)", - "CPg Dn": "LCTL(KC_PGDN)", "CPg Up": "LCTL(KC_PGUP)", - "S_Enter": "S(KC_ENT)", "S_Tab": "S(KC_TAB)", "Compose": "KC_ALGR", - "RShift": "KC_RSFT", - "Vol 0": "KC_MUTE", "Vol +": "KC_VOLU", "Vol -": "KC_VOLD", - ">>|": "KC_MNXT", "|<<": "KC_MPRV", "play/ps": "KC_MPLY", - "Bri +": "KC_BRIU", "Bri -": "KC_BRID", - # Quantum Keycodes - "_reset": "RESET", "_debug": "DEBUG", "_eep_re": "EEP_RST", - # Audio Keys missing - # Backlighting - "Led 0": "BL_TOGG", "Led +": "BL_INC", "Led -": "BL_DEC", "Led ~": "BL_BRTG", - # Bootmagic missing - # Bluetooth - "OUT_AUTO": "OUT_AUTO", "OUT_USB": "OUT_USB", "OUT_BT": "OUT_BT", - # Layer Switching missing, Lx -> MO(x), Tx -> TG(x) - "qwertz": "DF(0)", "neo": "DF(2)", - # Mouse Keys - "^ Mouse": "KC_MS_U", "v Mouse": "KC_MS_D", "< Mouse": "KC_MS_L", - "> Mouse": "KC_MS_R", "Mouse 1": "KC_BTN1", "Mouse 2": "KC_BTN2", - "Mouse 3": "KC_BTN3", "Mouse 4": "KC_BTN4", "Mouse 5": "KC_BTN5", - "^ Wheel": "KC_WH_U", "v Wheel": "KC_WH_D", "< Wheel": "KC_WH_L", - "> Wheel": "KC_WH_R", "acc0": "KC_ACL0", "acc1": "KC_ACL1", - "acc2": "KC_ACL2", - # Modifiers missinng, add entry for each specific application - # Mod-Tap Keys missing, add entry for each specific application - "_Sh_swp": "LSFT_T(SH_TG)", - # RGB Lighting missing - # RGB Matrix Lighting missing - # Thermal Printer missing - # US ANSI Shifted Symbols done via S(), don't add KC_entries - # One Shot Keys missing - # Swap Hands - "_sp_swp": "SHT(KC_SPC)", - # Unicode support (via X()) included implicitly - # Switching Unicode Input Modes - "UC_win": "UC_M_WC", "UC_lnx": "UC_M_LN", "UC_mac": "UC_M_MA", - - # custom keys - "altF4": "LALT(KC_F4)", - "Undo": "LCTL(KC_Z)", "Cut": "LCTL(KC_X)", "Copy": "LCTL(KC_C)", "Paste": "LCTL(KC_V)", - "< Tab": "LCTL(S(KC_TAB))", "> Tab": "LCTL(KC_TAB)", - "Tab x": "LCTL(KC_W)", "Tab n": "LCTL(KC_T)", - "Gui Tab": "LGUI(KC_TAB)", "< Gui": "LGUI(KC_LEFT)", "> Gui": "LGUI(KC_RGHT)", - "C+A+Del": "LCTL(LALT(KC_DEL))", "Mic 0": "LCTL(KC_M)", - "Power": "KC_PWR", "Sleep": "KC_SLEP", - - # macros - "Macro 1": "KC_1", "Macro 2": "KC_2", "Macro 3": "KC_3", "Macro 4": "KC_4", "Macro 5": "KC_5", - - # custom layers - "GREEK": "GREEK", - "SYMBOL": "SYMBOL", - "MATH": "MATH", - "GAME": "GAME", - "MOUSE": "MOUSE", - "NEO": "TG(2)" -} - -# These keys are repeated in all layers. -# Generate a keymap.c with the python script and refer to the "ASCII"-art comments, to see which positions this concerns. -# If you want to put different keycodes in these positions for different layers, you need to modify the python script by yourself. -static = ["NEO", "GREEK", "GREEK", "GREEK", "GREEK", "MOUSE"] - -# mutex_layers = {"GREEK": 8, "GAME": 10, "MOUSE": 11} -# layer_graph = ... - -# 0 -qwerty = [ - "Tab", "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "[", - "LCtTEsc", "a", "s", "d", "f", "g", "h", "j", "k", "l", ";", "'", - "LShift(", "z", "x", "c", "v", "b", "n", "m", ",", ".", "/", "RShift)", - "LCtrl[", "LAlt", "LGui", "TT2", "LT6_SPC", "LT4_DEL", "LT4_ENT", "Space", "LT2_BSP", "RGui", "RLAlt", "RCtrl]", - ] - -# 1 -colemak = [ - "Tab", "q", "w", "f", "p", "g", "j", "l", "u", "y", ";", "[", - "LCtTEsc", "a", "r", "s", "t", "d", "h", "n", "e", "i", "o", "'", - "LShift(", "z", "x", "c", "v", "b", "k", "m", ",", ".", "/", "RShift)", - "LCtrl[", "LAlt", "LGui", "TT2", "LT6_SPC", "LT4_DEL", "LT4_ENT", "Space", "LT2_BSP", "RGui", "RLAlt", "RCtrl]", - ] - -# 2 -numpad = [ - "`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "]", - "", "DF0", "DF1", "XXX", "MO3", "MO3", "4", "4", "5", "6", "-", "=", - "", "MO5", "XXX", "XXX", "XXX", "XXX", "1", "1", "2", "3", "\\", "", - "TG2", "", "", "", "", "Del", "", "0", "BSpace", "", "", "", - ] - -# 3 -fpad = [ - "", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "XXX", - "", "XXX", "XXX", "XXX", "MO3", "MO3", "F4", "F4", "F5", "F6", "F11", "XXX", - "", "XXX", "XXX", "XXX", "XXX", "XXX", "F1", "F1", "F2", "F3", "F12", "", - "TG3", "", "", "", "", "", "", "", "", "", "", "", - ] - -# 4 -movement = [ - "Esc", "Esc", "Tab x", "Tab n", "CPg Dn", "CPg Dn", "Pg Down", "Home", "^ Arrow", "Insert", "SInsert", "Esc", - "", "Caps", "< Gui", "Gui Tab", "> Gui", "> Gui", "< Arrow", "< Arrow", "v Arrow", "> Arrow", "End", "Pr Scr", - "", "XXX", "XXX", "XXX", "CPg Up", "CPg Up", "Pg Up", "", "v Arrow", "XXX", "App", "", - "TG4", "", "", "", "", "Del", "", "BSpace", "", "", "", "", - ] - -# 5 -media = [ - "", "XXX", "play/ps", "Vol +", "Vol +", "XXX", "XXX", "XXX", "XXX", "XXX", "_reset", "Power", - "", "XXX", "|<<", "Vol 0", ">>|", "XXX", "XXX", "XXX", "XXX", "XXX", "XXX", "Sleep", - "", "MO5", "XXX", "Vol -", "Vol -", "XXX", "XXX", "XXX", "XXX", "XXX", "XXX", "XXX", - "TG5", "", "", "", "", "", "", "", "", "", "", "", - ] - -# 6 -mouse = [ - "", "acc1", "XXX", "XXX", "XXX", "XXX", "^ Wheel", "< Wheel", "^ Mouse", "> Wheel", "XXX", "XXX", - "", "acc2", "Mouse 2", "Mouse 3", "Mouse 1", "Mouse 1", "< Mouse", "< Mouse", "v Mouse", "> Mouse", "XXX", "XXX", - "", "acc0", "XXX", "XXX", "XXX", "XXX", "v Wheel", "XXX", "v Mouse", "XXX", "XXX", "", - "TG6", "", "", "", "", "", "", "", "", "", "", "", - ] - -layers = [ - qwerty, - colemak, - numpad, - fpad, - movement, - media, - mouse - ] diff --git a/keyboards/signum/3_0/elitec/keymaps/default/readme.md b/keyboards/signum/3_0/elitec/keymaps/default/readme.md deleted file mode 100644 index be8cc30e8a..0000000000 --- a/keyboards/signum/3_0/elitec/keymaps/default/readme.md +++ /dev/null @@ -1,24 +0,0 @@ -# Default layout - -Layout created by: [Jan Christoph Ebersbach](https://github.com/jceb) - -The `generate_km.py` file automatically generates `keymap.c` with -additional comments that visually represent the layout. - -This layout is maintained as I am using it. You can also use it as a -starting point to create your own layouts for the Signum 3.0 with -`km_template.txt` and `generate_km.py`. - -# Customization - -- Customize `layout.py` to your liking. - - Attention 1: keycodes are either translated into symbols and - function calls via the `translate()` function in `generate_km.py` - or via user-defined mappings in the dictionary `qmk_dict` in - `layout.py`. Especially the latter might require adjustment for - uncommon qmk features - - Attention 2: additional C functions need to be put into - `km_template.txt` - -Run `./generate_km.py` to regenerate `keymap.c` and the JSON keymap -definition that should be copied to `qmk_configurator/public/keymaps`. diff --git a/keyboards/signum/3_0/elitec/keymaps/default/rules.mk b/keyboards/signum/3_0/elitec/keymaps/default/rules.mk deleted file mode 100644 index 502b2def76..0000000000 --- a/keyboards/signum/3_0/elitec/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -UNICODEMAP_ENABLE = yes diff --git a/keyboards/signum/3_0/elitec/readme.md b/keyboards/signum/3_0/elitec/readme.md deleted file mode 100644 index f60023f6d5..0000000000 --- a/keyboards/signum/3_0/elitec/readme.md +++ /dev/null @@ -1,14 +0,0 @@ -# Signum 3.0 - -![Signum 3.0 Top](https://i.redd.it/vl54yl36bpz11.jpg) - -An ergonomic 40% PCB. - -Keyboard Maintainer: [Troy Fletcher](http://troyfletcher.net/) -Hardware available here: [Troy Fletcher](http://troyfletcher.net/keyboard_sales.html) - -Make example for this keyboard (after setting up your build environment): - - make signum/3_0/elitec:default - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/signum/3_0/elitec/rules.mk b/keyboards/signum/3_0/elitec/rules.mk index 65714ef39d..e69de29bb2 100644 --- a/keyboards/signum/3_0/elitec/rules.mk +++ b/keyboards/signum/3_0/elitec/rules.mk @@ -1,28 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu - -# Build Options -# comment out to disable the options. -# -BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -AUDIO_ENABLE = no -RGBLIGHT_ENABLE = no - -UNICODEMAP_ENABLE = no - -LAYOUTS = ortho_4x12 - -# Disable unsupported hardware -RGBLIGHT_SUPPORTED = no -AUDIO_SUPPORTED = no -BACKLIGHT_SUPPORTED = no diff --git a/keyboards/signum/3_0/info.json b/keyboards/signum/3_0/info.json new file mode 100644 index 0000000000..a3f14c480f --- /dev/null +++ b/keyboards/signum/3_0/info.json @@ -0,0 +1,64 @@ +{ + "keyboard_name": "Signum 3.0", + "url": "http://troyfletcher.net/", + "maintainer": "jceb", + "layouts": { + "LAYOUT_ortho_4x12": { + "layout": [ + + { "x": 0, "y": 0.5, "r": 15 }, + { "x": 1, "y": 0.5, "r": 15 }, + { "x": 2, "y": 0.25, "r": 15 }, + { "x": 3, "y": 0, "r": 15 }, + { "x": 4, "y": 0.25, "r": 15 }, + { "x": 5, "y": 0.5, "r": 15 }, + { "x": 9, "y": 0.5, "r": -15 }, + { "x": 10, "y": 0.25, "r": -15 }, + { "x": 11, "y": 0, "r": -15 }, + { "x": 12, "y": 0.25, "r": -15 }, + { "x": 13, "y": 0.5, "r": -15 }, + { "x": 14, "y": 0.5, "r": -15 }, + + { "x": 0, "y": 1.5, "r": 15 }, + { "x": 1, "y": 1.5, "r": 15 }, + { "x": 2, "y": 1.25, "r": 15 }, + { "x": 3, "y": 1, "r": 15 }, + { "x": 4, "y": 1.25, "r": 15 }, + { "x": 5, "y": 1.5, "r": 15 }, + { "x": 9, "y": 1.5, "r": -15 }, + { "x": 10, "y": 1.25, "r": -15 }, + { "x": 11, "y": 1, "r": -15 }, + { "x": 12, "y": 1.25, "r": -15 }, + { "x": 13, "y": 1.5, "r": -15 }, + { "x": 14, "y": 1.5, "r": -15 }, + + { "x": 0, "y": 2.5, "r": 15 }, + { "x": 1, "y": 2.5, "r": 15 }, + { "x": 2, "y": 2.25, "r": 15 }, + { "x": 3, "y": 2, "r": 15 }, + { "x": 4, "y": 2.25, "r": 15 }, + { "x": 5, "y": 2.5, "r": 15 }, + { "x": 9, "y": 2.5, "r": -15 }, + { "x": 10, "y": 2.25, "r": -15 }, + { "x": 11, "y": 2, "r": -15 }, + { "x": 12, "y": 2.25, "r": -15 }, + { "x": 13, "y": 2.5, "r": -15 }, + { "x": 14, "y": 2.5, "r": -15 }, + + { "x": 0, "y": 4, "r": 15 }, + { "x": 1, "y": 3.5, "r": 15 }, + { "x": 2, "y": 3.25, "r": 15 }, + { "x": 4, "y": 4.25, "r": 15, "h": 1.5 }, + { "x": 5, "y": 4, "r": 15, "h": 2 }, + { "x": 6, "y": 4.25, "r": 15, "h": 1.5 }, + { "x": 8, "y": 4.25, "r": -15, "h": 1.5 }, + { "x": 9, "y": 4, "r": -15, "h": 2 }, + { "x": 10, "y": 4.25, "r": -15, "h": 1.5 }, + { "x": 12, "y": 3.25, "r": -15 }, + { "x": 13, "y": 3.5, "r": -15 }, + { "x": 14, "y": 4, "r": -15 } + + ] + } + } +} diff --git a/keyboards/signum/3_0/keymaps/default/generate_km.py b/keyboards/signum/3_0/keymaps/default/generate_km.py new file mode 100755 index 0000000000..cfa8edf57a --- /dev/null +++ b/keyboards/signum/3_0/keymaps/default/generate_km.py @@ -0,0 +1,194 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import json +import layout +import os +import re + + +def gen_uc_iter(): + length = len(layout.uc_dict) + for key, value in sorted(layout.uc_dict.items()): + length -= 1 + if length: + yield (key, value, False) + else: + yield (key, value, True) + + +def _translate(s): + if re.match("^[0-9]$", s): + return ("KC_{0}".format(s), " {0} ".format(s)) + elif re.match("^[a-z]$", s): + return ("KC_{0}".format(s.upper()), " {0} ".format(s)) + elif re.match("^[A-Z]$", s): + return ("S(KC_{0})".format(s), " {0} ".format(s)) + elif re.match("^F[0-9]{1,2}$", s): # Fn, works from F0 to F99 + return ("KC_{0}".format(s), "{0:^7}".format(s)) + elif re.match("^DF[0-9]{1,2}$", s): # DFn, works from DF0 to DF99 + return ("DF({0})".format(s[2:]), "{0:^7}".format(s)) + elif re.match("^MO[0-9]{1,2}$", s): # MOn, works from MO0 to MO99 + return ("MO({0})".format(s[2:]), "{0:^7}".format(s)) + elif re.match("^OSL[0-9]{1,2}$", s): # OSLn, works from OSL0 to OSL99 + return ("OSL({0})".format(s[3:]), "{0:^7}".format(s)) + elif re.match("^TG[0-9]{1,2}$", s): # TGn, works from TG0 to TG99 + return ("TG({0})".format(s[2:]), "{0:^7}".format(s)) + elif re.match("^TO[0-9]{1,2}$", s): # Tn, works from TO0 to TO99 + return ("TO({0})".format(s[2:]), "{0:^7}".format(s)) + elif re.match("^TT[0-9]{1,2}$", s): # Tn, works from TT0 to TT99 + return ("TT({0})".format(s[2:]), "{0:^7}".format(s)) + elif s in layout.uc_dict: + return ("X("+s+")", " {0} ".format(chr(int(layout.uc_dict[s], 0)))) + elif s in layout.qmk_dict: + return (layout.qmk_dict[s], "{0:^7}".format(s)) + elif s == s.upper() and s.startswith("KC_"): + return (s, "{0:^7}".format(s[2:])) + else: + return ("XXXXXXX", " {0} ".format(chr(128165))) + + +def toKC(s): + return _translate(s)[0] + + +def toLgd(s): + return _translate(s)[1] + + +def quoteC(text): + yield "/*" + for line in text: + yield " * " + line + yield " */\n" + + +def getKeymapText(id, layer, columns, rows): + keymap = [] + keymap.append("Layer %d" % id) + keymap.append("------------------------------------------------- -------------------------------------------------") + keymap.append("|{0}|{1}|{2}|{3}|{4}|{5}| |{6}|{7}|{8}|{9}|{10}|{11}|".format(*map(toLgd, layer[:12]))) + keymap.append("------------------------------------------------- -------------------------------------------------") + keymap.append("|{0}|{1}|{2}|{3}|{4}|{5}| |{6}|{7}|{8}|{9}|{10}|{11}|".format(*map(toLgd, layer[12:24]))) + keymap.append("------------------------------------------------- -------------------------------------------------") + keymap.append("|{0}|{1}|{2}|{3}|{4}|{5}| |{6}|{7}|{8}|{9}|{10}|{11}|".format(*map(toLgd, layer[24:36]))) + keymap.append("-----------------------------------------------------------------------------------------------------------------") + keymap.append(" {0} {1} {2} |{3}|{4}|{5}|{6}|{7}|{8}| {9} {10} {11}".format(*map(toLgd, layer[36:48])).rstrip()) + keymap.append(" -------------------------------------------------") + return keymap + + +def writeKeymap(f_template, f_keymap, layers, columns, rows): + doCopy = False + + for line in f_template: + doCopy = True + if line.startswith("//"): + doCopy = False + # f_keymap.write(str(layout.uc_dict)) + for k, v, isLast in gen_uc_iter(): + if isLast: + f_keymap.write(k + "\n") + else: + f_keymap.write(k + ",\n") + elif line.startswith("//"): + doCopy = False + for k, v, isLast in gen_uc_iter(): + if isLast: + f_keymap.write(u"\t[{0}] = {1} // {2}\n".format(k, v, chr(int(v, 0)))) + else: + f_keymap.write(u"\t[{0}] = {1}, // {2}\n".format(k, v, chr(int(v, 0)))) + elif line.startswith("//"): + doCopy = False + for layer, L in enumerate(layers): + r_counter = rows + f_keymap.write('\n'.join(quoteC(getKeymapText(layer, L, columns, rows)))) + + l_code = '\tLAYOUT_ortho_4x12(\n' + for r in range(r_counter): + r_counter -= 1 + c_counter = columns + l_code += '\t\t' + for c in range(c_counter): + c_counter -= 1 + if c != 0: + l_code += " " + l_code += "%s" % toKC(L[r*columns + columns-c_counter-1]) + if r_counter or c_counter: + l_code += "," + l_code += '\n' + if layer + 1 != len(layout.layers): + l_code += "\t),\n\n" + else: + l_code += "\t)\n" + f_keymap.write(l_code) + if doCopy: + f_keymap.write(line) + + +def getKeymapJSON(keyboard, keymap, layout, layers): + return json.dumps({ + 'keyboard': keyboard, + 'keymap': keymap, + 'layout': layout, + 'layers': layers + }, sort_keys=True, indent=4) + + +def getKeymapAsciidoc(title, layers, columns, rows): + yield '= ' + title + yield '' + for id, layer in enumerate(layers): + keymap = getKeymapText(id, layer, columns, rows) + if len(keymap): + yield '.' + keymap[0] + yield '--------------------------' + for line in keymap[1:]: + yield ' ' + line + yield '--------------------------' + yield '' + + +def layersToKC(layers): + return [list(map(toKC, layer)) for layer in layers] + + +def pathToKeymap(path): + head, keymap = os.path.split(path) + _, keymapsdir = os.path.split(head) + if keymapsdir == 'keymaps': + return keymap + + +def pathToKeyboard(path): + head, keymap = os.path.split(path) + head, keymapsdir = os.path.split(head) + if keymapsdir == 'keymaps': + head, dir = os.path.split(head) + while dir not in ('/', 'keyboards'): + yield dir + head, dir = os.path.split(head) + + +if __name__ == "__main__": + with open("km_template.txt", mode="r") as f_template: + with open("keymap.c", mode="w", encoding='utf-8') as f_keymap: + writeKeymap(f_template, f_keymap, layout.layers, columns=12, rows=4) + + abspath = os.path.dirname(os.path.abspath(__file__)) + keyboard = list(reversed(list(pathToKeyboard(abspath)))) + keymap = pathToKeymap(abspath) + keyboard_layout = 'LAYOUT_ortho_4x12' + with open("%s_%s.json" % ('_'.join(keyboard), keymap), mode="w") as f_keymapjson: + f_keymapjson.write( + getKeymapJSON( + '/'.join(keyboard), + keymap, + keyboard_layout, + layersToKC(layout.layers)) + ) + + with open("keymap.adoc", mode="w") as f_keymapasciidoc: + f_keymapasciidoc.write('\n'.join(getKeymapAsciidoc('Signum 3.0 %s_%s' % ('_'.join(keyboard), keymap), layout.layers, columns=12, rows=4))) + print("Run the following command to generate a PDF from the keymap") + print("a2x -f pdf --xsltproc-opts '--stringparam page.orientation landscape --stringparam body.font.master 12' --fop -v keymap.adoc") diff --git a/keyboards/signum/3_0/keymaps/default/keymap.c b/keyboards/signum/3_0/keymaps/default/keymap.c new file mode 100644 index 0000000000..15cf215305 --- /dev/null +++ b/keyboards/signum/3_0/keymaps/default/keymap.c @@ -0,0 +1,761 @@ +/* keymap.c is auto-generated, don't edit it directly. + * Further instructions are provided in readme.md */ + +#include QMK_KEYBOARD_H + +enum unicode_name { +AB_ARC, +AB_LINE, +AB_VEC, +ACUTE, +AE, +ALEPH, +ALLA_BR, +ALPHA, +AND, +AND_, +ANGLE, +AST_MID, +A_SET, +BARLINE, +BARLINE_D, +BARLINE_FIN, +BETA, +BETH, +BICOND, +BIG_O, +BISHOP_B, +BISHOP_W, +BITCOIN, +BOTTOM, +BOWTIE, +BRA, +BULLET, +B_SET, +CENT, +CHI, +CIRCLE, +CIRC_MID, +CLUBS_B, +CLUBS_W, +CODA, +COMMON_T, +COPYR, +CORRESP, +CROSS, +CURRENCY, +C_CLEF, +C_SET, +DACAPO, +DALSEGNO, +DEFINE, +DEGREE, +DELTA, +DIAMS_B, +DIAMS_W, +DIGAMMA, +DIVISION, +DOTS, +DOT_OP, +DQT1, +DQT2, +DQT3, +DQT4, +DQT5, +EIGHTH_N, +EIGHTH_P, +EJECT, +EMBED, +EMDASH, +EMPTYSET, +EPSILON, +EQUIV, +ETA, +EURO, +EXISTS, +FEMALE, +FLAG_B, +FLAG_W, +FLAT, +FORALL, +FORWARD, +FOURIER, +FULL_OUTER, +F_CLEF, +F_SET, +GAMMA, +GREAT_GREAT, +GR_EQ, +G_CLEF, +HALF_N, +HALF_P, +HAMILTON, +HEARTS_B, +HEARTS_W, +HETA, +H_SET, +IMAG_P, +IMPL, +IMPL_REV, +IN, +INDICATOR, +INEQUAL, +INFO, +INFTY, +INTEGRAL, +INTERS, +INTERS_, +INV_EXCL, +INV_QST, +IOTA, +ISOMORPH, +KAPPA, +KET, +KEY, +KING_B, +KING_W, +KNIGHT_B, +KNIGHT_W, +KOPPA, +K_SET, +LAMBDA, +LAPLACE, +LEFT_CEIL, +LEFT_FLOOR, +LEFT_OUTER, +LENGTH, +LESS_LESS, +LETTER, +LOCK, +LOCK_OPEN, +LS_EQ, +LTIMES, +MALE, +MAPSTO, +MDOT, +MICRO, +MINUS_OP, +MINUS_PLUS, +MINUTE, +MODELS, +MY, +M_ANGLE, +NABLA, +NATURAL, +NO, +NOT, +NOTIN, +NOTSUBS, +NOT_DIV, +NOT_PARA, +NY, +N_SET, +N_TILDE, +OE, +OHM, +OMEGA, +OMIKRON, +OR, +OR_, +PARALLEL, +PARTIAL, +PAWN_B, +PAWN_W, +PEDAL, +PEDAL_UP, +PERMIL, +PHI, +PHONE, +PI, +PLAY, +PLUS_MINUS, +PLUS_OP, +POUND, +POWERSET, +PRED, +PROD_, +PROP_TO, +PR_SUBSET, +PSI, +QED, +QUART_N, +QUART_P, +QUEEN_B, +QUEEN_W, +Q_SET, +REAL_P, +REGTM, +REPEAT_E, +REPEAT_S, +REWIND, +RHO, +RIGHT_CEIL, +RIGHT_FLOOR, +RIGHT_OUTER, +RIGHT_TACK, +ROOK_B, +ROOK_W, +ROOT, +ROUGHLY, +RTIMES, +R_SET, +SAMPI, +SAN, +SCHO, +SECOND, +SECTION, +SEGNO, +SETMINUS, +SHARP, +SHOGI_B, +SHOGI_BD, +SHOGI_W, +SHOGI_WD, +SIGMA, +SIXT_N, +SIXT_P, +SNEK, +SPADES_B, +SPADES_W, +SPEAKER_DN, +SPEAKER_TG, +SPEAKER_UP, +SQT1, +SQT2, +SQT3, +SQT4, +SQT5, +SQUARE, +SQ_LS, +SQ_LS_EQ, +STAFF, +STIGMA, +STOP, +SUBSET, +SUBSET_REV, +SUCC, +SUM_, +SUP1, +SUP2, +SUP3, +SUP_A, +SUP_MIN, +SUP_O, +SZ, +TAU, +THETA, +TIMES, +TIMES_OP, +TMARK, +TO, +TOP, +TRIANGLE, +UE, +UNION, +UNION_, +U_SET, +WHOLE_N, +WHOLE_P, +XI, +YEN, +YES, +YPSI2, +YPSILON, +ZETA, +Z_SET, +ae, +alpha, +beta, +beta2, +chi, +delta, +digamma, +e_FUN, +epsi2, +epsilon, +eta, +gamma, +heta, +i_UNIT, +iota, +kappa, +kappa2, +koppa, +lambda, +my, +n_tilde, +ny, +oe, +omega, +omikron, +phi, +phi2, +pi, +pi2, +psi, +rho, +rho2, +sampi, +san, +scho, +sigma, +sigma2, +sigma3, +stigma, +sz, +tau, +theta, +theta2, +ue, +xi, +ypsilon, +zeta +}; + +const uint32_t PROGMEM unicode_map[] = { + [AB_ARC] = 0x0361, // ͡ + [AB_LINE] = 0x0305, // ̅ + [AB_VEC] = 0x20d7, // ⃗ + [ACUTE] = 0x00b4, // ´ + [AE] = 0x00c4, // Ä + [ALEPH] = 0x2135, // ℵ + [ALLA_BR] = 0x1d135, // 𝄵 + [ALPHA] = 0x0391, // Α + [AND] = 0x2227, // ∧ + [AND_] = 0x22c0, // ⋀ + [ANGLE] = 0x2220, // ∠ + [AST_MID] = 0x2217, // ∗ + [A_SET] = 0x1d538, // 𝔸 + [BARLINE] = 0x1d100, // 𝄀 + [BARLINE_D] = 0x1d101, // 𝄁 + [BARLINE_FIN] = 0x1d102, // 𝄂 + [BETA] = 0x0392, // Β + [BETH] = 0x2136, // ℶ + [BICOND] = 0x21d4, // ⇔ + [BIG_O] = 0x1d4aa, // 𝒪 + [BISHOP_B] = 0x265d, // ♝ + [BISHOP_W] = 0x2657, // ♗ + [BITCOIN] = 0x20bf, // ₿ + [BOTTOM] = 0x22a5, // ⊥ + [BOWTIE] = 0x22c8, // ⋈ + [BRA] = 0x27e8, // ⟨ + [BULLET] = 0x2022, // • + [B_SET] = 0x1d539, // 𝔹 + [CENT] = 0x00a2, // ¢ + [CHI] = 0x03a7, // Χ + [CIRCLE] = 0x25cb, // ○ + [CIRC_MID] = 0x2218, // ∘ + [CLUBS_B] = 0x2663, // ♣ + [CLUBS_W] = 0x2667, // ♧ + [CODA] = 0x1d10c, // 𝄌 + [COMMON_T] = 0x1d134, // 𝄴 + [COPYR] = 0x00a9, // © + [CORRESP] = 0x2259, // ≙ + [CROSS] = 0x2020, // † + [CURRENCY] = 0x00a4, // ¤ + [C_CLEF] = 0x1d121, // 𝄡 + [C_SET] = 0x2102, // ℂ + [DACAPO] = 0x1d10a, // 𝄊 + [DALSEGNO] = 0x1d109, // 𝄉 + [DEFINE] = 0x2254, // ≔ + [DEGREE] = 0x00b0, // ° + [DELTA] = 0x0394, // Δ + [DIAMS_B] = 0x2666, // ♦ + [DIAMS_W] = 0x2662, // ♢ + [DIGAMMA] = 0x03dc, // Ϝ + [DIVISION] = 0x00f7, // ÷ + [DOTS] = 0x2026, // … + [DOT_OP] = 0x2299, // ⊙ + [DQT1] = 0x00bb, // » + [DQT2] = 0x201e, // „ + [DQT3] = 0x201c, // “ + [DQT4] = 0x201d, // ” + [DQT5] = 0x00ab, // « + [EIGHTH_N] = 0x1d160, // 𝅘𝅥𝅮 + [EIGHTH_P] = 0x1d13e, // 𝄾 + [EJECT] = 0x23cf, // ⏏ + [EMBED] = 0x21aa, // ↪ + [EMDASH] = 0x2014, // — + [EMPTYSET] = 0x2205, // ∅ + [EPSILON] = 0x0395, // Ε + [EQUIV] = 0x2261, // ≡ + [ETA] = 0x0397, // Η + [EURO] = 0x20ac, // € + [EXISTS] = 0x2203, // ∃ + [FEMALE] = 0x2640, // ♀ + [FLAG_B] = 0x2691, // ⚑ + [FLAG_W] = 0x2690, // ⚐ + [FLAT] = 0x266d, // ♭ + [FORALL] = 0x2200, // ∀ + [FORWARD] = 0x23ed, // ⏭ + [FOURIER] = 0x2131, // ℱ + [FULL_OUTER] = 0x27d7, // ⟗ + [F_CLEF] = 0x1d122, // 𝄢 + [F_SET] = 0x1d53d, // 𝔽 + [GAMMA] = 0x0393, // Γ + [GREAT_GREAT] = 0x226b, // ≫ + [GR_EQ] = 0x2265, // ≥ + [G_CLEF] = 0x1d11e, // 𝄞 + [HALF_N] = 0x1d15e, // 𝅗𝅥 + [HALF_P] = 0x1d13c, // 𝄼 + [HAMILTON] = 0x210b, // ℋ + [HEARTS_B] = 0x2665, // ♥ + [HEARTS_W] = 0x2661, // ♡ + [HETA] = 0x0370, // Ͱ + [H_SET] = 0x210d, // ℍ + [IMAG_P] = 0x2111, // ℑ + [IMPL] = 0x21d2, // ⇒ + [IMPL_REV] = 0x21d0, // ⇐ + [IN] = 0x2208, // ∈ + [INDICATOR] = 0x1d7cf, // 𝟏 + [INEQUAL] = 0x2260, // ≠ + [INFO] = 0x1f6c8, // 🛈 + [INFTY] = 0x221e, // ∞ + [INTEGRAL] = 0x222b, // ∫ + [INTERS] = 0x2229, // ∩ + [INTERS_] = 0x22c2, // ⋂ + [INV_EXCL] = 0x00a1, // ¡ + [INV_QST] = 0x00bf, // ¿ + [IOTA] = 0x0399, // Ι + [ISOMORPH] = 0x2245, // ≅ + [KAPPA] = 0x039a, // Κ + [KET] = 0x27e9, // ⟩ + [KEY] = 0x1f511, // 🔑 + [KING_B] = 0x265a, // ♚ + [KING_W] = 0x2654, // ♔ + [KNIGHT_B] = 0x265e, // ♞ + [KNIGHT_W] = 0x2658, // ♘ + [KOPPA] = 0x03d8, // Ϙ + [K_SET] = 0x1d542, // 𝕂 + [LAMBDA] = 0x039b, // Λ + [LAPLACE] = 0x2112, // ℒ + [LEFT_CEIL] = 0x2308, // ⌈ + [LEFT_FLOOR] = 0x230a, // ⌊ + [LEFT_OUTER] = 0x27d5, // ⟕ + [LENGTH] = 0x2113, // ℓ + [LESS_LESS] = 0x226a, // ≪ + [LETTER] = 0x2709, // ✉ + [LOCK] = 0x1f512, // 🔒 + [LOCK_OPEN] = 0x1f513, // 🔓 + [LS_EQ] = 0x2264, // ≤ + [LTIMES] = 0x22c9, // ⋉ + [MALE] = 0x2642, // ♂ + [MAPSTO] = 0x27fc, // ⟼ + [MDOT] = 0x22c5, // ⋅ + [MICRO] = 0x00b5, // µ + [MINUS_OP] = 0x2296, // ⊖ + [MINUS_PLUS] = 0x2213, // ∓ + [MINUTE] = 0x02b9, // ʹ + [MODELS] = 0x22a7, // ⊧ + [MY] = 0x039c, // Μ + [M_ANGLE] = 0x2221, // ∡ + [NABLA] = 0x2207, // ∇ + [NATURAL] = 0x266e, // ♮ + [NO] = 0x2717, // ✗ + [NOT] = 0x00ac, // ¬ + [NOTIN] = 0x2209, // ∉ + [NOTSUBS] = 0x2288, // ⊈ + [NOT_DIV] = 0x2224, // ∤ + [NOT_PARA] = 0x2226, // ∦ + [NY] = 0x039d, // Ν + [N_SET] = 0x2115, // ℕ + [N_TILDE] = 0x00d1, // Ñ + [OE] = 0x00d6, // Ö + [OHM] = 0x2126, // Ω + [OMEGA] = 0x03a9, // Ω + [OMIKRON] = 0x039f, // Ο + [OR] = 0x2228, // ∨ + [OR_] = 0x22c1, // ⋁ + [PARALLEL] = 0x2225, // ∥ + [PARTIAL] = 0x2202, // ∂ + [PAWN_B] = 0x265f, // ♟ + [PAWN_W] = 0x2659, // ♙ + [PEDAL] = 0x1d1ae, // 𝆮 + [PEDAL_UP] = 0x1d1af, // 𝆯 + [PERMIL] = 0x2030, // ‰ + [PHI] = 0x03a6, // Φ + [PHONE] = 0x2706, // ✆ + [PI] = 0x03a0, // Π + [PLAY] = 0x23ef, // ⏯ + [PLUS_MINUS] = 0x00b1, // ± + [PLUS_OP] = 0x2295, // ⊕ + [POUND] = 0x00a3, // £ + [POWERSET] = 0x1d4ab, // 𝒫 + [PRED] = 0x227a, // ≺ + [PROD_] = 0x220f, // ∏ + [PROP_TO] = 0x221d, // ∝ + [PR_SUBSET] = 0x2282, // ⊂ + [PSI] = 0x03a8, // Ψ + [QED] = 0x220e, // ∎ + [QUART_N] = 0x1d15f, // 𝅘𝅥 + [QUART_P] = 0x1d13d, // 𝄽 + [QUEEN_B] = 0x265b, // ♛ + [QUEEN_W] = 0x2655, // ♕ + [Q_SET] = 0x211a, // ℚ + [REAL_P] = 0x211c, // ℜ + [REGTM] = 0x00ae, // ® + [REPEAT_E] = 0x1d107, // 𝄇 + [REPEAT_S] = 0x1d106, // 𝄆 + [REWIND] = 0x23ee, // ⏮ + [RHO] = 0x03a1, // Ρ + [RIGHT_CEIL] = 0x2309, // ⌉ + [RIGHT_FLOOR] = 0x230b, // ⌋ + [RIGHT_OUTER] = 0x27d6, // ⟖ + [RIGHT_TACK] = 0x22a2, // ⊢ + [ROOK_B] = 0x265c, // ♜ + [ROOK_W] = 0x2656, // ♖ + [ROOT] = 0x221a, // √ + [ROUGHLY] = 0x2248, // ≈ + [RTIMES] = 0x22ca, // ⋊ + [R_SET] = 0x211d, // ℝ + [SAMPI] = 0x0372, // Ͳ + [SAN] = 0x03fa, // Ϻ + [SCHO] = 0x03f7, // Ϸ + [SECOND] = 0x02ba, // ʺ + [SECTION] = 0x00a7, // § + [SEGNO] = 0x1d10b, // 𝄋 + [SETMINUS] = 0x2216, // ∖ + [SHARP] = 0x266f, // ♯ + [SHOGI_B] = 0x2617, // ☗ + [SHOGI_BD] = 0x26ca, // ⛊ + [SHOGI_W] = 0x2616, // ☖ + [SHOGI_WD] = 0x26c9, // ⛉ + [SIGMA] = 0x03a3, // Σ + [SIXT_N] = 0x1d161, // 𝅘𝅥𝅯 + [SIXT_P] = 0x1d13f, // 𝄿 + [SNEK] = 0x1f40d, // 🐍 + [SPADES_B] = 0x2660, // ♠ + [SPADES_W] = 0x2664, // ♤ + [SPEAKER_DN] = 0x1f509, // 🔉 + [SPEAKER_TG] = 0x1f507, // 🔇 + [SPEAKER_UP] = 0x1f50a, // 🔊 + [SQT1] = 0x203a, // › + [SQT2] = 0x201a, // ‚ + [SQT3] = 0x2018, // ‘ + [SQT4] = 0x2019, // ’ + [SQT5] = 0x2039, // ‹ + [SQUARE] = 0x25a1, // □ + [SQ_LS] = 0x228f, // ⊏ + [SQ_LS_EQ] = 0x2291, // ⊑ + [STAFF] = 0x1d11a, // 𝄚 + [STIGMA] = 0x03da, // Ϛ + [STOP] = 0x25fc, // ◼ + [SUBSET] = 0x2286, // ⊆ + [SUBSET_REV] = 0x2287, // ⊇ + [SUCC] = 0x227b, // ≻ + [SUM_] = 0x2211, // ∑ + [SUP1] = 0x00b9, // ¹ + [SUP2] = 0x00b2, // ² + [SUP3] = 0x00b3, // ³ + [SUP_A] = 0x00aa, // ª + [SUP_MIN] = 0x207b, // ⁻ + [SUP_O] = 0x00ba, // º + [SZ] = 0x1e9e, // ẞ + [TAU] = 0x03a4, // Τ + [THETA] = 0x0398, // Θ + [TIMES] = 0x00d7, // × + [TIMES_OP] = 0x2297, // ⊗ + [TMARK] = 0x2122, // ™ + [TO] = 0x27f6, // ⟶ + [TOP] = 0x22a4, // ⊤ + [TRIANGLE] = 0x25b3, // △ + [UE] = 0x00dc, // Ü + [UNION] = 0x222a, // ∪ + [UNION_] = 0x22c3, // ⋃ + [U_SET] = 0x1d54c, // 𝕌 + [WHOLE_N] = 0x1d15d, // 𝅝 + [WHOLE_P] = 0x1d13b, // 𝄻 + [XI] = 0x039e, // Ξ + [YEN] = 0x00a5, // ¥ + [YES] = 0x2713, // ✓ + [YPSI2] = 0x03d2, // ϒ + [YPSILON] = 0x03a5, // Υ + [ZETA] = 0x0396, // Ζ + [Z_SET] = 0x2124, // ℤ + [ae] = 0x00e4, // ä + [alpha] = 0x03b1, // α + [beta] = 0x03b2, // β + [beta2] = 0x03d0, // ϐ + [chi] = 0x03c7, // χ + [delta] = 0x03b4, // δ + [digamma] = 0x03dd, // ϝ + [e_FUN] = 0x0065, // e + [epsi2] = 0x03f5, // ϵ + [epsilon] = 0x03b5, // ε + [eta] = 0x03b7, // η + [gamma] = 0x03b3, // γ + [heta] = 0x0371, // ͱ + [i_UNIT] = 0x0069, // i + [iota] = 0x03b9, // ι + [kappa] = 0x03ba, // κ + [kappa2] = 0x03f0, // ϰ + [koppa] = 0x03d9, // ϙ + [lambda] = 0x03bb, // λ + [my] = 0x03bc, // μ + [n_tilde] = 0x00f1, // ñ + [ny] = 0x03bd, // ν + [oe] = 0x00f6, // ö + [omega] = 0x03c9, // ω + [omikron] = 0x03bf, // ο + [phi] = 0x03c6, // φ + [phi2] = 0x03d5, // ϕ + [pi] = 0x03c0, // π + [pi2] = 0x03d6, // ϖ + [psi] = 0x03c8, // ψ + [rho] = 0x03c1, // ρ + [rho2] = 0x03f1, // ϱ + [sampi] = 0x0373, // ͳ + [san] = 0x03fb, // ϻ + [scho] = 0x03f8, // ϸ + [sigma] = 0x03c3, // σ + [sigma2] = 0x03c2, // ς + [sigma3] = 0x03f2, // ϲ + [stigma] = 0x03db, // ϛ + [sz] = 0x00df, // ß + [tau] = 0x03c4, // τ + [theta] = 0x03b8, // θ + [theta2] = 0x03d1, // ϑ + [ue] = 0x00fc, // ü + [xi] = 0x03be, // ξ + [ypsilon] = 0x03c5, // υ + [zeta] = 0x03b6 // ζ +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* + * Layer 0 + * ------------------------------------------------- ------------------------------------------------- + * | Tab | q | w | e | r | t | | y | u | i | o | p | [ | + * ------------------------------------------------- ------------------------------------------------- + * |LCtTEsc| a | s | d | f | g | | h | j | k | l | ; | ' | + * ------------------------------------------------- ------------------------------------------------- + * |LShift(| z | x | c | v | b | | n | m | , | . | / |RShift)| + * ----------------------------------------------------------------------------------------------------------------- + * LCtrl[ LAlt LGui | TT2 |LT6_SPC|LT4_DEL|LT4_ENT| Space |LT2_BSP| RGui RLAlt RCtrl] + * ------------------------------------------------- + */ + LAYOUT_ortho_4x12( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + LCTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, + LCTL_T(KC_LBRC), KC_LALT, KC_LGUI, TT(2), LT(6,KC_SPC), LT(4,KC_DEL), LT(4,KC_ENT), KC_SPC, LT(2,KC_BSPC), KC_RGUI, LALT_T(KC_RALT), RCTL_T(KC_RBRC) + ), + +/* + * Layer 1 + * ------------------------------------------------- ------------------------------------------------- + * | Tab | q | w | f | p | g | | j | l | u | y | ; | [ | + * ------------------------------------------------- ------------------------------------------------- + * |LCtTEsc| a | r | s | t | d | | h | n | e | i | o | ' | + * ------------------------------------------------- ------------------------------------------------- + * |LShift(| z | x | c | v | b | | k | m | , | . | / |RShift)| + * ----------------------------------------------------------------------------------------------------------------- + * LCtrl[ LAlt LGui | TT2 |LT6_SPC|LT4_DEL|LT4_ENT| Space |LT2_BSP| RGui RLAlt RCtrl] + * ------------------------------------------------- + */ + LAYOUT_ortho_4x12( + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, + LCTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, + LCTL_T(KC_LBRC), KC_LALT, KC_LGUI, TT(2), LT(6,KC_SPC), LT(4,KC_DEL), LT(4,KC_ENT), KC_SPC, LT(2,KC_BSPC), KC_RGUI, LALT_T(KC_RALT), RCTL_T(KC_RBRC) + ), + +/* + * Layer 2 + * ------------------------------------------------- ------------------------------------------------- + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ] | + * ------------------------------------------------- ------------------------------------------------- + * | | DF0 | DF1 | XXX | MO3 | MO3 | | 4 | 4 | 5 | 6 | - | = | + * ------------------------------------------------- ------------------------------------------------- + * | | MO5 | XXX | XXX | XXX | XXX | | 1 | 1 | 2 | 3 | \ | | + * ----------------------------------------------------------------------------------------------------------------- + * TG2 | | | Del | | 0 |BSpace | + * ------------------------------------------------- + */ + LAYOUT_ortho_4x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC, + KC_TRNS, DF(0), DF(1), KC_NO, MO(3), MO(3), KC_4, KC_4, KC_5, KC_6, KC_MINS, KC_EQL, + KC_TRNS, MO(5), KC_NO, KC_NO, KC_NO, KC_NO, KC_1, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, + TG(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_0, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS + ), + +/* + * Layer 3 + * ------------------------------------------------- ------------------------------------------------- + * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | XXX | + * ------------------------------------------------- ------------------------------------------------- + * | | XXX | XXX | XXX | MO3 | MO3 | | F4 | F4 | F5 | F6 | F11 | XXX | + * ------------------------------------------------- ------------------------------------------------- + * | | XXX | XXX | XXX | XXX | XXX | | F1 | F1 | F2 | F3 | F12 | | + * ----------------------------------------------------------------------------------------------------------------- + * TG3 | | | | | | | + * ------------------------------------------------- + */ + LAYOUT_ortho_4x12( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO, + KC_TRNS, KC_NO, KC_NO, KC_NO, MO(3), MO(3), KC_F4, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F1, KC_F1, KC_F2, KC_F3, KC_F12, KC_TRNS, + TG(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + +/* + * Layer 4 + * ------------------------------------------------- ------------------------------------------------- + * | Esc | Esc | Tab x | Tab n |CPg Dn |CPg Dn | |Pg Down| Home |^ Arrow|Insert |SInsert| Esc | + * ------------------------------------------------- ------------------------------------------------- + * | | Caps | < Gui |Gui Tab| > Gui | > Gui | |< Arrow|< Arrow|v Arrow|> Arrow| End |Pr Scr | + * ------------------------------------------------- ------------------------------------------------- + * | | XXX | XXX | XXX |CPg Up |CPg Up | | Pg Up | |v Arrow| XXX | App | | + * ----------------------------------------------------------------------------------------------------------------- + * TG4 | | | Del | |BSpace | | + * ------------------------------------------------- + */ + LAYOUT_ortho_4x12( + KC_ESC, KC_ESC, LCTL(KC_W), LCTL(KC_T), LCTL(KC_PGDN), LCTL(KC_PGDN), KC_PGDN, KC_HOME, KC_UP, KC_INS, LSFT(KC_INS), KC_ESC, + KC_TRNS, KC_CAPS, LGUI(KC_LEFT), LGUI(KC_TAB), LGUI(KC_RGHT), LGUI(KC_RGHT), KC_LEFT, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_PSCR, + KC_TRNS, KC_NO, KC_NO, KC_NO, LCTL(KC_PGUP), LCTL(KC_PGUP), KC_PGUP, KC_TRNS, KC_DOWN, KC_NO, KC_APP, KC_TRNS, + TG(4), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + +/* + * Layer 5 + * ------------------------------------------------- ------------------------------------------------- + * | | XXX |play/ps| Vol + | Vol + | XXX | | XXX | XXX | XXX | XXX |_reset | Power | + * ------------------------------------------------- ------------------------------------------------- + * | | XXX | |<< | Vol 0 | >>| | XXX | | XXX | XXX | XXX | XXX | XXX | Sleep | + * ------------------------------------------------- ------------------------------------------------- + * | | MO5 | XXX | Vol - | Vol - | XXX | | XXX | XXX | XXX | XXX | XXX | XXX | + * ----------------------------------------------------------------------------------------------------------------- + * TG5 | | | | | | | + * ------------------------------------------------- + */ + LAYOUT_ortho_4x12( + KC_TRNS, KC_NO, KC_MPLY, KC_VOLU, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET, KC_PWR, + KC_TRNS, KC_NO, KC_MPRV, KC_MUTE, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SLEP, + KC_TRNS, MO(5), KC_NO, KC_VOLD, KC_VOLD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + TG(5), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + +/* + * Layer 6 + * ------------------------------------------------- ------------------------------------------------- + * | | acc1 | XXX | XXX | XXX | XXX | |^ Wheel|< Wheel|^ Mouse|> Wheel| XXX | XXX | + * ------------------------------------------------- ------------------------------------------------- + * | | acc2 |Mouse 2|Mouse 3|Mouse 1|Mouse 1| |< Mouse|< Mouse|v Mouse|> Mouse| XXX | XXX | + * ------------------------------------------------- ------------------------------------------------- + * | | acc0 | XXX | XXX | XXX | XXX | |v Wheel| XXX |v Mouse| XXX | XXX | | + * ----------------------------------------------------------------------------------------------------------------- + * TG6 | | | | | | | + * ------------------------------------------------- + */ + LAYOUT_ortho_4x12( + KC_TRNS, KC_ACL1, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_U, KC_WH_L, KC_MS_U, KC_WH_R, KC_NO, KC_NO, + KC_TRNS, KC_ACL2, KC_BTN2, KC_BTN3, KC_BTN1, KC_BTN1, KC_MS_L, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO, + KC_TRNS, KC_ACL0, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_D, KC_NO, KC_MS_D, KC_NO, KC_NO, KC_TRNS, + TG(6), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + +/* vi: ft=c:tw=80:sw=2:ts=2:sts=2:et + */ diff --git a/keyboards/signum/3_0/keymaps/default/km_template.txt b/keyboards/signum/3_0/keymaps/default/km_template.txt new file mode 100644 index 0000000000..47b35ee514 --- /dev/null +++ b/keyboards/signum/3_0/keymaps/default/km_template.txt @@ -0,0 +1,20 @@ +/* keymap.c is auto-generated, don't edit it directly. + * Further instructions are provided in readme.md */ + +#include QMK_KEYBOARD_H + +enum unicode_name { +// +}; + +const uint32_t PROGMEM unicode_map[] = { +// +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// +}; + +/* vi: ft=c:tw=80:sw=2:ts=2:sts=2:et + */ diff --git a/keyboards/signum/3_0/keymaps/default/layout.py b/keyboards/signum/3_0/keymaps/default/layout.py new file mode 100644 index 0000000000..1e43e25c57 --- /dev/null +++ b/keyboards/signum/3_0/keymaps/default/layout.py @@ -0,0 +1,495 @@ +# -*- coding: utf-8 -*- + +# Add all used Unicode symbols to this list. +# 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. +# The key is also used in this file to define the layout, so use recognizeable names. +# The value (e.g. "0x1f40d") is used in keymap.c for "unicode_map" and to automatically generate the "ASCII"-art comments. +# When adding new Unicode names, use "0x1f40d" until you looked up the correct Unicode code point. +uc_dict = { + "SNEK": "0x1f40d", ## Error + ## qwertz + "ACUTE": "0x00b4", + ## QWERTZ + "INV_EXCL": "0x00a1", + "INV_QST": "0x00bf", + ## numpad + "SUP1": "0x00b9", + "SUP2": "0x00b2", + "SUP3": "0x00b3", + "SUP_MIN": "0x207b", + "ROOT": "0x221a", + "DEGREE": "0x00b0", + "MINUTE": "0x02b9", + "SECOND": "0x02ba", + "CURRENCY": "0x00a4", + "CENT": "0x00a2", + "YEN": "0x00a5", + "POUND": "0x00a3", + "EURO": "0x20ac", + "DIVISION": "0x00f7", + "MICRO": "0x00b5", + "OHM": "0x2126", + "BITCOIN": "0x20bf", + "SECTION": "0x00a7", + ## NAV_TYPO + "SQT1": "0x203a", + "SQT2": "0x201a", + "SQT3": "0x2018", + "SQT4": "0x2019", + "SQT5": "0x2039", + "SUP_A": "0x00aa", + "SUP_O": "0x00ba", + "TMARK": "0x2122", + "COPYR": "0x00a9", + "REGTM": "0x00ae", + "DOTS": "0x2026", + "CROSS": "0x2020", + "BULLET": "0x2022", + "EMDASH": "0x2014", + "PERMIL": "0x2030", + "DQT1": "0x00bb", + "DQT2": "0x201e", + "DQT3": "0x201c", + "DQT4": "0x201d", + "DQT5": "0x00ab", + ## lang + "ae": "0x00e4", + "oe": "0x00f6", + "ue": "0x00fc", + "sz": "0x00df", + "n_tilde": "0x00f1", + ## LANG + "AE": "0x00c4", + "OE": "0x00d6", + "UE": "0x00dc", + "SZ": "0x1e9e", + "N_TILDE": "0x00d1", + ## greek + "alpha": "0x03b1", + "beta": "0x03b2", + "gamma": "0x03b3", + "delta": "0x03b4", + "epsilon": "0x03b5", + "zeta": "0x03b6", + "eta": "0x03b7", + "theta": "0x03b8", + "iota": "0x03b9", + "kappa": "0x03ba", + "lambda": "0x03bb", + "my": "0x03bc", + "ny": "0x03bd", + "xi": "0x03be", + "omikron": "0x03bf", + "pi": "0x03c0", + "rho": "0x03c1", + "sigma": "0x03c3", + "tau": "0x03c4", + "ypsilon": "0x03c5", + "phi": "0x03c6", + "chi": "0x03c7", + "psi": "0x03c8", + "omega": "0x03c9", + # variants + "beta2": "0x03d0", + "epsi2": "0x03f5", + "theta2": "0x03d1", + "kappa2": "0x03f0", + "pi2": "0x03d6", + "rho2": "0x03f1", + "sigma2": "0x03c2", + "sigma3": "0x03f2", + "phi2": "0x03d5", + # non-standard + "digamma": "0x03dd", + "stigma": "0x03db", + "heta": "0x0371", + "san": "0x03fb", + "koppa": "0x03d9", + "sampi": "0x0373", + "scho": "0x03f8", + ## GREEK + "ALPHA": "0x0391", + "BETA": "0x0392", + "GAMMA": "0x0393", + "DELTA": "0x0394", + "EPSILON": "0x0395", + "ZETA": "0x0396", + "ETA": "0x0397", + "THETA": "0x0398", + "IOTA": "0x0399", + "KAPPA": "0x039a", + "LAMBDA": "0x039b", + "MY": "0x039c", + "NY": "0x039d", + "XI": "0x039e", + "OMIKRON": "0x039f", + "PI": "0x03a0", + "RHO": "0x03a1", + "SIGMA": "0x03a3", + "TAU": "0x03a4", + "YPSILON": "0x03a5", + "PHI": "0x03a6", + "CHI": "0x03a7", + "PSI": "0x03a8", + "OMEGA": "0x03a9", + # variants + "YPSI2": "0x03d2", + # non-standard + "DIGAMMA": "0x03dc", + "STIGMA": "0x03da", + "HETA": "0x0370", + "SAN": "0x03fa", + "KOPPA": "0x03d8", + "SAMPI": "0x0372", + "SCHO": "0x03f7", + ## symbol + "SHOGI_WD": "0x26c9", + "FLAG_W": "0x2690", + "LETTER": "0x2709", + "PHONE": "0x2706", + "INFO": "0x1f6c8", + "REWIND": "0x23ee", + "PLAY": "0x23ef", + "FORWARD": "0x23ed", + "STOP": "0x25fc", + "EJECT": "0x23cf", + "SHOGI_W": "0x2616", + "FEMALE": "0x2640", + "MALE": "0x2642", + "NO": "0x2717", + "YES": "0x2713", + "FLAT": "0x266d", + "NATURAL": "0x266e", + "SHARP": "0x266f", + "COMMON_T": "0x1d134", + "ALLA_BR": "0x1d135", + "PAWN_W": "0x2659", + "DIAMS_W": "0x2662", + "HEARTS_W": "0x2661", + "SPADES_W": "0x2664", + "CLUBS_W": "0x2667", + "WHOLE_N": "0x1d15d", + "HALF_N": "0x1d15e", + "QUART_N": "0x1d15f", + "EIGHTH_N": "0x1d160", + "SIXT_N": "0x1d161", + "ROOK_W": "0x2656", + "KNIGHT_W": "0x2658", + "BISHOP_W": "0x2657", + "QUEEN_W": "0x2655", + "KING_W": "0x2654", + "C_CLEF": "0x1d121", + "G_CLEF": "0x1d11e", + "F_CLEF": "0x1d122", + "PEDAL": "0x1d1ae", + "PEDAL_UP": "0x1d1af", + ## SYMBOL + "SHOGI_BD": "0x26ca", + "FLAG_B": "0x2691", + "SPEAKER_UP": "0x1f50a", + "SPEAKER_TG": "0x1f507", + "SPEAKER_DN": "0x1f509", + "SHOGI_B": "0x2617", + "KEY": "0x1f511", + "LOCK": "0x1f512", + "LOCK_OPEN": "0x1f513", + "STAFF": "0x1d11a", + "BARLINE": "0x1d100", + "BARLINE_D": "0x1d101", + "BARLINE_FIN": "0x1d102", + "CODA": "0x1d10c", + "PAWN_B": "0x265f", + "DIAMS_B": "0x2666", + "HEARTS_B": "0x2665", + "SPADES_B": "0x2660", + "CLUBS_B": "0x2663", + "WHOLE_P": "0x1d13b", + "HALF_P": "0x1d13c", + "QUART_P": "0x1d13d", + "EIGHTH_P": "0x1d13e", + "SIXT_P": "0x1d13f", + "ROOK_B": "0x265c", + "KNIGHT_B": "0x265e", + "BISHOP_B": "0x265d", + "QUEEN_B": "0x265b", + "KING_B": "0x265a", + "REPEAT_S": "0x1d106", + "REPEAT_E": "0x1d107", + "SEGNO": "0x1d10b", + "DALSEGNO": "0x1d109", + "DACAPO": "0x1d10a", + ## math + "EXISTS": "0x2203", + "FORALL": "0x2200", + "EQUIV": "0x2261", + "CORRESP": "0x2259", + "INEQUAL": "0x2260", + "DEFINE": "0x2254", + "TO": "0x27f6", + "MAPSTO": "0x27fc", + "SETMINUS": "0x2216", + "QED": "0x220e", + "OR_": "0x22c1", + "AND_": "0x22c0", + "OR": "0x2228", + "AND": "0x2227", + "NOT": "0x00ac", + "BICOND": "0x21d4", + "IMPL_REV": "0x21d0", + "IMPL": "0x21d2", + "TOP": "0x22a4", + "BOTTOM": "0x22a5", + "SUM_": "0x2211", + "PROD_": "0x220f", + "MDOT": "0x22c5", + "NOTIN": "0x2209", + "IN": "0x2208", + "LS_EQ": "0x2264", + "GR_EQ": "0x2265", + "INFTY": "0x221e", + "UNION_": "0x22c3", + "INTERS_": "0x22c2", + "UNION": "0x222a", + "INTERS": "0x2229", + "NOTSUBS": "0x2288", + "PR_SUBSET": "0x2282", + "SUBSET": "0x2286", + "SUBSET_REV": "0x2287", + "EMPTYSET": "0x2205", + ## MATHSCRIPT + "LEFT_CEIL": "0x2308", + "REAL_P": "0x211c", + "NABLA": "0x2207", + "RIGHT_CEIL": "0x2309", + "LEFT_FLOOR": "0x230a", + "BRA": "0x27e8", + "IMAG_P": "0x2111", + "KET": "0x27e9", + "RIGHT_FLOOR": "0x230b", + "Q_SET": "0x211a", + "e_FUN": "0x0065", + "R_SET": "0x211d", + "Z_SET": "0x2124", + "U_SET": "0x1d54c", + "i_UNIT": "0x0069", + "BIG_O": "0x1d4aa", + "POWERSET": "0x1d4ab", + "A_SET": "0x1d538", + "INTEGRAL": "0x222b", + "PARTIAL": "0x2202", + "F_SET": "0x1d53d", + "H_SET": "0x210d", + "K_SET": "0x1d542", + "LENGTH": "0x2113", + "ALEPH": "0x2135", + "BETH": "0x2136", + "C_SET": "0x2102", + "B_SET": "0x1d539", + "N_SET": "0x2115", + "INDICATOR": "0x1d7cf", + "FOURIER": "0x2131", + "HAMILTON": "0x210b", + "LAPLACE": "0x2112", + ## MATHEXT + "RIGHT_TACK": "0x22a2", + "MODELS": "0x22a7", + "AB_VEC": "0x20d7", + "AB_LINE": "0x0305", + "AB_ARC": "0x0361", + "LESS_LESS": "0x226a", + "PRED": "0x227a", + "EMBED": "0x21aa", + "SUCC": "0x227b", + "GREAT_GREAT": "0x226b", + "TRIANGLE": "0x25b3", + "SQUARE": "0x25a1", + "CIRCLE": "0x25cb", + "DOT_OP": "0x2299", + "PLUS_OP": "0x2295", + "MINUS_OP": "0x2296", + "ROUGHLY": "0x2248", + "ISOMORPH": "0x2245", + "LTIMES": "0x22c9", + "RTIMES": "0x22ca", + "BOWTIE": "0x22c8", + "M_ANGLE": "0x2221", + "ANGLE": "0x2220", + "CIRC_MID": "0x2218", + "AST_MID": "0x2217", + "TIMES": "0x00d7", + "PLUS_MINUS": "0x00b1", + "MINUS_PLUS": "0x2213", + "LEFT_OUTER": "0x27d5", + "RIGHT_OUTER": "0x27d6", + "FULL_OUTER": "0x27d7", + "SQ_LS": "0x228f", + "SQ_LS_EQ": "0x2291", + "PROP_TO": "0x221d", + "PARALLEL": "0x2225", + "NOT_PARA": "0x2226", + "TIMES_OP": "0x2297", + "NOT_DIV": "0x2224" +} + +# Add all used Keycodes to this list. +# 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. +qmk_dict = { + # test cases (These are handled in generate_km.py within toKC() and toLgd(), so these definitions will be ignored. + # If you find "BAD" in your keymaps, then something went wrong.) + "a": "BAD", "A": "BAD", "0": "BAD", + # Basic Keycodes + "XXX": "KC_NO", "": "KC_TRNS", + "!": "S(KC_1)", "@": "S(KC_2)", "#": "S(KC_3)", "$": "S(KC_4)", "%": "S(KC_5)", + "^": "S(KC_6)", "&": "S(KC_7)", "*": "S(KC_8)", "(": "S(KC_9)", ")": "S(KC_0)", + "Enter": "KC_ENT", "Esc": "KC_ESC", "BSpace": "KC_BSPC", "Tab": "KC_TAB", + "Space": "KC_SPC", "-": "KC_MINS", "_": "S(KC_MINS)", "=": "KC_EQL", + "+": "S(KC_EQL)", "[": "KC_LBRC", "{": "S(KC_LBRC)", "]": "KC_RBRC", + "}": "S(KC_RBRC)", "\\": "KC_BSLS", "|": "S(KC_BSLS)", ";": "KC_SCLN", + ":": "S(KC_SCLN)", "'": "KC_QUOT", "\"": "S(KC_QUOT)", "`": "KC_GRV", + "~": "S(KC_GRV)", ",": "KC_COMM", "<": "S(KC_COMM)", ".": "KC_DOT", + ">": "S(KC_DOT)", "/": "KC_SLSH", "?": "S(KC_SLSH)", "Caps": "KC_CAPS", + "Pr Scr": "KC_PSCR", "Scr Lck": "KC_SLCK", "Pause": "KC_BRK", "Insert": "KC_INS", "SInsert": "LSFT(KC_INS)", + "Home": "KC_HOME", "Pg Up": "KC_PGUP", "Del": "KC_DEL", "End": "KC_END", + "Pg Down": "KC_PGDN", "> Arrow": "KC_RGHT", "< Arrow": "KC_LEFT", + "v Arrow": "KC_DOWN", "^ Arrow": "KC_UP", + # Keypad keycodes missing + "App": "KC_APP", "Menu": "KC_MENU", + # Command keycodes missing (Execute, Help, ..., Find) + # Basic Keycodes missing from Print Screen onwards, included as fallback + # random Keycodes + "RGui": "KC_RGUI", "LGui": "KC_LGUI", "LAlt": "KC_LALT", "RLAlt": "LALT_T(KC_RALT)", "RAlt": "KC_RALT", "LShift": "KC_LSFT", "LCtrl": "KC_LCTL", "LCtTBsp": "LCTL_T(KC_BSPC)", "LCtTEsc": "LCTL_T(KC_ESC)", "RCtrl": "KC_RCTL", + "LShift(": "KC_LSPO", "RShift)": "KC_RSPC", + # "LShift(": "LSFT_T(KC_9)", "RShift)": "RSFT_T(RSFT(KC_0))", + "LCtrl[": "LCTL_T(KC_LBRC)", "RCtrl]": "RCTL_T(KC_RBRC)", + "L1_ENT": "LT(1, KC_ENT)", "LT2_BSP": "LT(2,KC_BSPC)", "LT4_DEL": "LT(4,KC_DEL)", "LT4_ENT": "LT(4,KC_ENT)", "LT6_SPC": "LT(6,KC_SPC)", + "CPg Dn": "LCTL(KC_PGDN)", "CPg Up": "LCTL(KC_PGUP)", + "S_Enter": "S(KC_ENT)", "S_Tab": "S(KC_TAB)", "Compose": "KC_ALGR", + "RShift": "KC_RSFT", + "Vol 0": "KC_MUTE", "Vol +": "KC_VOLU", "Vol -": "KC_VOLD", + ">>|": "KC_MNXT", "|<<": "KC_MPRV", "play/ps": "KC_MPLY", + "Bri +": "KC_BRIU", "Bri -": "KC_BRID", + # Quantum Keycodes + "_reset": "RESET", "_debug": "DEBUG", "_eep_re": "EEP_RST", + # Audio Keys missing + # Backlighting + "Led 0": "BL_TOGG", "Led +": "BL_INC", "Led -": "BL_DEC", "Led ~": "BL_BRTG", + # Bootmagic missing + # Bluetooth + "OUT_AUTO": "OUT_AUTO", "OUT_USB": "OUT_USB", "OUT_BT": "OUT_BT", + # Layer Switching missing, Lx -> MO(x), Tx -> TG(x) + "qwertz": "DF(0)", "neo": "DF(2)", + # Mouse Keys + "^ Mouse": "KC_MS_U", "v Mouse": "KC_MS_D", "< Mouse": "KC_MS_L", + "> Mouse": "KC_MS_R", "Mouse 1": "KC_BTN1", "Mouse 2": "KC_BTN2", + "Mouse 3": "KC_BTN3", "Mouse 4": "KC_BTN4", "Mouse 5": "KC_BTN5", + "^ Wheel": "KC_WH_U", "v Wheel": "KC_WH_D", "< Wheel": "KC_WH_L", + "> Wheel": "KC_WH_R", "acc0": "KC_ACL0", "acc1": "KC_ACL1", + "acc2": "KC_ACL2", + # Modifiers missinng, add entry for each specific application + # Mod-Tap Keys missing, add entry for each specific application + "_Sh_swp": "LSFT_T(SH_TG)", + # RGB Lighting missing + # RGB Matrix Lighting missing + # Thermal Printer missing + # US ANSI Shifted Symbols done via S(), don't add KC_entries + # One Shot Keys missing + # Swap Hands + "_sp_swp": "SHT(KC_SPC)", + # Unicode support (via X()) included implicitly + # Switching Unicode Input Modes + "UC_win": "UC_M_WC", "UC_lnx": "UC_M_LN", "UC_mac": "UC_M_MA", + + # custom keys + "altF4": "LALT(KC_F4)", + "Undo": "LCTL(KC_Z)", "Cut": "LCTL(KC_X)", "Copy": "LCTL(KC_C)", "Paste": "LCTL(KC_V)", + "< Tab": "LCTL(S(KC_TAB))", "> Tab": "LCTL(KC_TAB)", + "Tab x": "LCTL(KC_W)", "Tab n": "LCTL(KC_T)", + "Gui Tab": "LGUI(KC_TAB)", "< Gui": "LGUI(KC_LEFT)", "> Gui": "LGUI(KC_RGHT)", + "C+A+Del": "LCTL(LALT(KC_DEL))", "Mic 0": "LCTL(KC_M)", + "Power": "KC_PWR", "Sleep": "KC_SLEP", + + # macros + "Macro 1": "KC_1", "Macro 2": "KC_2", "Macro 3": "KC_3", "Macro 4": "KC_4", "Macro 5": "KC_5", + + # custom layers + "GREEK": "GREEK", + "SYMBOL": "SYMBOL", + "MATH": "MATH", + "GAME": "GAME", + "MOUSE": "MOUSE", + "NEO": "TG(2)" +} + +# These keys are repeated in all layers. +# Generate a keymap.c with the python script and refer to the "ASCII"-art comments, to see which positions this concerns. +# If you want to put different keycodes in these positions for different layers, you need to modify the python script by yourself. +static = ["NEO", "GREEK", "GREEK", "GREEK", "GREEK", "MOUSE"] + +# mutex_layers = {"GREEK": 8, "GAME": 10, "MOUSE": 11} +# layer_graph = ... + +# 0 +qwerty = [ + "Tab", "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "[", + "LCtTEsc", "a", "s", "d", "f", "g", "h", "j", "k", "l", ";", "'", + "LShift(", "z", "x", "c", "v", "b", "n", "m", ",", ".", "/", "RShift)", + "LCtrl[", "LAlt", "LGui", "TT2", "LT6_SPC", "LT4_DEL", "LT4_ENT", "Space", "LT2_BSP", "RGui", "RLAlt", "RCtrl]", + ] + +# 1 +colemak = [ + "Tab", "q", "w", "f", "p", "g", "j", "l", "u", "y", ";", "[", + "LCtTEsc", "a", "r", "s", "t", "d", "h", "n", "e", "i", "o", "'", + "LShift(", "z", "x", "c", "v", "b", "k", "m", ",", ".", "/", "RShift)", + "LCtrl[", "LAlt", "LGui", "TT2", "LT6_SPC", "LT4_DEL", "LT4_ENT", "Space", "LT2_BSP", "RGui", "RLAlt", "RCtrl]", + ] + +# 2 +numpad = [ + "`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "]", + "", "DF0", "DF1", "XXX", "MO3", "MO3", "4", "4", "5", "6", "-", "=", + "", "MO5", "XXX", "XXX", "XXX", "XXX", "1", "1", "2", "3", "\\", "", + "TG2", "", "", "", "", "Del", "", "0", "BSpace", "", "", "", + ] + +# 3 +fpad = [ + "", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "XXX", + "", "XXX", "XXX", "XXX", "MO3", "MO3", "F4", "F4", "F5", "F6", "F11", "XXX", + "", "XXX", "XXX", "XXX", "XXX", "XXX", "F1", "F1", "F2", "F3", "F12", "", + "TG3", "", "", "", "", "", "", "", "", "", "", "", + ] + +# 4 +movement = [ + "Esc", "Esc", "Tab x", "Tab n", "CPg Dn", "CPg Dn", "Pg Down", "Home", "^ Arrow", "Insert", "SInsert", "Esc", + "", "Caps", "< Gui", "Gui Tab", "> Gui", "> Gui", "< Arrow", "< Arrow", "v Arrow", "> Arrow", "End", "Pr Scr", + "", "XXX", "XXX", "XXX", "CPg Up", "CPg Up", "Pg Up", "", "v Arrow", "XXX", "App", "", + "TG4", "", "", "", "", "Del", "", "BSpace", "", "", "", "", + ] + +# 5 +media = [ + "", "XXX", "play/ps", "Vol +", "Vol +", "XXX", "XXX", "XXX", "XXX", "XXX", "_reset", "Power", + "", "XXX", "|<<", "Vol 0", ">>|", "XXX", "XXX", "XXX", "XXX", "XXX", "XXX", "Sleep", + "", "MO5", "XXX", "Vol -", "Vol -", "XXX", "XXX", "XXX", "XXX", "XXX", "XXX", "XXX", + "TG5", "", "", "", "", "", "", "", "", "", "", "", + ] + +# 6 +mouse = [ + "", "acc1", "XXX", "XXX", "XXX", "XXX", "^ Wheel", "< Wheel", "^ Mouse", "> Wheel", "XXX", "XXX", + "", "acc2", "Mouse 2", "Mouse 3", "Mouse 1", "Mouse 1", "< Mouse", "< Mouse", "v Mouse", "> Mouse", "XXX", "XXX", + "", "acc0", "XXX", "XXX", "XXX", "XXX", "v Wheel", "XXX", "v Mouse", "XXX", "XXX", "", + "TG6", "", "", "", "", "", "", "", "", "", "", "", + ] + +layers = [ + qwerty, + colemak, + numpad, + fpad, + movement, + media, + mouse + ] diff --git a/keyboards/signum/3_0/keymaps/default/readme.md b/keyboards/signum/3_0/keymaps/default/readme.md new file mode 100644 index 0000000000..be8cc30e8a --- /dev/null +++ b/keyboards/signum/3_0/keymaps/default/readme.md @@ -0,0 +1,24 @@ +# Default layout + +Layout created by: [Jan Christoph Ebersbach](https://github.com/jceb) + +The `generate_km.py` file automatically generates `keymap.c` with +additional comments that visually represent the layout. + +This layout is maintained as I am using it. You can also use it as a +starting point to create your own layouts for the Signum 3.0 with +`km_template.txt` and `generate_km.py`. + +# Customization + +- Customize `layout.py` to your liking. + - Attention 1: keycodes are either translated into symbols and + function calls via the `translate()` function in `generate_km.py` + or via user-defined mappings in the dictionary `qmk_dict` in + `layout.py`. Especially the latter might require adjustment for + uncommon qmk features + - Attention 2: additional C functions need to be put into + `km_template.txt` + +Run `./generate_km.py` to regenerate `keymap.c` and the JSON keymap +definition that should be copied to `qmk_configurator/public/keymaps`. diff --git a/keyboards/signum/3_0/keymaps/default/rules.mk b/keyboards/signum/3_0/keymaps/default/rules.mk new file mode 100644 index 0000000000..502b2def76 --- /dev/null +++ b/keyboards/signum/3_0/keymaps/default/rules.mk @@ -0,0 +1 @@ +UNICODEMAP_ENABLE = yes diff --git a/keyboards/signum/3_0/keymaps/sgurenkov/config.h b/keyboards/signum/3_0/keymaps/sgurenkov/config.h new file mode 100644 index 0000000000..5f8d0d02b8 --- /dev/null +++ b/keyboards/signum/3_0/keymaps/sgurenkov/config.h @@ -0,0 +1,45 @@ +/* Copyright 2021 Stan Gurenkov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#define ONESHOT_TAP_TOGGLE 2 +#define ONESHOT_TIMEOUT 5000 +#define LEADER_TIMEOUT 600 +#define LEADER_PER_KEY_TIMING 300 + +// default but used in macros +#define TAPPING_TERM 300 + +// Prevent normal rollover on alphas from accidentally triggering mods. +#define IGNORE_MOD_TAP_INTERRUPT + +// Auto Shift and Retro Shift (Auto Shift for Tap Hold). +#define AUTO_SHIFT_TIMEOUT TAPPING_TERM + +// Recommended for heavy chording. +#define QMK_KEYS_PER_SCAN 4 + +// Mouse key speed and acceleration. +#undef MOUSEKEY_DELAY +#define MOUSEKEY_DELAY 0 +#undef MOUSEKEY_INTERVAL +#define MOUSEKEY_INTERVAL 16 +#undef MOUSEKEY_WHEEL_DELAY +#define MOUSEKEY_WHEEL_DELAY 0 +#undef MOUSEKEY_MAX_SPEED +#define MOUSEKEY_MAX_SPEED 6 +#undef MOUSEKEY_TIME_TO_MAX +#define MOUSEKEY_TIME_TO_MAX 64 diff --git a/keyboards/signum/3_0/keymaps/sgurenkov/keymap.c b/keyboards/signum/3_0/keymaps/sgurenkov/keymap.c new file mode 100644 index 0000000000..f6cdcfd247 --- /dev/null +++ b/keyboards/signum/3_0/keymaps/sgurenkov/keymap.c @@ -0,0 +1,128 @@ +/* Copyright 2021 Stan Gurenkov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +#define M0(kc) MT(MOD_HYPR, kc) +#define M1(kc) MT(MOD_LGUI, kc) +#define M2(kc) MT(MOD_LCTL, kc) +#define M3(kc) MT(MOD_LALT, kc) +#define M4(kc) MT(MOD_LSFT, kc) +#define LTH1 LT(L_LEFT, KC_SPC) +#define LTH2 LT(L_NUM, KC_BSPC) +#define RTH1 LT(L_RIGHT, KC_SPC) +#define RTH2 LT(L_NUM, KC_ENT) +#define COPY LCMD(KC_C) +#define PASTE LCMD(KC_V) +// Layers +#define L_BASE 0 +#define L_LEFT 1 +#define L_RIGHT 2 +#define L_NUM 3 + +bool is_cmd_tab_active = false; + +enum custom_keycodes { + CMD_TAB = SAFE_RANGE, +}; +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// L_BASE + LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + KC_TAB, M4(KC_A), M3(KC_S), M2(KC_D), M1(KC_F), M0(KC_G), M0(KC_H), M1(KC_J), M2(KC_K), M3(KC_L), M4(KC_COLN), KC_QUOT, + KC_GRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLS, + OSM(MOD_LSFT), KC_LEAD, KC_LGUI, LTH1, XXXXXXX, LTH2, RTH2, XXXXXXX, RTH1, KC_RGUI, KC_LEAD, OSM(MOD_HYPR)), + +// L_LEFT + LAYOUT( + _______, XXXXXXX, XXXXXXX, KC_EQL, KC_PERC, KC_AT, COPY, KC_UNDS, KC_HASH, RALT(KC_SPC), KC_PLUS, _______, + _______, KC_LSHIFT, KC_LALT, KC_LCTL, KC_LGUI, KC_HYPR, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_LBRC, KC_RBRC, + _______, XXXXXXX, KC_EXLM, KC_CIRC, XXXXXXX, KC_HOME, KC_END, KC_MINS, KC_LPRN, KC_RPRN, PASTE, XXXXXXX, + _______, KC_BRID, KC_BRIU, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______), + +// L_RIGHT + LAYOUT( + _______, XXXXXXX, XXXXXXX, KC_EQL, KC_PERC, KC_AT, COPY, KC_UNDS, KC_HASH, RALT(KC_SPC), KC_PLUS, _______, + _______, KC_AMPR, KC_ASTR, KC_DLR, LGUI(KC_GRV), XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_RSFT, KC_RBRC, + _______, XXXXXXX, KC_EXLM, KC_CIRC, XXXXXXX, KC_HOME, KC_END, KC_MINS, KC_LPRN, KC_RPRN, PASTE, XXXXXXX, + _______, KC_BRID, KC_BRIU, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______), + +// L_NUM + LAYOUT( + _______, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F12, KC_MINS, KC_7, KC_8, KC_9, KC_COMM, _______, + _______, M4(KC_LSFT), M3(KC_F4), M2(KC_F5), M1(KC_F6), M0(KC_F11), M0(KC_DOT), M1(KC_4), M2(KC_5), M3(KC_6), M4(KC_0), _______, + _______, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F10, KC_PLUS, KC_1, KC_2, KC_3, KC_DOT, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MEDIA_PREV_TRACK , KC_MEDIA_NEXT_TRACK, KC_MEDIA_PLAY_PAUSE), + + LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), +}; +// clang-format on +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case CMD_TAB: + if (record->event.pressed) { + register_code(KC_LCMD); + tap_code(KC_TAB); + layer_on(2); + } else { + unregister_code(KC_LCMD); + layer_off(2); + } + break; + case KC_ESC: + layer_clear(); + } + return true; +} + +LEADER_EXTERNS(); + +void matrix_scan_user(void) { + LEADER_DICTIONARY() { + leading = false; + leader_end(); + + // Cancel task CTRL+C + SEQ_ONE_KEY(KC_C) { tap_code16(C(KC_C)); } + // copy + SEQ_ONE_KEY(KC_Y) { tap_code16(G(KC_C)); } + // cut + SEQ_ONE_KEY(KC_X) { tap_code16(G(KC_X)); } + // paste + SEQ_ONE_KEY(KC_P) { tap_code16(G(KC_V)); } + // undo + SEQ_ONE_KEY(KC_U) { tap_code16(G(KC_Z)); } + // redo + SEQ_ONE_KEY(KC_R) { tap_code16(S(G(KC_Z))); } + // delete line + SEQ_TWO_KEYS(KC_D, KC_D) { + register_code(KC_LGUI); + + tap_code(KC_RIGHT); + + tap_code(KC_BSPACE); + + unregister_code(KC_LGUI); + } + // go to the beginning of the string + SEQ_ONE_KEY(KC_H) { tap_code16(G(KC_LEFT)); } + // go to the end of the string + SEQ_ONE_KEY(KC_L) { tap_code16(G(KC_RIGHT)); } + } diff --git a/keyboards/signum/3_0/keymaps/sgurenkov/rules.mk b/keyboards/signum/3_0/keymaps/sgurenkov/rules.mk new file mode 100644 index 0000000000..5c9a4b49b7 --- /dev/null +++ b/keyboards/signum/3_0/keymaps/sgurenkov/rules.mk @@ -0,0 +1,2 @@ +LEADER_ENABLE = yes +AUTO_SHIFT_ENABLE = no diff --git a/keyboards/signum/3_0/readme.md b/keyboards/signum/3_0/readme.md new file mode 100644 index 0000000000..3e937f771f --- /dev/null +++ b/keyboards/signum/3_0/readme.md @@ -0,0 +1,15 @@ +# Signum 3.0 + +![Signum 3.0 Top](https://i.redd.it/vl54yl36bpz11.jpg) + +An ergonomic 40% PCB. + +Keyboard Maintainer: [Troy Fletcher](http://troyfletcher.net/) +Hardware available here: [Troy Fletcher](http://troyfletcher.net/keyboard_sales.html) + +Make example for this keyboard (after setting up your build environment): + + make signum/3_0/elitec:default + make signum/3_0/teensy:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/signum/3_0/rules.mk b/keyboards/signum/3_0/rules.mk new file mode 100644 index 0000000000..a2f2bc9c01 --- /dev/null +++ b/keyboards/signum/3_0/rules.mk @@ -0,0 +1,28 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +LAYOUTS = ortho_4x12 + +# Disable unsupported hardware +RGBLIGHT_SUPPORTED = no +AUDIO_SUPPORTED = no +BACKLIGHT_SUPPORTED = no diff --git a/keyboards/signum/3_0/signum.c b/keyboards/signum/3_0/signum.c new file mode 100644 index 0000000000..b74bd52b28 --- /dev/null +++ b/keyboards/signum/3_0/signum.c @@ -0,0 +1,16 @@ +/* Copyright 2021 Stan Gurenkov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "signum.h" diff --git a/keyboards/signum/3_0/signum.h b/keyboards/signum/3_0/signum.h new file mode 100644 index 0000000000..9322b44b8b --- /dev/null +++ b/keyboards/signum/3_0/signum.h @@ -0,0 +1,33 @@ +/* Copyright 2021 Stan Gurenkov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +// clang-format off +# define LAYOUT( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 } \ +} +// clang-format on +#define LAYOUT_ortho_4x12 LAYOUT diff --git a/keyboards/signum/3_0/teensy/config.h b/keyboards/signum/3_0/teensy/config.h new file mode 100644 index 0000000000..343131fce0 --- /dev/null +++ b/keyboards/signum/3_0/teensy/config.h @@ -0,0 +1,23 @@ +/* Copyright 2021 Stan Gurenkov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +/* key matrix pins */ +// clang-format off +#define MATRIX_ROW_PINS { B0, B3, F6, C7 } +#define MATRIX_COL_PINS { C6, D2, B7, D3, D0, F7, F5, B6, B5, B4, D1, D7 } +#define UNUSED_PINS +// clang-format on diff --git a/keyboards/signum/3_0/teensy/rules.mk b/keyboards/signum/3_0/teensy/rules.mk new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/keyboards/signum/3_0/teensy/rules.mk @@ -0,0 +1 @@ + diff --git a/keyboards/signum/3_0/teensy/teensy.c b/keyboards/signum/3_0/teensy/teensy.c new file mode 100644 index 0000000000..42e993a6be --- /dev/null +++ b/keyboards/signum/3_0/teensy/teensy.c @@ -0,0 +1,16 @@ +/* Copyright 2021 Stan Gurenkov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "teensy.h" diff --git a/keyboards/signum/3_0/teensy/teensy.h b/keyboards/signum/3_0/teensy/teensy.h new file mode 100644 index 0000000000..ac02c3cbee --- /dev/null +++ b/keyboards/signum/3_0/teensy/teensy.h @@ -0,0 +1,19 @@ +/* Copyright 2021 Stan Gurenkov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" +#include "signum.h" -- cgit v1.2.1