diff options
20 files changed, 929 insertions, 0 deletions
diff --git a/keyboards/the_royal/liminal/config.h b/keyboards/the_royal/liminal/config.h new file mode 100644 index 000000000..09b8d501d --- /dev/null +++ b/keyboards/the_royal/liminal/config.h | |||
| @@ -0,0 +1,38 @@ | |||
| 1 | #pragma once | ||
| 2 | |||
| 3 | #include "config_common.h" | ||
| 4 | |||
| 5 | /* USB Device descriptor parameter */ | ||
| 6 | #define VENDOR_ID 0x4B4B | ||
| 7 | #define PRODUCT_ID 0x0002 | ||
| 8 | #define DEVICE_VER 0x0001 | ||
| 9 | #define MANUFACTURER TheRoyalSweatshirt | ||
| 10 | #define PRODUCT Liminal | ||
| 11 | #define DESCRIPTION "A 50% keyboard with focused around spectacular keycap compatibility." | ||
| 12 | |||
| 13 | /* key matrix size */ | ||
| 14 | #define MATRIX_ROWS 4 | ||
| 15 | #define MATRIX_COLS 14 | ||
| 16 | |||
| 17 | #define MATRIX_ROW_PINS { C6, B6, B7, C7 } | ||
| 18 | #define MATRIX_COL_PINS { D6, C4, D3, D2, D1, D0, C2, B0, B1, B2, B3, B4, D5, C5 } | ||
| 19 | #define UNUSED_PINS | ||
| 20 | |||
| 21 | /* COL2ROW or ROW2COL */ | ||
| 22 | #define DIODE_DIRECTION COL2ROW | ||
| 23 | |||
| 24 | /* Set 0 if debouncing isn't needed */ | ||
| 25 | #define DEBOUNCE 5 | ||
| 26 | |||
| 27 | /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ | ||
| 28 | #define LOCKING_SUPPORT_ENABLE | ||
| 29 | /* Locking resynchronize hack */ | ||
| 30 | #define LOCKING_RESYNC_ENABLE | ||
| 31 | |||
| 32 | /* ws2812 RGB LED */ | ||
| 33 | #define RGB_DI_PIN D4 | ||
| 34 | #define RGBLED_NUM 1 // Number of LEDs | ||
| 35 | |||
| 36 | #define RGBLIGHT_HUE_STEP 6 | ||
| 37 | #define RGBLIGHT_SAT_STEP 4 | ||
| 38 | #define RGBLIGHT_VAL_STEP 4 | ||
diff --git a/keyboards/the_royal/liminal/info.json b/keyboards/the_royal/liminal/info.json new file mode 100644 index 000000000..501158e88 --- /dev/null +++ b/keyboards/the_royal/liminal/info.json | |||
| @@ -0,0 +1,68 @@ | |||
| 1 | { | ||
| 2 | "keyboard_name": "liminal", | ||
| 3 | "url": "", | ||
| 4 | "maintainer": "TheRoyalSweatshirt", | ||
| 5 | "width": 15, | ||
| 6 | "height": 4, | ||
| 7 | "layouts": { | ||
| 8 | "LAYOUT_base_kit_all": { | ||
| 9 | "key_count": 52, | ||
| 10 | "layout": [ | ||
| 11 | {"label":"k01", "x":0, "y":0, "w":1}, | ||
| 12 | {"label":"k02", "x":1, "y":0, "w":1.5}, | ||
| 13 | {"label":"k03", "x":2.5, "y":0, "w":1}, | ||
| 14 | {"label":"k04", "x":3.5, "y":0, "w":1}, | ||
| 15 | {"label":"k05", "x":4.5, "y":0, "w":1}, | ||
| 16 | {"label":"k06", "x":5.5, "y":0, "w":1}, | ||
| 17 | {"label":"k07", "x":6.5, "y":0, "w":1}, | ||
| 18 | {"label":"k08", "x":7.5, "y":0, "w":1}, | ||
| 19 | {"label":"k09", "x":8.5, "y":0, "w":1}, | ||
| 20 | {"label":"k010", "x":9.5, "y":0, "w":1}, | ||
| 21 | {"label":"k011", "x":10.5, "y":0, "w":1}, | ||
| 22 | {"label":"k012", "x":11.5, "y":0, "w":1}, | ||
| 23 | {"label":"k013", "x":12.5, "y":0, "w":1}, | ||
| 24 | {"label":"k014", "x":13.5, "y":0, "w":1.5}, | ||
| 25 | {"label":"k11", "x":0, "y":1, "w":1}, | ||
| 26 | {"label":"k12", "x":1, "y":1, "w":1.75}, | ||
| 27 | {"label":"k13", "x":2.75, "y":1, "w":1}, | ||
| 28 | {"label":"k14", "x":3.75, "y":1, "w":1}, | ||
| 29 | {"label":"k15", "x":4.75, "y":1, "w":1}, | ||
| 30 | {"label":"k16", "x":5.75, "y":1, "w":1}, | ||
| 31 | {"label":"k17", "x":6.75, "y":1, "w":1}, | ||
| 32 | {"label":"k18", "x":7.75, "y":1, "w":1}, | ||
| 33 | {"label":"k19", "x":8.75, "y":1, "w":1}, | ||
| 34 | {"label":"k110", "x":9.75, "y":1, "w":1}, | ||
| 35 | {"label":"k111", "x":10.75, "y":1, "w":1}, | ||
| 36 | {"label":"k112", "x":11.75, "y":1, "w":1}, | ||
| 37 | {"label":"k113", "x":12.75, "y":1, "w":1}, | ||
| 38 | {"label":"k114", "x":13.75, "y":1, "w":1.25}, | ||
| 39 | {"label":"k21", "x":0, "y":2, "w":1}, | ||
| 40 | {"label":"k22", "x":1, "y":2, "w":1.25}, | ||
| 41 | {"label":"k23", "x":2.25, "y":2, "w":1}, | ||
| 42 | {"label":"k24", "x":3.25, "y":2, "w":1}, | ||
| 43 | {"label":"k25", "x":4.25, "y":2, "w":1}, | ||
| 44 | {"label":"k26", "x":5.25, "y":2, "w":1}, | ||
| 45 | {"label":"k27", "x":6.25, "y":2, "w":1}, | ||
| 46 | {"label":"k28", "x":7.25, "y":2, "w":1}, | ||
| 47 | {"label":"k29", "x":8.25, "y":2, "w":1}, | ||
| 48 | {"label":"k210", "x":9.25, "y":2, "w":1}, | ||
| 49 | {"label":"k211", "x":10.25, "y":2, "w":1}, | ||
| 50 | {"label":"k212", "x":11.25, "y":2, "w":1}, | ||
| 51 | {"label":"k213", "x":12.25, "y":2, "w":1}, | ||
| 52 | {"label":"k214", "x":13.25, "y":2, "w":1.75}, | ||
| 53 | {"label":"k31", "x":0, "y":3, "w":1}, | ||
| 54 | {"label":"k32", "x":1, "y":3, "w":1.5}, | ||
| 55 | {"label":"k33", "x":2.5, "y":3, "w":1.25}, | ||
| 56 | {"label":"k34", "x":3.75, "y":3, "w":1.5}, | ||
| 57 | {"label":"k35", "x":5.25, "y":3, "w":2}, | ||
| 58 | {"label":"k38", "x":7.25, "y":3, "w":2.25}, | ||
| 59 | {"label":"k310", "x":9.5, "y":3, "w":1.5}, | ||
| 60 | {"label":"k311", "x":11, "y":3, "w":1.25}, | ||
| 61 | {"label":"k313", "x":12.25, "y":3, "w":1.25}, | ||
| 62 | {"label":"k314", "x":13.5, "y":3, "w":1.5} | ||
| 63 | ] | ||
| 64 | } | ||
| 65 | } | ||
| 66 | } | ||
| 67 | |||
| 68 | |||
diff --git a/keyboards/the_royal/liminal/keymaps/default/config.h b/keyboards/the_royal/liminal/keymaps/default/config.h new file mode 100644 index 000000000..1cfc46c81 --- /dev/null +++ b/keyboards/the_royal/liminal/keymaps/default/config.h | |||
| @@ -0,0 +1,6 @@ | |||
| 1 | #pragma once | ||
| 2 | |||
| 3 | |||
| 4 | #define PERMISSIVE_HOLD | ||
| 5 | |||
| 6 | #define TAPPING_TERM_PER_KEY | ||
diff --git a/keyboards/the_royal/liminal/keymaps/default/keymap.c b/keyboards/the_royal/liminal/keymaps/default/keymap.c new file mode 100644 index 000000000..d9d949745 --- /dev/null +++ b/keyboards/the_royal/liminal/keymaps/default/keymap.c | |||
| @@ -0,0 +1,161 @@ | |||
| 1 | #include QMK_KEYBOARD_H | ||
| 2 | |||
| 3 | enum layer_names { | ||
| 4 | _QWERTY, | ||
| 5 | _LOWER, | ||
| 6 | _RAISE, | ||
| 7 | _OTHER | ||
| 8 | }; | ||
| 9 | |||
| 10 | |||
| 11 | //Tap Dance Declarations | ||
| 12 | enum { | ||
| 13 | TD_RST, | ||
| 14 | TD_DBQT | ||
| 15 | }; | ||
| 16 | |||
| 17 | void dance_rst_reset (qk_tap_dance_state_t *state, void *user_data) { | ||
| 18 | if (state->count >= 2) { | ||
| 19 | reset_keyboard(); | ||
| 20 | reset_tap_dance(state); | ||
| 21 | } | ||
| 22 | } | ||
| 23 | |||
| 24 | //All tap dance functions would go here. Only showing this one. | ||
| 25 | qk_tap_dance_action_t tap_dance_actions[] = { | ||
| 26 | [TD_RST] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, NULL, dance_rst_reset), | ||
| 27 | [TD_DBQT] = ACTION_TAP_DANCE_DOUBLE (KC_QUOTE, KC_DQT) | ||
| 28 | }; | ||
| 29 | |||
| 30 | enum custom_keycodes { | ||
| 31 | M_PAR = SAFE_RANGE, | ||
| 32 | M_BKT | ||
| 33 | }; | ||
| 34 | |||
| 35 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 36 | switch (keycode) { | ||
| 37 | case M_PAR: | ||
| 38 | if (record->event.pressed) { | ||
| 39 | SEND_STRING("()" SS_TAP(X_LEFT)); | ||
| 40 | } | ||
| 41 | break; | ||
| 42 | case M_BKT: | ||
| 43 | if (record->event.pressed) { | ||
| 44 | SEND_STRING("[]" SS_TAP(X_LEFT)); | ||
| 45 | } | ||
| 46 | break; | ||
| 47 | } | ||
| 48 | return true; | ||
| 49 | |||
| 50 | }; | ||
| 51 | |||
| 52 | #define OTHER MO(_OTHER) | ||
| 53 | #define LOWER MO(_LOWER) | ||
| 54 | #define RAISE MO(_RAISE) | ||
| 55 | |||
| 56 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 57 | /* Default layer | ||
| 58 | * ┌─────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬──────┐ | ||
| 59 | * │ Esc │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ - │ BsPc │ | ||
| 60 | * ├─────┼────┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴──────┤ | ||
| 61 | * │PgUp │Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ Enter │ | ||
| 62 | * ├─────┼─────┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬────────┤ | ||
| 63 | * │PgDn │LShift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Other │ | ||
| 64 | * ├─────┼────┬──┴─┬──┴─┬──┴────┴────┴────┴────┴────┴───┬┴────┴┬───┴─┬──────┤ | ||
| 65 | * │ END │Del │Gui │Alt │ Right KC = 7u/2.25u │Raise │Menu │ Lower│ | ||
| 66 | * └─────┴────┴────┴────┴───────────────────────────────┴──────┴─────┴──────┘ | ||
| 67 | */ | ||
| 68 | [_QWERTY] = LAYOUT_base_kit_all( | ||
| 69 | KC_ESC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINUS, KC_BSPC, | ||
| 70 | KC_PGUP, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOTE, KC_ENT, | ||
| 71 | KC_PGDN, KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, OTHER, | ||
| 72 | KC_END, KC_DEL, KC_LGUI, KC_LALT, LOWER, KC_SPACE, KC_CAPS, RAISE, KC_RGUI, LOWER | ||
| 73 | ), | ||
| 74 | |||
| 75 | /* LOWER layer | ||
| 76 | * ┌─────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬──────┐ | ||
| 77 | * │ ` │ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ _ │ │ | ||
| 78 | * ├─────┼────┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴──────┤ | ||
| 79 | * │ ~ │ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │(..)│[..]│ ' and " │ | ||
| 80 | * ├─────┼─────┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬────────┤ | ||
| 81 | * │ │ │ │ │ │ │ │ │ │ │ │ │ │ | ||
| 82 | * ├─────┼────┬──┴─┬──┴─┬──┴────┴────┴────┴────┴────┴───┬┴────┴┬───┴─┬──────┤ | ||
| 83 | * │ │ │ │ │ │ │ │ │ | ||
| 84 | * └─────┴────┴────┴────┴───────────────────────────────┴──────┴─────┴──────┘ | ||
| 85 | */ | ||
| 86 | [_LOWER] = LAYOUT_base_kit_all( | ||
| 87 | KC_GRAVE, _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_UNDS, _______, | ||
| 88 | KC_TILD, _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, M_PAR, M_BKT, _______, TD(TD_DBQT), | ||
| 89 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 90 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 91 | ), | ||
| 92 | |||
| 93 | /* RAISE layer | ||
| 94 | * ┌─────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬──────┐ | ||
| 95 | * │ \ │ │ │ │ │ │ │ │ │ │ │ │ = │ │ | ||
| 96 | * ├─────┼────┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴──────┤ | ||
| 97 | * │ | │CAPS │ │ │ │ │ │ │ │ │ │ │ + │ | ||
| 98 | * ├─────┼─────┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬────────┤ | ||
| 99 | * │ │ │ │ │ │ │ │ │ │ │ [ │ ] │ │ | ||
| 100 | * ├─────┼────┬──┴─┬──┴─┬──┴────┴────┴────┴────┴────┴───┬┴────┴┬───┴─┬──────┤ | ||
| 101 | * │ │ │ │ │ │ │ │ │ | ||
| 102 | * └─────┴────┴────┴────┴───────────────────────────────┴──────┴─────┴──────┘ | ||
| 103 | */ | ||
| 104 | [_RAISE] = LAYOUT_base_kit_all( | ||
| 105 | KC_BSLS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_EQUAL, _______, | ||
| 106 | KC_PIPE, KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PLUS, | ||
| 107 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, | ||
| 108 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 109 | ), | ||
| 110 | |||
| 111 | /* OTHER layer | ||
| 112 | * ┌─────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬──────┐ | ||
| 113 | * │HOME │ │ │ │ │ │ │ │ │ │ │ UP │ │ │ | ||
| 114 | * ├─────┼────┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴──────┤ | ||
| 115 | * │END │ │ │ │ │ │ │ │ │ │LEFT│RGHT│ │ | ||
| 116 | * ├─────┼─────┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬────────┤ | ||
| 117 | * │ │ │ │ │ │ │ │ │ │ │DOWN│ │ │ | ||
| 118 | * ├─────┼────┬──┴─┬──┴─┬──┴────┴────┴────┴────┴────┴───┬┴────┴┬───┴─┬──────┤ | ||
| 119 | * │RESET│ │ │ │ │ │ │ │ | ||
| 120 | * └─────┴────┴────┴────┴───────────────────────────────┴──────┴─────┴──────┘ | ||
| 121 | */ | ||
| 122 | [_OTHER] = LAYOUT_base_kit_all( | ||
| 123 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, | ||
| 124 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RIGHT, _______, _______, | ||
| 125 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, | ||
| 126 | TD(TD_RST), _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 127 | ) | ||
| 128 | }; | ||
| 129 | |||
| 130 | uint16_t get_tapping_term(uint16_t keycode) { | ||
| 131 | switch (keycode) { | ||
| 132 | case LT(_LOWER, KC_SPACE): | ||
| 133 | return 160; | ||
| 134 | case TD(TD_DBQT): | ||
| 135 | return 230; | ||
| 136 | default: | ||
| 137 | #ifndef TAPPING_TERM | ||
| 138 | return 200; | ||
| 139 | #else | ||
| 140 | return TAPPING_TERM; | ||
| 141 | #endif | ||
| 142 | } | ||
| 143 | } | ||
| 144 | |||
| 145 | layer_state_t layer_state_set_user(layer_state_t state) { | ||
| 146 | switch (get_highest_layer(state)) { | ||
| 147 | case _LOWER: | ||
| 148 | rgblight_setrgb (RGB_CORAL); | ||
| 149 | break; | ||
| 150 | case _RAISE: | ||
| 151 | rgblight_setrgb (RGB_RED); | ||
| 152 | break; | ||
| 153 | case _OTHER: | ||
| 154 | rgblight_setrgb (RGB_BLUE); | ||
| 155 | break; | ||
| 156 | default: // for any other layers, or the default layer | ||
| 157 | rgblight_setrgb (RGB_GREEN); | ||
| 158 | break; | ||
| 159 | } | ||
| 160 | return state; | ||
| 161 | } | ||
diff --git a/keyboards/the_royal/liminal/keymaps/default/rules.mk b/keyboards/the_royal/liminal/keymaps/default/rules.mk new file mode 100644 index 000000000..e5ddcae8d --- /dev/null +++ b/keyboards/the_royal/liminal/keymaps/default/rules.mk | |||
| @@ -0,0 +1 @@ | |||
| TAP_DANCE_ENABLE = yes | |||
diff --git a/keyboards/the_royal/liminal/keymaps/default_iso/config.h b/keyboards/the_royal/liminal/keymaps/default_iso/config.h new file mode 100644 index 000000000..1cfc46c81 --- /dev/null +++ b/keyboards/the_royal/liminal/keymaps/default_iso/config.h | |||
| @@ -0,0 +1,6 @@ | |||
| 1 | #pragma once | ||
| 2 | |||
| 3 | |||
| 4 | #define PERMISSIVE_HOLD | ||
| 5 | |||
| 6 | #define TAPPING_TERM_PER_KEY | ||
diff --git a/keyboards/the_royal/liminal/keymaps/default_iso/keymap.c b/keyboards/the_royal/liminal/keymaps/default_iso/keymap.c new file mode 100644 index 000000000..3d8debee3 --- /dev/null +++ b/keyboards/the_royal/liminal/keymaps/default_iso/keymap.c | |||
| @@ -0,0 +1,158 @@ | |||
| 1 | #include QMK_KEYBOARD_H | ||
| 2 | |||
| 3 | enum layer_names { | ||
| 4 | _QWERTY, | ||
| 5 | _LOWER, | ||
| 6 | _RAISE, | ||
| 7 | _OTHER | ||
| 8 | }; | ||
| 9 | |||
| 10 | |||
| 11 | //Tap Dance Declarations | ||
| 12 | enum { | ||
| 13 | TD_RST, | ||
| 14 | TD_DBQT | ||
| 15 | }; | ||
| 16 | |||
| 17 | void dance_rst_reset (qk_tap_dance_state_t *state, void *user_data) { | ||
| 18 | if (state->count >= 2) { | ||
| 19 | reset_keyboard(); | ||
| 20 | reset_tap_dance(state); | ||
| 21 | } | ||
| 22 | } | ||
| 23 | |||
| 24 | //All tap dance functions would go here. Only showing this one. | ||
| 25 | qk_tap_dance_action_t tap_dance_actions[] = { | ||
| 26 | [TD_RST] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, NULL, dance_rst_reset), | ||
| 27 | [TD_DBQT] = ACTION_TAP_DANCE_DOUBLE (KC_QUOTE, KC_DQT) | ||
| 28 | }; | ||
| 29 | |||
| 30 | enum custom_keycodes { | ||
| 31 | M_PAR = SAFE_RANGE, | ||
| 32 | M_BKT | ||
| 33 | }; | ||
| 34 | |||
| 35 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 36 | switch (keycode) { | ||
| 37 | case M_PAR: | ||
| 38 | if (record->event.pressed) { | ||
| 39 | SEND_STRING("()" SS_TAP(X_LEFT)); | ||
| 40 | } | ||
| 41 | break; | ||
| 42 | case M_BKT: | ||
| 43 | if (record->event.pressed) { | ||
| 44 | SEND_STRING("[]" SS_TAP(X_LEFT)); | ||
| 45 | } | ||
| 46 | break; | ||
| 47 | } | ||
| 48 | return true; | ||
| 49 | |||
| 50 | }; | ||
| 51 | |||
| 52 | #define OTHER MO(_OTHER) | ||
| 53 | #define LOWER MO(_LOWER) | ||
| 54 | #define RAISE MO(_RAISE) | ||
| 55 | |||
| 56 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 57 | /* Default layer | ||
| 58 | * ┌─────┬────┬─────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬──────┐ | ||
| 59 | * │ Esc │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ - │ BkSp │ | ||
| 60 | * ├─────┼────┴─┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┐ │ | ||
| 61 | * │PgUp │LCtrl │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ │ | ||
| 62 | * ├─────┼────┬─┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─────┤ | ||
| 63 | * │PgDn │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Other │ | ||
| 64 | * ├─────┼────┼───┴┬───┴─┬──┴────┴────┴────┴────┴────┴───┬┴────┴┬───┴─┬──────┤ | ||
| 65 | * │ END │Del │Gui │ Alt │ Right KC = 7u/2.25u │Raise │Menu │ Lower│ | ||
| 66 | * └─────┴────┴────┴─────┴───────────────────────────────┴──────┴─────┴──────┘ | ||
| 67 | */ | ||
| 68 | [_QWERTY] = LAYOUT_base_kit_all( | ||
| 69 | KC_ESC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINUS, KC_BSPC, | ||
| 70 | KC_PGUP, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOTE, KC_ENT, | ||
| 71 | KC_PGDN, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, OTHER, | ||
| 72 | KC_END, KC_DEL, KC_LGUI, KC_LALT, LOWER, KC_SPACE, KC_CAPS, RAISE, KC_MENU, LOWER | ||
| 73 | ), | ||
| 74 | |||
| 75 | /* LOWER layer | ||
| 76 | * ┌─────┬────┬─────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬──────┐ | ||
| 77 | * │ ` │ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ _ │ ENTR │ | ||
| 78 | * ├─────┼────┴─┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┐ │ | ||
| 79 | * │ ~ │ │ ! │ " │ £ │ $ │ % │ ^ │ & │ * │(..)│ : │ @ │ │ | ||
| 80 | * ├─────┼────┬─┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─────┤ | ||
| 81 | * │ │ │ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ │ │ | ||
| 82 | * ├─────┼────┼───┴┬───┴─┬──┴────┴────┴────┴────┴────┴───┬┴────┴┬───┴─┬──────┤ | ||
| 83 | * │ │ │ │ │ │ │ │ │ | ||
| 84 | * └─────┴────┴────┴─────┴───────────────────────────────┴──────┴─────┴──────┘ | ||
| 85 | */ | ||
| 86 | [_LOWER] = LAYOUT_base_kit_all( | ||
| 87 | KC_GRAVE, _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_UNDS, KC_ENT, | ||
| 88 | KC_TILD, _______, KC_EXLM, LSFT(KC_2), LSFT(KC_3), LSFT(KC_4), KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, M_PAR, KC_COLON, KC_AT, _______, | ||
| 89 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 90 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 91 | ), | ||
| 92 | |||
| 93 | /* RAISE layer | ||
| 94 | * ┌─────┬────┬─────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬──────┐ | ||
| 95 | * │ │ │ │ │ │ │ │ │ │ │ │ │ = │ + │ | ||
| 96 | * ├─────┼────┴─┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┐ │ | ||
| 97 | * │ │ CAPS │ │ │ │ │ │ │ │ │ │ │ │ │ | ||
| 98 | * ├─────┼────┬─┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─────┤ | ||
| 99 | * │ │ │ │ │ │ │ │ │ │ │ │ [ │ ] │ │ | ||
| 100 | * ├─────┼────┼───┴┬───┴─┬──┴────┴────┴────┴────┴────┴───┬┴────┴┬───┴─┬──────┤ | ||
| 101 | * │ │ │ │ │ │ │ │ │ | ||
| 102 | * └─────┴────┴────┴─────┴───────────────────────────────┴──────┴─────┴──────┘ | ||
| 103 | */ | ||
| 104 | [_RAISE] = LAYOUT_base_kit_all( | ||
| 105 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_EQUAL, KC_PLUS, | ||
| 106 | _______, KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | ||
| 107 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, | ||
| 108 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 109 | ), | ||
| 110 | |||
| 111 | /* OTHER layer | ||
| 112 | * ┌─────┬────┬─────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬──────┐ | ||
| 113 | * │HOME │ │ │ │ │ │ │ │ │ │ │ │ UP │ │ | ||
| 114 | * ├─────┼────┴─┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┐ │ | ||
| 115 | * │END │ │ │ │ │ │ │ │ │ │ │LEFT│RGHT│ │ | ||
| 116 | * ├─────┼────┬─┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─┬──┴─────┤ | ||
| 117 | * │ │ │ │ │ │ │ │ │ │ │ │ │DOWN│ │ | ||
| 118 | * ├─────┼────┼───┴┬───┴─┬──┴────┴────┴────┴────┴────┴───┬┴────┴┬───┴─┬──────┤ | ||
| 119 | * │RESET│ │ │ │ │ │ │ │ | ||
| 120 | * └─────┴────┴────┴─────┴───────────────────────────────┴──────┴─────┴──────┘ | ||
| 121 | */ | ||
| 122 | [_OTHER] = LAYOUT_base_kit_all( | ||
| 123 | KC_HOME, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, | ||
| 124 | KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RIGHT, _______, | ||
| 125 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, | ||
| 126 | TD(TD_RST), _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 127 | ) | ||
| 128 | |||
| 129 | }; | ||
| 130 | |||
| 131 | uint16_t get_tapping_term(uint16_t keycode) { | ||
| 132 | switch (keycode) { | ||
| 133 | case LT(_LOWER, KC_SPACE): | ||
| 134 | return 160; | ||
| 135 | case TD(TD_DBQT): | ||
| 136 | return 230; | ||
| 137 | default: | ||
| 138 | return 200; | ||
| 139 | } | ||
| 140 | } | ||
| 141 | |||
| 142 | layer_state_t layer_state_set_user(layer_state_t state) { | ||
| 143 | switch (get_highest_layer(state)) { | ||
| 144 | case _LOWER: | ||
| 145 | rgblight_setrgb (RGB_PURPLE); | ||
| 146 | break; | ||
| 147 | case _RAISE: | ||
| 148 | rgblight_setrgb (RGB_CYAN); | ||
| 149 | break; | ||
| 150 | case _OTHER: | ||
| 151 | rgblight_setrgb (RGB_ORANGE); | ||
| 152 | break; | ||
| 153 | default: // for any other layers, or the default layer | ||
| 154 | rgblight_setrgb (RGB_CORAL); | ||
| 155 | break; | ||
| 156 | } | ||
| 157 | return state; | ||
| 158 | } | ||
diff --git a/keyboards/the_royal/liminal/keymaps/default_iso/rules.mk b/keyboards/the_royal/liminal/keymaps/default_iso/rules.mk new file mode 100644 index 000000000..e5ddcae8d --- /dev/null +++ b/keyboards/the_royal/liminal/keymaps/default_iso/rules.mk | |||
| @@ -0,0 +1 @@ | |||
| TAP_DANCE_ENABLE = yes | |||
diff --git a/keyboards/the_royal/liminal/liminal.c b/keyboards/the_royal/liminal/liminal.c new file mode 100644 index 000000000..6e1e935d4 --- /dev/null +++ b/keyboards/the_royal/liminal/liminal.c | |||
| @@ -0,0 +1 @@ | |||
| #include "liminal.h" \ No newline at end of file | |||
diff --git a/keyboards/the_royal/liminal/liminal.h b/keyboards/the_royal/liminal/liminal.h new file mode 100644 index 000000000..ba53b1701 --- /dev/null +++ b/keyboards/the_royal/liminal/liminal.h | |||
| @@ -0,0 +1,19 @@ | |||
| 1 | #pragma once | ||
| 2 | |||
| 3 | #include "quantum.h" | ||
| 4 | |||
| 5 | #define XXX KC_NO | ||
| 6 | |||
| 7 | #define LAYOUT_base_kit_all( \ | ||
| 8 | k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, \ | ||
| 9 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \ | ||
| 10 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, \ | ||
| 11 | k30, k31, k32, k33, k35, k37, k39, k3A, k3C, k3D \ | ||
| 12 | ) \ | ||
| 13 | { \ | ||
| 14 | { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D }, \ | ||
| 15 | { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D }, \ | ||
| 16 | { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D }, \ | ||
| 17 | { k30, k31, k32, k33, XXX, k35, XXX, k37, XXX, k39, k3A, XXX, k3C, k3D } \ | ||
| 18 | } | ||
| 19 | |||
diff --git a/keyboards/the_royal/liminal/readme.md b/keyboards/the_royal/liminal/readme.md new file mode 100644 index 000000000..c272cabdc --- /dev/null +++ b/keyboards/the_royal/liminal/readme.md | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | # Liminal | ||
| 2 |  | ||
| 3 | |||
| 4 | A 50% keyboard with superb keycap compatibility. | ||
| 5 | |||
| 6 | * Keyboard Maintainer: [TheRoyalSweatshirt](https://github.com/TheRoyalSweatshirt) a.k.a [The_Royal](https://reddit.com/u/The_Royal) | ||
| 7 | * Hardware Supported: rev 0.2 Liminal PCB | ||
| 8 | * Hardware Availability: Through GB, Proxy, or Direct Message | ||
| 9 | |||
| 10 | Make example for this keyboard (after setting up your build environment): | ||
| 11 | |||
| 12 | make the_royal/liminal:default | ||
| 13 | |||
| 14 | 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/the_royal/liminal/rules.mk b/keyboards/the_royal/liminal/rules.mk new file mode 100644 index 000000000..4d2102809 --- /dev/null +++ b/keyboards/the_royal/liminal/rules.mk | |||
| @@ -0,0 +1,32 @@ | |||
| 1 | # MCU name | ||
| 2 | MCU = atmega32u2 | ||
| 3 | |||
| 4 | # Bootloader selection | ||
| 5 | # Teensy halfkay | ||
| 6 | # Pro Micro caterina | ||
| 7 | # Atmel DFU atmel-dfu | ||
| 8 | # LUFA DFU lufa-dfu | ||
| 9 | # QMK DFU qmk-dfu | ||
| 10 | # ATmega32A bootloadHID | ||
| 11 | # ATmega328P USBasp | ||
| 12 | BOOTLOADER = atmel-dfu | ||
| 13 | |||
| 14 | # Build Options | ||
| 15 | # - change yes to no to disable | ||
| 16 | |||
| 17 | BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration | ||
| 18 | MOUSEKEY_ENABLE = no # Mouse keys | ||
| 19 | EXTRAKEY_ENABLE = yes # Audio control and System control | ||
| 20 | CONSOLE_ENABLE = no # Console for debug | ||
| 21 | COMMAND_ENABLE = no # Commands for debug and configuration | ||
| 22 | # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | ||
| 23 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | ||
| 24 | # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||
| 25 | NKRO_ENABLE = no # USB Nkey Rollover | ||
| 26 | BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | ||
| 27 | RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow | ||
| 28 | MIDI_ENABLE = no # MIDI support | ||
| 29 | BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | ||
| 30 | AUDIO_ENABLE = no # Audio output on port C6 | ||
| 31 | FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches | ||
| 32 | HD44780_ENABLE = no # Enable support for HD44780 based LCDs | ||
diff --git a/keyboards/the_royal/schwann/config.h b/keyboards/the_royal/schwann/config.h new file mode 100644 index 000000000..594531942 --- /dev/null +++ b/keyboards/the_royal/schwann/config.h | |||
| @@ -0,0 +1,39 @@ | |||
| 1 | #pragma once | ||
| 2 | |||
| 3 | #include "config_common.h" | ||
| 4 | |||
| 5 | /* USB Device descriptor parameter */ | ||
| 6 | #define VENDOR_ID 0xFEED | ||
| 7 | #define PRODUCT_ID 0x3521 | ||
| 8 | #define DEVICE_VER 0x0001 | ||
| 9 | #define MANUFACTURER TheRoyalSweatshirt | ||
| 10 | #define PRODUCT The Schwann PCB | ||
| 11 | #define DESCRIPTION "A simple, HHKB-Styled, Ortholinear PCB Designed for use with the Neuron Keyboard by Worldspawn and Walletburner." | ||
| 12 | |||
| 13 | /* key matrix size */ | ||
| 14 | #define MATRIX_ROWS 4 | ||
| 15 | #define MATRIX_COLS 12 | ||
| 16 | |||
| 17 | #define MATRIX_ROW_PINS { F0, F1, F6, C7 } | ||
| 18 | #define MATRIX_COL_PINS { F4, F5, D5, D3, D2, C6, B6, B5, B4, D7, D6, D1 } | ||
| 19 | #define UNUSED_PINS | ||
| 20 | |||
| 21 | /* COL2ROW or ROW2COL */ | ||
| 22 | #define DIODE_DIRECTION COL2ROW | ||
| 23 | |||
| 24 | /* Set 0 if debouncing isn't needed */ | ||
| 25 | #define DEBOUNCE 5 | ||
| 26 | |||
| 27 | /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ | ||
| 28 | #define LOCKING_SUPPORT_ENABLE | ||
| 29 | /* Locking resynchronize hack */ | ||
| 30 | #define LOCKING_RESYNC_ENABLE | ||
| 31 | |||
| 32 | /* ws2812 RGB LED */ | ||
| 33 | #define RGB_DI_PIN B3 | ||
| 34 | #define RGBLED_NUM 8 // Number of LEDs | ||
| 35 | |||
| 36 | #define RGBLIGHT_ANIMATIONS | ||
| 37 | #define RGBLIGHT_HUE_STEP 6 | ||
| 38 | #define RGBLIGHT_SAT_STEP 4 | ||
| 39 | #define RGBLIGHT_VAL_STEP 8 | ||
diff --git a/keyboards/the_royal/schwann/info.json b/keyboards/the_royal/schwann/info.json new file mode 100644 index 000000000..56db56e91 --- /dev/null +++ b/keyboards/the_royal/schwann/info.json | |||
| @@ -0,0 +1,156 @@ | |||
| 1 | { | ||
| 2 | "keyboard_name": "Schwann's PCB", | ||
| 3 | "url": "https://github.com/TheRoyalSweatshirt/The_Royal_Projects/tree/schwann/PCBs/Schwann_PCB", | ||
| 4 | "maintainer": "TheRoyalSweatshirt", | ||
| 5 | "width": 12, | ||
| 6 | "height": 4, | ||
| 7 | "layouts": { | ||
| 8 | "LAYOUT_mit": { | ||
| 9 | "key_count": 45, | ||
| 10 | "layout": [ | ||
| 11 | {"label":"TAB", "x":0, "y":0}, | ||
| 12 | {"label":"Q", "x":1, "y":0}, | ||
| 13 | {"label":"W", "x":2, "y":0}, | ||
| 14 | {"label":"E", "x":3, "y":0}, | ||
| 15 | {"label":"R", "x":4, "y":0}, | ||
| 16 | {"label":"T", "x":5, "y":0}, | ||
| 17 | {"label":"Y", "x":6, "y":0}, | ||
| 18 | {"label":"U", "x":7, "y":0}, | ||
| 19 | {"label":"I", "x":8, "y":0}, | ||
| 20 | {"label":"O", "x":9, "y":0}, | ||
| 21 | {"label":"P", "x":10, "y":0}, | ||
| 22 | {"label":"BSPC", "x":11, "y":0}, | ||
| 23 | {"label":"LCtl", "x":0, "y":1}, | ||
| 24 | {"label":"A", "x":1, "y":1}, | ||
| 25 | {"label":"S", "x":2, "y":1}, | ||
| 26 | {"label":"D", "x":3, "y":1}, | ||
| 27 | {"label":"F", "x":4, "y":1}, | ||
| 28 | {"label":"G", "x":5, "y":1}, | ||
| 29 | {"label":"H", "x":6, "y":1}, | ||
| 30 | {"label":"J", "x":7, "y":1}, | ||
| 31 | {"label":"K", "x":8, "y":1}, | ||
| 32 | {"label":"L", "x":9, "y":1}, | ||
| 33 | {"label":"SCLN", "x":10, "y":1}, | ||
| 34 | {"label":"QUOT", "x":11, "y":1}, | ||
| 35 | {"label":"LSFT", "x":0, "y":2}, | ||
| 36 | {"label":"Z", "x":1, "y":2}, | ||
| 37 | {"label":"X", "x":2, "y":2}, | ||
| 38 | {"label":"C", "x":3, "y":2}, | ||
| 39 | {"label":"V", "x":4, "y":2}, | ||
| 40 | {"label":"B", "x":5, "y":2}, | ||
| 41 | {"label":"N", "x":6, "y":2}, | ||
| 42 | {"label":"M", "x":7, "y":2}, | ||
| 43 | {"label":"COMM", "x":8, "y":2}, | ||
| 44 | {"label":"DOT", "x":9, "y":2}, | ||
| 45 | {"label":"SLSH", "x":10, "y":2}, | ||
| 46 | {"label":"ENTER", "x":11, "y":2}, | ||
| 47 | {"label":"DEL", "x":1, "y":3}, | ||
| 48 | {"label":"LGUI", "x":2, "y":3}, | ||
| 49 | {"label":"LALT", "x":3, "y":3}, | ||
| 50 | {"label":"LOWER", "x":4, "y":3}, | ||
| 51 | {"label":" ", "x":5, "y":3, "w":2}, | ||
| 52 | {"label":"RAISE", "x":7, "y":3}, | ||
| 53 | {"label":"RALT", "x":8, "y":3}, | ||
| 54 | {"label":"MENU", "x":9, "y":3}, | ||
| 55 | {"label":"RCTL", "x":10, "y":3} | ||
| 56 | ] | ||
| 57 | }, | ||
| 58 | |||
| 59 | "LAYOUT_full_ortho": { | ||
| 60 | "key_count": 46, | ||
| 61 | "layout": [ | ||
| 62 | {"label":"TAB", "x":0, "y":0}, | ||
| 63 | {"label":"Q", "x":1, "y":0}, | ||
| 64 | {"label":"W", "x":2, "y":0}, | ||
| 65 | {"label":"E", "x":3, "y":0}, | ||
| 66 | {"label":"R", "x":4, "y":0}, | ||
| 67 | {"label":"T", "x":5, "y":0}, | ||
| 68 | {"label":"Y", "x":6, "y":0}, | ||
| 69 | {"label":"U", "x":7, "y":0}, | ||
| 70 | {"label":"I", "x":8, "y":0}, | ||
| 71 | {"label":"O", "x":9, "y":0}, | ||
| 72 | {"label":"P", "x":10, "y":0}, | ||
| 73 | {"label":"BSPC", "x":11, "y":0}, | ||
| 74 | {"label":"LCtl", "x":0, "y":1}, | ||
| 75 | {"label":"A", "x":1, "y":1}, | ||
| 76 | {"label":"S", "x":2, "y":1}, | ||
| 77 | {"label":"D", "x":3, "y":1}, | ||
| 78 | {"label":"F", "x":4, "y":1}, | ||
| 79 | {"label":"G", "x":5, "y":1}, | ||
| 80 | {"label":"H", "x":6, "y":1}, | ||
| 81 | {"label":"J", "x":7, "y":1}, | ||
| 82 | {"label":"K", "x":8, "y":1}, | ||
| 83 | {"label":"L", "x":9, "y":1}, | ||
| 84 | {"label":"SCLN", "x":10, "y":1}, | ||
| 85 | {"label":"QUOT", "x":11, "y":1}, | ||
| 86 | {"label":"LSFT", "x":0, "y":2}, | ||
| 87 | {"label":"Z", "x":1, "y":2}, | ||
| 88 | {"label":"X", "x":2, "y":2}, | ||
| 89 | {"label":"C", "x":3, "y":2}, | ||
| 90 | {"label":"V", "x":4, "y":2}, | ||
| 91 | {"label":"B", "x":5, "y":2}, | ||
| 92 | {"label":"N", "x":6, "y":2}, | ||
| 93 | {"label":"M", "x":7, "y":2}, | ||
| 94 | {"label":"COMM", "x":8, "y":2}, | ||
| 95 | {"label":"DOT", "x":9, "y":2}, | ||
| 96 | {"label":"SLSH", "x":10, "y":2}, | ||
| 97 | {"label":"ENTER", "x":11, "y":2}, | ||
| 98 | {"label":"DEL", "x":1, "y":3}, | ||
| 99 | {"label":"LGUI", "x":2, "y":3}, | ||
| 100 | {"label":"LALT", "x":3, "y":3}, | ||
| 101 | {"label":"LOWER", "x":4, "y":3}, | ||
| 102 | {"label":" ", "x":5, "y":3}, | ||
| 103 | {"label":" ", "x":6, "y":3}, | ||
| 104 | {"label":"RAISE", "x":7, "y":3}, | ||
| 105 | {"label":"RALT", "x":8, "y":3}, | ||
| 106 | {"label":"MENU", "x":9, "y":3}, | ||
| 107 | {"label":"RCTL", "x":10, "y":3} | ||
| 108 | ] | ||
| 109 | }, | ||
| 110 | |||
| 111 | "LAYOUT_big_boy": { | ||
| 112 | "key_count": 39, | ||
| 113 | "layout": [ | ||
| 114 | {"label":"TAB", "x":0, "y":0}, | ||
| 115 | {"label":"Q", "x":1, "y":0}, | ||
| 116 | {"label":"W", "x":2, "y":0}, | ||
| 117 | {"label":"E", "x":3, "y":0}, | ||
| 118 | {"label":"R", "x":4, "y":0}, | ||
| 119 | {"label":"T", "x":5, "y":0}, | ||
| 120 | {"label":"Y", "x":6, "y":0}, | ||
| 121 | {"label":"U", "x":7, "y":0}, | ||
| 122 | {"label":"I", "x":8, "y":0}, | ||
| 123 | {"label":"O", "x":9, "y":0}, | ||
| 124 | {"label":"P", "x":10, "y":0}, | ||
| 125 | {"label":"BSPC", "x":11, "y":0}, | ||
| 126 | {"label":"LCtl", "x":0, "y":1}, | ||
| 127 | {"label":"A", "x":1, "y":1}, | ||
| 128 | {"label":"S", "x":2, "y":1}, | ||
| 129 | {"label":"D", "x":3, "y":1}, | ||
| 130 | {"label":"F", "x":4, "y":1}, | ||
| 131 | {"label":"G", "x":5, "y":1}, | ||
| 132 | {"label":"H", "x":6, "y":1}, | ||
| 133 | {"label":"J", "x":7, "y":1}, | ||
| 134 | {"label":"K", "x":8, "y":1}, | ||
| 135 | {"label":"L", "x":9, "y":1}, | ||
| 136 | {"label":"SCLN", "x":10, "y":1}, | ||
| 137 | {"label":"QUOT", "x":11, "y":1}, | ||
| 138 | {"label":"LSFT", "x":0, "y":2}, | ||
| 139 | {"label":"Z", "x":1, "y":2}, | ||
| 140 | {"label":"X", "x":2, "y":2}, | ||
| 141 | {"label":"C", "x":3, "y":2}, | ||
| 142 | {"label":"V", "x":4, "y":2}, | ||
| 143 | {"label":"B", "x":5, "y":2}, | ||
| 144 | {"label":"N", "x":6, "y":2}, | ||
| 145 | {"label":"M", "x":7, "y":2}, | ||
| 146 | {"label":"COMM", "x":8, "y":2}, | ||
| 147 | {"label":"DOT", "x":9, "y":2}, | ||
| 148 | {"label":"SLSH", "x":10, "y":2}, | ||
| 149 | {"label":"ENTER", "x":11, "y":2}, | ||
| 150 | {"label":"LOWER", "x":1, "y":3, "w":1.5}, | ||
| 151 | {"label":" ", "x":2.5, "y":3, "w":7}, | ||
| 152 | {"label":"RAISE", "x":9.5, "y":3, "w":1.5} | ||
| 153 | ] | ||
| 154 | } | ||
| 155 | } | ||
| 156 | } | ||
diff --git a/keyboards/the_royal/schwann/keymaps/default/keymap.c b/keyboards/the_royal/schwann/keymaps/default/keymap.c new file mode 100644 index 000000000..0422f2d68 --- /dev/null +++ b/keyboards/the_royal/schwann/keymaps/default/keymap.c | |||
| @@ -0,0 +1,136 @@ | |||
| 1 | #include QMK_KEYBOARD_H | ||
| 2 | |||
| 3 | enum layer_names { | ||
| 4 | _QWERTY, | ||
| 5 | _LOWER, | ||
| 6 | _RAISE, | ||
| 7 | _OTHER | ||
| 8 | }; | ||
| 9 | |||
| 10 | enum schwann_keycodes { | ||
| 11 | QWERTY = SAFE_RANGE, | ||
| 12 | LOWER, | ||
| 13 | RAISE | ||
| 14 | }; | ||
| 15 | |||
| 16 | //Tap Dance Declarations | ||
| 17 | enum { | ||
| 18 | TD_RST | ||
| 19 | }; | ||
| 20 | |||
| 21 | void dance_rst_reset (qk_tap_dance_state_t *state, void *user_data) { | ||
| 22 | if (state->count >= 2) { | ||
| 23 | reset_keyboard(); | ||
| 24 | reset_tap_dance(state); | ||
| 25 | } | ||
| 26 | } | ||
| 27 | |||
| 28 | //All tap dance functions would go here. Only showing this one. | ||
| 29 | qk_tap_dance_action_t tap_dance_actions[] = { | ||
| 30 | [TD_RST] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, NULL, dance_rst_reset) | ||
| 31 | }; | ||
| 32 | |||
| 33 | |||
| 34 | #define XXXXX KC_TRNS | ||
| 35 | |||
| 36 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 37 | /* Default Layer | ||
| 38 | * ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐ | ||
| 39 | * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │BkSp│ | ||
| 40 | * ├────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤ | ||
| 41 | * │LCtl│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ | ||
| 42 | * ├────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤ | ||
| 43 | * │LSft│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Entr│ | ||
| 44 | * └────┼────┼────┼────┼────┼────┴────┼────┼────┼────┼────┼────┘ | ||
| 45 | * │Del │Gui │Alt │Lwr │ │Rse │Alt │Menu│Ctrl│ | ||
| 46 | * └────┴────┴────┴────┴─────────┴────┴────┴────┴────┘ | ||
| 47 | */ | ||
| 48 | |||
| 49 | [_QWERTY] = LAYOUT_mit( | ||
| 50 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, | ||
| 51 | KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, | ||
| 52 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, | ||
| 53 | KC_DEL, KC_LGUI, KC_LALT, LOWER, KC_SPACE, RAISE, KC_RALT, KC_MENU, KC_RCTL | ||
| 54 | ), | ||
| 55 | |||
| 56 | /* Lower Layer | ||
| 57 | * ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐ | ||
| 58 | * │Esc │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ │ | ||
| 59 | * ├────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤ | ||
| 60 | * │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ " │ | ||
| 61 | * ├────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤ | ||
| 62 | * │ │ │ │ │ │ │ │ │ ` │ [ │ ] │ . │ | ||
| 63 | * └────┼────┼────┼────┼────┼────┴────┼────┼────┼────┼────┼────┘ | ||
| 64 | * │ │ │ │ │ │ │ │ │ │ | ||
| 65 | * └────┴────┴────┴────┴─────────┴────┴────┴────┴────┘ | ||
| 66 | */ | ||
| 67 | [_LOWER] = LAYOUT_mit( | ||
| 68 | KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, | ||
| 69 | KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DQT, | ||
| 70 | _______, _______, _______, _______, _______, _______, _______, _______, KC_GRAVE, KC_LBRC, KC_RBRC, KC_DOT, | ||
| 71 | _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 72 | ), | ||
| 73 | |||
| 74 | /* Raise Layer | ||
| 75 | * ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐ | ||
| 76 | * │ │ │ │ │ │ │ │ │ │ │ - │ │ | ||
| 77 | * ├────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤ | ||
| 78 | * │CAPS│ │ │ │ │ │ │ │ │ │ _ │ \ │ | ||
| 79 | * ├────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤ | ||
| 80 | * │PrSc│ │ │ │ │ │ │ │ │ UP │ │ = │ | ||
| 81 | * └────┼────┼────┼────┼────┼────┴────┼────┼────┼────┼────┼────┘ | ||
| 82 | * │ │ │ │ │ │ │Left│Down│Rght│ | ||
| 83 | * └────┴────┴────┴────┴─────────┴────┴────┴────┴────┘ | ||
| 84 | */ | ||
| 85 | [_RAISE] = LAYOUT_mit( | ||
| 86 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, _______, | ||
| 87 | KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_BSLS, | ||
| 88 | KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, KC_EQUAL, | ||
| 89 | _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT | ||
| 90 | ), | ||
| 91 | |||
| 92 | /* Other Layer | ||
| 93 | * ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐ | ||
| 94 | * │RSET│ │ │ │ │ │ │ │ │SAT+│Hue+│Brt+│ | ||
| 95 | * ├────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤ | ||
| 96 | * │ │ │ │ │ │ │ │ │ │SAT-│Hue-│Brt-│ | ||
| 97 | * ├────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤ | ||
| 98 | * │ │ │ │ │ │ │ │ │ │ │ │RGB!│ | ||
| 99 | * └────┼────┼────┼────┼────┼────┴────┼────┼────┼────┼────┼────┘ | ||
| 100 | * │ │ │ │ │ │ │ │ │ │ | ||
| 101 | * └────┴────┴────┴────┴─────────┴────┴────┴────┴────┘ | ||
| 102 | */ | ||
| 103 | [_OTHER] = LAYOUT_mit( | ||
| 104 | TD(TD_RST), _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, RGB_HUI, RGB_VAI, | ||
| 105 | _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_VAD, | ||
| 106 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, | ||
| 107 | _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 108 | ) | ||
| 109 | |||
| 110 | }; | ||
| 111 | |||
| 112 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 113 | switch (keycode) { | ||
| 114 | case LOWER: | ||
| 115 | if (record->event.pressed) { | ||
| 116 | layer_on(_LOWER); | ||
| 117 | update_tri_layer(_LOWER, _RAISE, _OTHER); | ||
| 118 | } else { | ||
| 119 | layer_off(_LOWER); | ||
| 120 | update_tri_layer(_LOWER, _RAISE, _OTHER); | ||
| 121 | } | ||
| 122 | return false; | ||
| 123 | break; | ||
| 124 | case RAISE: | ||
| 125 | if (record->event.pressed) { | ||
| 126 | layer_on(_RAISE); | ||
| 127 | update_tri_layer(_LOWER, _RAISE, _OTHER); | ||
| 128 | } else { | ||
| 129 | layer_off(_RAISE); | ||
| 130 | update_tri_layer(_LOWER, _RAISE, _OTHER); | ||
| 131 | } | ||
| 132 | return false; | ||
| 133 | break; | ||
| 134 | } | ||
| 135 | return true; | ||
| 136 | }; | ||
diff --git a/keyboards/the_royal/schwann/keymaps/default/rules.mk b/keyboards/the_royal/schwann/keymaps/default/rules.mk new file mode 100644 index 000000000..e5ddcae8d --- /dev/null +++ b/keyboards/the_royal/schwann/keymaps/default/rules.mk | |||
| @@ -0,0 +1 @@ | |||
| TAP_DANCE_ENABLE = yes | |||
diff --git a/keyboards/the_royal/schwann/readme.md b/keyboards/the_royal/schwann/readme.md new file mode 100644 index 000000000..bb0c27a9a --- /dev/null +++ b/keyboards/the_royal/schwann/readme.md | |||
| @@ -0,0 +1,15 @@ | |||
| 1 | # Schwann PCB | ||
| 2 | |||
| 3 |  | ||
| 4 | |||
| 5 | A simple, HHKB ortho PCB, designed for use with the Neuron Keyboard by Wallet Burner | ||
| 6 | |||
| 7 | * Keyboard Maintainer: [TheRoyalSweatshirt](https://github.com/TheRoyalSweatshirt) a.k.a [The_Royal](https://reddit.com/u/The_Royal) | ||
| 8 | * Hardware Supported: Rev0.2 and Rev0.5 Schwann PCB | ||
| 9 | * Hardware Availability: Private Message, Group buy, or self-procurement via the open sourced [Schwann Documentation](https://github.com/TheRoyalSweatshirt/The_Royal_Projects/tree/schwann/PCBs/Schwann_PCB). | ||
| 10 | |||
| 11 | Make example for this keyboard (after setting up your build environment): | ||
| 12 | |||
| 13 | make the_royal/schwann:default | ||
| 14 | |||
| 15 | 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/the_royal/schwann/rules.mk b/keyboards/the_royal/schwann/rules.mk new file mode 100644 index 000000000..9317699f5 --- /dev/null +++ b/keyboards/the_royal/schwann/rules.mk | |||
| @@ -0,0 +1,32 @@ | |||
| 1 | # MCU name | ||
| 2 | MCU = atmega32u4 | ||
| 3 | |||
| 4 | # Bootloader selection | ||
| 5 | # Teensy halfkay | ||
| 6 | # Pro Micro caterina | ||
| 7 | # Atmel DFU atmel-dfu | ||
| 8 | # LUFA DFU lufa-dfu | ||
| 9 | # QMK DFU qmk-dfu | ||
| 10 | # ATmega32A bootloadHID | ||
| 11 | # ATmega328P USBasp | ||
| 12 | |||
| 13 | BOOTLOADER = atmel-dfu | ||
| 14 | |||
| 15 | # Build Options | ||
| 16 | # change yes to no to disable | ||
| 17 | # | ||
| 18 | BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration | ||
| 19 | MOUSEKEY_ENABLE = no # Mouse keys | ||
| 20 | EXTRAKEY_ENABLE = yes # Audio control and System control | ||
| 21 | CONSOLE_ENABLE = no # Console for debug | ||
| 22 | COMMAND_ENABLE = no # Commands for debug and configuration | ||
| 23 | # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | ||
| 24 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | ||
| 25 | # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||
| 26 | NKRO_ENABLE = no # USB Nkey Rollover | ||
| 27 | RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow | ||
| 28 | MIDI_ENABLE = no # MIDI support | ||
| 29 | UNICODE_ENABLE = no # Unicode | ||
| 30 | BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | ||
| 31 | AUDIO_ENABLE = no # Audio output on port C6 | ||
| 32 | |||
diff --git a/keyboards/the_royal/schwann/schwann.c b/keyboards/the_royal/schwann/schwann.c new file mode 100644 index 000000000..1ef8c9397 --- /dev/null +++ b/keyboards/the_royal/schwann/schwann.c | |||
| @@ -0,0 +1 @@ | |||
| #include "schwann.h" | |||
diff --git a/keyboards/the_royal/schwann/schwann.h b/keyboards/the_royal/schwann/schwann.h new file mode 100644 index 000000000..933e903ec --- /dev/null +++ b/keyboards/the_royal/schwann/schwann.h | |||
| @@ -0,0 +1,44 @@ | |||
| 1 | #pragma once | ||
| 2 | |||
| 3 | #include "quantum.h" | ||
| 4 | |||
| 5 | #define XXX KC_NO | ||
| 6 | |||
| 7 | #define LAYOUT_mit( \ | ||
| 8 | k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \ | ||
| 9 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \ | ||
| 10 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \ | ||
| 11 | k31, k32, k33, k34, k36, k37, k38, k39, k3A \ | ||
| 12 | ) \ | ||
| 13 | { \ | ||
| 14 | {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B}, \ | ||
| 15 | {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B}, \ | ||
| 16 | {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B}, \ | ||
| 17 | {XXX, k31, k32, k33, k34, XXX, k36, k37, k38, k39, k3A, XXX} \ | ||
| 18 | } | ||
| 19 | |||
| 20 | #define LAYOUT_full_ortho( \ | ||
| 21 | k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \ | ||
| 22 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \ | ||
| 23 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \ | ||
| 24 | k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A \ | ||
| 25 | ) \ | ||
| 26 | { \ | ||
| 27 | {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B}, \ | ||
| 28 | {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B}, \ | ||
| 29 | {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B}, \ | ||
| 30 | {XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, XXX} \ | ||
| 31 | } | ||
| 32 | |||
| 33 | #define LAYOUT_big_boy( \ | ||
| 34 | k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \ | ||
| 35 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \ | ||
| 36 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \ | ||
| 37 | k31, k36, k3A \ | ||
| 38 | ) \ | ||
| 39 | { \ | ||
| 40 | {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B}, \ | ||
| 41 | {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B}, \ | ||
| 42 | {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B}, \ | ||
| 43 | {XXX, k31, XXX, XXX, XXX, XXX, k36, XXX, XXX, XXX, k3A, XXX} \ | ||
| 44 | } | ||
