diff --git a/.github/workflows/lotus.yml b/.github/workflows/lotus.yml index 86aa459f93..2fb87efea2 100644 --- a/.github/workflows/lotus.yml +++ b/.github/workflows/lotus.yml @@ -22,22 +22,27 @@ jobs: run: pip3 install -r requirements-dev.txt - name: Lint lotus - run: qmk lint -kb lotus -km 78_ansi -km 79_iso -km 83_jis + run: | + qmk lint -kb lotus/ansi -km default + qmk lint -kb lotus/iso -km default + qmk lint -kb lotus/jis -km default + qmk lint -kb lotus/numpad -km default + qmk lint -kb lotus/gridpad -km default - name: Build Lotus ANSI variant - run: qmk compile -kb lotus -km 78_ansi + run: qmk compile -kb lotus/ansi -km default - name: Build Lotus ISO variant - run: qmk compile -kb lotus -km 79_iso + run: qmk compile -kb lotus/iso -km default - name: Build Lotus JIS variant - run: qmk compile -kb lotus -km 83_jis + run: qmk compile -kb lotus/jis -km default - name: Build Lotus Numpad - run: qmk compile -kb lotus -km numpad + run: qmk compile -kb lotus/numpad -km default - name: Build Lotus Gridpad - run: qmk compile -kb lotus -km gridpad + run: qmk compile -kb lotus/gridpad -km default # tests: # runs-on: ubuntu-latest diff --git a/keyboards/lotus/keymaps/78_ansi/keymap.c b/keyboards/lotus/ansi/ansi.c similarity index 66% rename from keyboards/lotus/keymaps/78_ansi/keymap.c rename to keyboards/lotus/ansi/ansi.c index fb0d2b4e9b..6e342f1483 100644 --- a/keyboards/lotus/keymaps/78_ansi/keymap.c +++ b/keyboards/lotus/ansi/ansi.c @@ -3,64 +3,6 @@ #include QMK_KEYBOARD_H -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* - * ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────┐ - * 14 keys │Esc │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ Del│ - * ├───┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤ - * 14 keys │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Backsp│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤ - * 14 keys │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴────┤ - * 13 keys │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───────┤ - * 12 keys │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ - * ├────┬───┼───┼───┼───┴───┴───┴───┴───┼───┼───┼───┴┬───┬────┤ - * │ │ │ │ │ │ │ │ │↑ │ │ - * 11 keys │Ctrl│FN │GUI│Alt│ │Alt│Ctl│ ← ├───┤ → │ - * │ │ │ │ │ │ │ │ │ ↓│ │ - * └────┴───┴───┴───┴───────────────────┴───┴───┴────┴───┴────┘ - * 78 total - */ - [0] = LAYOUT_78_ansi( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, MO(1), KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT - ), - /* - * Function layer - * ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────┐ - * 14 keys │FN lk│Mut│vDn│vUp│Prv│Ply│Nxt│bDn│bUp│Scn│Air│Prt│App│Ins │ - * ├───┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤ - * 14 keys │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤ - * 14 keys │ │ │ │ │ │ │ │ │ │ │Pau│ │ │ │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴────┤ - * 13 keys │ │ │SRq│ │ │ │ │ │ScL│ │ │ │ │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───────┤ - * 12 keys │ │ │ │ │ │Brk│ │ │ │ │ │ │ - * ├────┬───┼───┼───┼───┴───┴───┴───┴───┼───┼───┼───┴┬───┬────┤ - * │ │ │ │ │ │ │ │ │PgU│ │ - * 11 keys │ │ │ │ │ Toggle Backlight │ │ │Home├───┤End │ - * │ │ │ │ │ │ │ │ │PgD│ │ - * └────┴───┴───┴───┴───────────────────┴───┴───┴────┴───┴────┘ - * 78 total - */ - // TODO: Screen toggle, airplane mode - // TODO: Other unlabeled keys - [1] = LAYOUT_78_ansi( - TG(1), KC_KB_MUTE, KC_KB_VOLUME_DOWN, KC_KB_VOLUME_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_BRID, KC_BRIU, KC_SCRN, KC_TRNS, KC_PSCR, KC_MSEL, KC_INS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_SYRQ, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCRL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BRK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_TOGG, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_PGDN, KC_END - ) -}; - #define CS19_SW12 0x00 #define CS20_SW12 0x01 #define CS21_SW12 0x02 diff --git a/keyboards/lotus/ansi/ansi.h b/keyboards/lotus/ansi/ansi.h new file mode 100644 index 0000000000..c420fba5c6 --- /dev/null +++ b/keyboards/lotus/ansi/ansi.h @@ -0,0 +1,22 @@ +// Copyright 2022 Framework Computer +// SPDX-License-Identifier: GPL-2.0-or-later + +// The layouts are all mostly the same, except for the extra keys that the different layouts have +#define LAYOUT( \ + K110, K112, K113, K114, K115, K116, K117, K118, K119, K120, K121, K122, K126, K76, \ + K1, K2, K3, K4, K5, K6, K7, K8, K9, K10, K11, K12, K13, K15, \ + K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K40, K41, K43, \ + K44, K46, K47, K48, K49, K50, K51, K52, K53, K54, K55, K57, \ + K58, K59, K127, K60, K61, K62, K64, K79, K83, K84, K89 \ +) \ +{ \ + { K48, K76, K17, K62, KC_NO, K47, K49, K52, K54, K57, K53, KC_NO, K64, K55, K41, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, K60, K61, K46, K50, K51, K84, K44, KC_NO, KC_NO, K58, K83, K43, K119 }, \ + { KC_NO, KC_NO, K59, KC_NO, K19, K113, K35, K36, K29, KC_NO, K118, KC_NO, KC_NO, K12, KC_NO, K89 }, \ + { KC_NO, K127, K16, KC_NO, K115, K112, K21, K22, K25, KC_NO, K117, K120, KC_NO, KC_NO, KC_NO, K126 }, \ + { KC_NO, KC_NO, K1, KC_NO, K30, K32, K6, K7, K121, KC_NO, K116, KC_NO, KC_NO, K11, K13, KC_NO }, \ + { KC_NO, KC_NO, K2, KC_NO, K4, K3, K5, K8, K10, KC_NO, K9, KC_NO, KC_NO, K26, K15, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, K114, K18, K20, K23, K122, KC_NO, K24, K79, KC_NO, K27, K28, KC_NO }, \ + { KC_NO, KC_NO, K31, KC_NO, KC_NO, K110, K34, K37, K39, KC_NO, K38, KC_NO, KC_NO, K40, K33, KC_NO } \ +} diff --git a/keyboards/lotus/keymaps/78_ansi/config.h b/keyboards/lotus/ansi/config.h similarity index 62% rename from keyboards/lotus/keymaps/78_ansi/config.h rename to keyboards/lotus/ansi/config.h index cd72d084f0..7463fb212c 100644 --- a/keyboards/lotus/keymaps/78_ansi/config.h +++ b/keyboards/lotus/ansi/config.h @@ -1,3 +1,9 @@ +// Copyright 2022 Framework Computer +// SPDX-License-Identifier: GPL-2.0-or-later + +#define MATRIX_COLS 16 +#define MATRIX_ROWS 8 + #define DRIVER_COUNT 2 #define DRIVER_ADDR_1 0b0100000 #define DRIVER_ADDR_2 0b0100011 diff --git a/keyboards/lotus/ansi/info.json b/keyboards/lotus/ansi/info.json new file mode 100644 index 0000000000..6e73cb6b9b --- /dev/null +++ b/keyboards/lotus/ansi/info.json @@ -0,0 +1,113 @@ +{ + "keyboard_name": "Lotus Keyboard", + "manufacturer": "Framework Computer Inc", + "maintainer": "JohnAZoidberg", + "bootloader": "rp2040", + "features": { + "bootmagic": false, + "mousekey": true, + "extrakey": true, + "console": true, + "command": false, + "nkro": true, + "audio": false + }, + "debounce": 5, + "processor": "RP2040", + "url": "https://frame.work", + "usb": { + "device_version": "0.1.0", + "pid": "0x0013", + "vid": "0x32AC" + }, + "backlight": { + "pin": "GP25" + }, + "layout_aliases": { + "LAYOUT_default": "LAYOUT" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0, "w": 1.25, "h": 0.5 }, + { "label": "F1", "x": 1.5, "y": 0, "h": 0.5 }, + { "label": "F2", "x": 2.75, "y": 0, "h": 0.5 }, + { "label": "F3", "x": 4, "y": 0, "h": 0.5 }, + { "label": "F4", "x": 5.25, "y": 0, "h": 0.5 }, + { "label": "F5", "x": 6.5, "y": 0, "h": 0.5 }, + { "label": "F6", "x": 7.75, "y": 0, "h": 0.5 }, + { "label": "F7", "x": 9, "y": 0, "h": 0.5 }, + { "label": "F8", "x": 10.25, "y": 0, "h": 0.5 }, + { "label": "F9", "x": 11.5, "y": 0, "h": 0.5 }, + { "label": "F10", "x": 12.75, "y": 0, "h": 0.5 }, + { "label": "F11", "x": 14, "y": 0, "h": 0.5 }, + { "label": "F12", "x": 15.25, "y": 0, "h": 0.5 }, + { "label": "Delete", "x": 16.5, "y": 0, "w": 1.75, "h": 0.5 }, + { "label": "~", "x": 0, "y": 0.75 }, + { "label": "!", "x": 1.25, "y": 0.75 }, + { "label": "@", "x": 2.5, "y": 0.75 }, + { "label": "#", "x": 3.75, "y": 0.75 }, + { "label": "$", "x": 5, "y": 0.75 }, + { "label": "%", "x": 6.25, "y": 0.75 }, + { "label": "^", "x": 7.5, "y": 0.75 }, + { "label": "&", "x": 8.75, "y": 0.75 }, + { "label": "*", "x": 10, "y": 0.75 }, + { "label": "(", "x": 11.25, "y": 0.75 }, + { "label": ")", "x": 12.5, "y": 0.75 }, + { "label": "_", "x": 13.75, "y": 0.75 }, + { "label": "+", "x": 15, "y": 0.75 }, + { "label": "Backspace", "x": 16.25, "y": 0.75, "w": 2 }, + { "label": "Tab", "x": 0, "y": 2, "w": 1.5 }, + { "label": "Q", "x": 1.75, "y": 2 }, + { "label": "W", "x": 3, "y": 2 }, + { "label": "E", "x": 4.25, "y": 2 }, + { "label": "R", "x": 5.5, "y": 2 }, + { "label": "T", "x": 6.75, "y": 2 }, + { "label": "Y", "x": 8, "y": 2 }, + { "label": "U", "x": 9.25, "y": 2 }, + { "label": "I", "x": 10.5, "y": 2 }, + { "label": "O", "x": 11.75, "y": 2 }, + { "label": "P", "x": 13, "y": 2 }, + { "label": "{", "x": 14.25, "y": 2 }, + { "label": "}", "x": 15.5, "y": 2 }, + { "label": "|", "x": 16.75, "y": 2, "w": 1.5 }, + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 2, "y": 3.25 }, + { "label": "S", "x": 3.25, "y": 3.25 }, + { "label": "D", "x": 4.5, "y": 3.25 }, + { "label": "F", "x": 5.75, "y": 3.25 }, + { "label": "G", "x": 7, "y": 3.25 }, + { "label": "H", "x": 8.25, "y": 3.25 }, + { "label": "J", "x": 9.5, "y": 3.25 }, + { "label": "K", "x": 10.75, "y": 3.25 }, + { "label": "L", "x": 12, "y": 3.25 }, + { "label": ":", "x": 13.25, "y": 3.25 }, + { "label": "\"", "x": 14.5, "y": 3.25 }, + { "label": "Enter", "x": 15.75, "y": 3.25, "w": 2.5 }, + { "label": "Shift", "x": 0, "y": 4.5, "w": 2.5 }, + { "label": "Z", "x": 2.75, "y": 4.5 }, + { "label": "X", "x": 4, "y": 4.5 }, + { "label": "C", "x": 5.25, "y": 4.5 }, + { "label": "V", "x": 6.5, "y": 4.5 }, + { "label": "B", "x": 7.75, "y": 4.5 }, + { "label": "N", "x": 9, "y": 4.5 }, + { "label": "M", "x": 10.25, "y": 4.5 }, + { "label": "<", "x": 11.5, "y": 4.5 }, + { "label": ">", "x": 12.75, "y": 4.5 }, + { "label": "?", "x": 14, "y": 4.5 }, + { "label": "Shift", "x": 15.25, "y": 4.5, "w": 3 }, + { "label": "Ctrl", "x": 0, "y": 5.75, "w": 1.25 }, + { "label": "Fn", "x": 1.5, "y": 5.75 }, + { "label": "Win", "x": 2.75, "y": 5.75 }, + { "label": "Alt", "x": 4, "y": 5.75 }, + { "x": 5.25, "y": 5.75, "w": 6 }, + { "label": "Alt", "x": 11.5, "y": 5.75 }, + { "label": "Ctrl", "x": 12.75, "y": 5.75 }, + { "label": "←", "x": 14, "y": 5.75, "w": 1.25 }, + { "label": "↑", "x": 15.5, "y": 5.75, "w": 1.25, "h": 0.5 }, + { "label": "→", "x": 17, "y": 5.75, "w": 1.25 }, + { "label": "↓", "x": 15.5, "y": 6.25, "w": 1.25, "h": 0.5 } + ] + } + } +} diff --git a/keyboards/lotus/ansi/keymaps/default/keymap.c b/keyboards/lotus/ansi/keymaps/default/keymap.c new file mode 100644 index 0000000000..3ec1733d3d --- /dev/null +++ b/keyboards/lotus/ansi/keymaps/default/keymap.c @@ -0,0 +1,62 @@ +// Copyright 2022 Framework Computer +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +#include "lotus.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────┐ + * 14 keys │Esc │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ Del│ + * ├───┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤ + * 14 keys │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Backsp│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤ + * 14 keys │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴────┤ + * 13 keys │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───────┤ + * 12 keys │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ + * ├────┬───┼───┼───┼───┴───┴───┴───┴───┼───┼───┼───┴┬───┬────┤ + * │ │ │ │ │ │ │ │ │↑ │ │ + * 11 keys │Ctrl│FN │GUI│Alt│ │Alt│Ctl│ ← ├───┤ → │ + * │ │ │ │ │ │ │ │ │ ↓│ │ + * └────┴───┴───┴───┴───────────────────┴───┴───┴────┴───┴────┘ + * 78 total + */ + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, MO(1), KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT + ), + /* + * Function layer + * ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────┐ + * 14 keys │FN lk│Mut│vDn│vUp│Prv│Ply│Nxt│bDn│bUp│Scn│Air│Prt│App│Ins │ + * ├───┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤ + * 14 keys │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤ + * 14 keys │ │ │ │ │ │ │ │ │ │ │Pau│ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴────┤ + * 13 keys │ │ │SRq│ │ │ │ │ │ScL│ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───────┤ + * 12 keys │ │ │ │ │ │Brk│ │ │ │ │ │ │ + * ├────┬───┼───┼───┼───┴───┴───┴───┴───┼───┼───┼───┴┬───┬────┤ + * │ │ │ │ │ │ │ │ │PgU│ │ + * 11 keys │ │ │ │ │ Toggle Backlight │ │ │Home├───┤End │ + * │ │ │ │ │ │ │ │ │PgD│ │ + * └────┴───┴───┴───┴───────────────────┴───┴───┴────┴───┴────┘ + * 78 total + */ + // TODO: Airplane mode + [1] = LAYOUT( + TG(1), KC_KB_MUTE, KC_KB_VOLUME_DOWN, KC_KB_VOLUME_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_BRID, KC_BRIU, KC_SCRN, KC_TRNS, KC_PSCR, KC_MSEL, KC_INS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_SYRQ, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCRL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BRK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_TOGG, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_PGDN, KC_END + ) +}; diff --git a/keyboards/lotus/ansi/rules.mk b/keyboards/lotus/ansi/rules.mk new file mode 100644 index 0000000000..68d6023391 --- /dev/null +++ b/keyboards/lotus/ansi/rules.mk @@ -0,0 +1,4 @@ +# Debugging (enabled in info.json) +#CONSOLE_ENABLE = yes +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = IS31FL3743A diff --git a/keyboards/lotus/build_all.sh b/keyboards/lotus/build_all.sh new file mode 100644 index 0000000000..38e5f104c8 --- /dev/null +++ b/keyboards/lotus/build_all.sh @@ -0,0 +1,6 @@ +set -e +qmk compile -kb lotus/ansi -km default +qmk compile -kb lotus/iso -km default +qmk compile -kb lotus/jis -km default +qmk compile -kb lotus/numpad -km default +qmk compile -kb lotus/gridpad -km default diff --git a/keyboards/lotus/config.h b/keyboards/lotus/config.h index 876db7a700..332c4e13aa 100644 --- a/keyboards/lotus/config.h +++ b/keyboards/lotus/config.h @@ -5,9 +5,6 @@ #include -#define MATRIX_COLS 16 -#define MATRIX_ROWS 8 - #define SERIAL_USART_FULL_DUPLEX #define SERIAL_USART_TX_PIN GP0 #define SERIAL_USART_RX_PIN GP1 diff --git a/keyboards/lotus/gridpad/config.h b/keyboards/lotus/gridpad/config.h new file mode 100644 index 0000000000..a1b3399733 --- /dev/null +++ b/keyboards/lotus/gridpad/config.h @@ -0,0 +1,9 @@ +// Copyright 2022 Framework Computer +// SPDX-License-Identifier: GPL-2.0-or-later + +#define MATRIX_COLS 8 +#define MATRIX_ROWS 4 + +#define DRIVER_COUNT 1 +#define DRIVER_ADDR_1 0b0100000 +#define RGB_MATRIX_LED_COUNT 24 diff --git a/keyboards/lotus/gridpad/gridpad.h b/keyboards/lotus/gridpad/gridpad.h new file mode 100644 index 0000000000..b2af646e1e --- /dev/null +++ b/keyboards/lotus/gridpad/gridpad.h @@ -0,0 +1,17 @@ +// Copyright 2022 Framework Computer +// SPDX-License-Identifier: GPL-2.0-or-later + +#define LAYOUT( \ + H1, H2, H3, H4, \ + K90, K95, K100, K105, \ + K91, K96, K101, K107, \ + K92, K97, K102, K106, \ + K93, K98, K103, K109, \ + K99, K110, K104, K108 \ +) \ +{ \ + { K90, K91, K92, K93, K95, K96, K97, K98 }, \ + { K99, K100, K101, K102, K103, K104, K105, K106 }, \ + { K108, H1, H2, KC_NO, H4, K107, K109, K110 }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, H3, KC_NO, KC_NO, KC_NO }, \ +} diff --git a/keyboards/lotus/gridpad/info.json b/keyboards/lotus/gridpad/info.json new file mode 100644 index 0000000000..93d1706ad2 --- /dev/null +++ b/keyboards/lotus/gridpad/info.json @@ -0,0 +1,61 @@ +{ + "keyboard_name": "Lotus Gridpad", + "manufacturer": "Framework Computer Inc", + "maintainer": "JohnAZoidberg", + "bootloader": "rp2040", + "features": { + "bootmagic": false, + "mousekey": true, + "extrakey": true, + "console": true, + "command": false, + "nkro": true, + "audio": false + }, + "debounce": 5, + "processor": "RP2040", + "url": "https://frame.work", + "usb": { + "device_version": "0.1.0", + "pid": "0x0013", + "vid": "0x32AC" + }, + "backlight": { + "pin": "GP25" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "x": 0, "y": 0, "h": 0.75 }, + { "x": 1.25, "y": 0, "h": 0.75 }, + { "x": 2.5, "y": 0, "h": 0.75 }, + { "x": 3.75, "y": 0, "h": 0.75 }, + + { "x": 0, "y": 1, "h": 1.25 }, + { "x": 1.25, "y": 1, "h": 1.25 }, + { "x": 2.5, "y": 1, "h": 1.25 }, + { "x": 3.75, "y": 1, "h": 1.25 }, + + { "x": 0, "y": 2.5, "h": 1.25 }, + { "x": 1.25, "y": 2.5, "h": 1.25 }, + { "x": 2.5, "y": 2.5, "h": 1.25 }, + { "x": 3.75, "y": 2.5, "h": 1.25 }, + + { "x": 0, "y": 4, "h": 1.25 }, + { "x": 1.25, "y": 4, "h": 1.25 }, + { "x": 2.5, "y": 4, "h": 1.25 }, + { "x": 3.75, "y": 4, "h": 1.25 }, + + { "x": 0, "y": 5.5, "h": 1.25 }, + { "x": 1.25, "y": 5.5, "h": 1.25 }, + { "x": 2.5, "y": 5.5, "h": 1.25 }, + { "x": 3.75, "y": 5.5, "h": 1.25 }, + + { "x": 0, "y": 7, "w": 2.25, "h": 1.25 }, + { "x": 1.25, "y": 7, "h": 1.25 }, + { "x": 2.5, "y": 7, "h": 1.25 }, + { "x": 3.75, "y": 7, "h": 1.25 } + ] + } + } +} diff --git a/keyboards/lotus/keymaps/gridpad/keymap.c b/keyboards/lotus/gridpad/keymaps/default/keymap.c similarity index 96% rename from keyboards/lotus/keymaps/gridpad/keymap.c rename to keyboards/lotus/gridpad/keymaps/default/keymap.c index 30a7d6fb34..13209584c1 100644 --- a/keyboards/lotus/keymaps/gridpad/keymap.c +++ b/keyboards/lotus/gridpad/keymaps/default/keymap.c @@ -82,9 +82,7 @@ led_config_t g_led_config = { { 4, 4, 4, 4, 4, 4, 4, 4 } }; -#define NUMPAD_ROWS 4 -#define NUMPAD_COLS 8 -const uint16_t PROGMEM keymaps[][NUMPAD_ROWS][NUMPAD_COLS] = { +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * ┌────┬────┬────┬────┐ * 4 keys │ │ │ │ │ @@ -104,7 +102,7 @@ const uint16_t PROGMEM keymaps[][NUMPAD_ROWS][NUMPAD_COLS] = { * Default mapping to F keys, because there happen to be just enough to fit. * The user is expected to remap them by recompiling or with VIA. */ - [0] = LAYOUT_gridpad( + [0] = LAYOUT( KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, diff --git a/keyboards/lotus/keymaps/78_ansi/rules.mk b/keyboards/lotus/gridpad/rules.mk similarity index 100% rename from keyboards/lotus/keymaps/78_ansi/rules.mk rename to keyboards/lotus/gridpad/rules.mk diff --git a/keyboards/lotus/info.json b/keyboards/lotus/info.json deleted file mode 100644 index c5fea4aa0a..0000000000 --- a/keyboards/lotus/info.json +++ /dev/null @@ -1,338 +0,0 @@ -{ - "keyboard_name": "Lotus", - "manufacturer": "Framework Computer Inc", - "maintainer": "JohnAZoidberg", - "bootloader": "rp2040", - "features": { - "bootmagic": false, - "mousekey": true, - "extrakey": true, - "console": true, - "command": false, - "nkro": true, - "audio": false - }, - "debounce": 5, - "processor": "RP2040", - "url": "https://frame.work", - "usb": { - "device_version": "0.1.0", - "pid": "0x0013", - "vid": "0x32AC" - }, - "backlight": { - "pin": "GP25" - }, - "layouts": { - "LAYOUT_78_ansi": { - "layout": [ - { "label": "Esc", "x": 0, "y": 0, "w": 1.25, "h": 0.5 }, - { "label": "F1", "x": 1.5, "y": 0, "h": 0.5 }, - { "label": "F2", "x": 2.75, "y": 0, "h": 0.5 }, - { "label": "F3", "x": 4, "y": 0, "h": 0.5 }, - { "label": "F4", "x": 5.25, "y": 0, "h": 0.5 }, - { "label": "F5", "x": 6.5, "y": 0, "h": 0.5 }, - { "label": "F6", "x": 7.75, "y": 0, "h": 0.5 }, - { "label": "F7", "x": 9, "y": 0, "h": 0.5 }, - { "label": "F8", "x": 10.25, "y": 0, "h": 0.5 }, - { "label": "F9", "x": 11.5, "y": 0, "h": 0.5 }, - { "label": "F10", "x": 12.75, "y": 0, "h": 0.5 }, - { "label": "F11", "x": 14, "y": 0, "h": 0.5 }, - { "label": "F12", "x": 15.25, "y": 0, "h": 0.5 }, - { "label": "Delete", "x": 16.5, "y": 0, "w": 1.75, "h": 0.5 }, - { "label": "~", "x": 0, "y": 0.75 }, - { "label": "!", "x": 1.25, "y": 0.75 }, - { "label": "@", "x": 2.5, "y": 0.75 }, - { "label": "#", "x": 3.75, "y": 0.75 }, - { "label": "$", "x": 5, "y": 0.75 }, - { "label": "%", "x": 6.25, "y": 0.75 }, - { "label": "^", "x": 7.5, "y": 0.75 }, - { "label": "&", "x": 8.75, "y": 0.75 }, - { "label": "*", "x": 10, "y": 0.75 }, - { "label": "(", "x": 11.25, "y": 0.75 }, - { "label": ")", "x": 12.5, "y": 0.75 }, - { "label": "_", "x": 13.75, "y": 0.75 }, - { "label": "+", "x": 15, "y": 0.75 }, - { "label": "Backspace", "x": 16.25, "y": 0.75, "w": 2 }, - { "label": "Tab", "x": 0, "y": 2, "w": 1.5 }, - { "label": "Q", "x": 1.75, "y": 2 }, - { "label": "W", "x": 3, "y": 2 }, - { "label": "E", "x": 4.25, "y": 2 }, - { "label": "R", "x": 5.5, "y": 2 }, - { "label": "T", "x": 6.75, "y": 2 }, - { "label": "Y", "x": 8, "y": 2 }, - { "label": "U", "x": 9.25, "y": 2 }, - { "label": "I", "x": 10.5, "y": 2 }, - { "label": "O", "x": 11.75, "y": 2 }, - { "label": "P", "x": 13, "y": 2 }, - { "label": "{", "x": 14.25, "y": 2 }, - { "label": "}", "x": 15.5, "y": 2 }, - { "label": "|", "x": 16.75, "y": 2, "w": 1.5 }, - { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, - { "label": "A", "x": 2, "y": 3.25 }, - { "label": "S", "x": 3.25, "y": 3.25 }, - { "label": "D", "x": 4.5, "y": 3.25 }, - { "label": "F", "x": 5.75, "y": 3.25 }, - { "label": "G", "x": 7, "y": 3.25 }, - { "label": "H", "x": 8.25, "y": 3.25 }, - { "label": "J", "x": 9.5, "y": 3.25 }, - { "label": "K", "x": 10.75, "y": 3.25 }, - { "label": "L", "x": 12, "y": 3.25 }, - { "label": ":", "x": 13.25, "y": 3.25 }, - { "label": "\"", "x": 14.5, "y": 3.25 }, - { "label": "Enter", "x": 15.75, "y": 3.25, "w": 2.5 }, - { "label": "Shift", "x": 0, "y": 4.5, "w": 2.5 }, - { "label": "Z", "x": 2.75, "y": 4.5 }, - { "label": "X", "x": 4, "y": 4.5 }, - { "label": "C", "x": 5.25, "y": 4.5 }, - { "label": "V", "x": 6.5, "y": 4.5 }, - { "label": "B", "x": 7.75, "y": 4.5 }, - { "label": "N", "x": 9, "y": 4.5 }, - { "label": "M", "x": 10.25, "y": 4.5 }, - { "label": "<", "x": 11.5, "y": 4.5 }, - { "label": ">", "x": 12.75, "y": 4.5 }, - { "label": "?", "x": 14, "y": 4.5 }, - { "label": "Shift", "x": 15.25, "y": 4.5, "w": 3 }, - { "label": "Ctrl", "x": 0, "y": 5.75, "w": 1.25 }, - { "label": "Fn", "x": 1.5, "y": 5.75 }, - { "label": "Win", "x": 2.75, "y": 5.75 }, - { "label": "Alt", "x": 4, "y": 5.75 }, - { "x": 5.25, "y": 5.75, "w": 6 }, - { "label": "Alt", "x": 11.5, "y": 5.75 }, - { "label": "Ctrl", "x": 12.75, "y": 5.75 }, - { "label": "←", "x": 14, "y": 5.75, "w": 1.25 }, - { "label": "↑", "x": 15.5, "y": 5.75, "w": 1.25, "h": 0.5 }, - { "label": "→", "x": 17, "y": 5.75, "w": 1.25 }, - { "label": "↓", "x": 15.5, "y": 6.25, "w": 1.25, "h": 0.5 } - ] - }, - "LAYOUT_79_iso": { - "layout": [ - { "label": "Esc", "x": 0, "y": 0, "w": 1.25, "h": 0.5 }, - { "label": "F1", "x": 1.5, "y": 0, "h": 0.5 }, - { "label": "F2", "x": 2.75, "y": 0, "h": 0.5 }, - { "label": "F3", "x": 4, "y": 0, "h": 0.5 }, - { "label": "F4", "x": 5.25, "y": 0, "h": 0.5 }, - { "label": "F5", "x": 6.5, "y": 0, "h": 0.5 }, - { "label": "F6", "x": 7.75, "y": 0, "h": 0.5 }, - { "label": "F7", "x": 9, "y": 0, "h": 0.5 }, - { "label": "F8", "x": 10.25, "y": 0, "h": 0.5 }, - { "label": "F9", "x": 11.5, "y": 0, "h": 0.5 }, - { "label": "F10", "x": 12.75, "y": 0, "h": 0.5 }, - { "label": "F11", "x": 14, "y": 0, "h": 0.5 }, - { "label": "F12", "x": 15.25, "y": 0, "h": 0.5 }, - { "label": "Delete", "x": 16.5, "y": 0, "w": 1.75, "h": 0.5 }, - { "label": "~", "x": 0, "y": 0.75 }, - { "label": "!", "x": 1.25, "y": 0.75 }, - { "label": "\"", "x": 2.5, "y": 0.75 }, - { "label": "", "x": 3.75, "y": 0.75 }, - { "label": "$", "x": 5, "y": 0.75 }, - { "label": "%", "x": 6.25, "y": 0.75 }, - { "label": "^", "x": 7.5, "y": 0.75 }, - { "label": "&", "x": 8.75, "y": 0.75 }, - { "label": "*", "x": 10, "y": 0.75 }, - { "label": "(", "x": 11.25, "y": 0.75 }, - { "label": ")", "x": 12.5, "y": 0.75 }, - { "label": "_", "x": 13.75, "y": 0.75 }, - { "label": "+", "x": 15, "y": 0.75 }, - { "label": "Backspace", "x": 16.25, "y": 0.75, "w": 2 }, - { "label": "Tab", "x": 0, "y": 2, "w": 1.5 }, - { "label": "Q", "x": 1.75, "y": 2 }, - { "label": "W", "x": 3, "y": 2 }, - { "label": "E", "x": 4.25, "y": 2 }, - { "label": "R", "x": 5.5, "y": 2 }, - { "label": "T", "x": 6.75, "y": 2 }, - { "label": "Y", "x": 8, "y": 2 }, - { "label": "U", "x": 9.25, "y": 2 }, - { "label": "I", "x": 10.5, "y": 2 }, - { "label": "O", "x": 11.75, "y": 2 }, - { "label": "P", "x": 13, "y": 2 }, - { "label": "{", "x": 14.25, "y": 2 }, - { "label": "}", "x": 15.5, "y": 2 }, - { "label": "Enter", "x": 17, "y": 2, "w": 1.25, "h": 2.25 }, - { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, - { "label": "A", "x": 2, "y": 3.25 }, - { "label": "S", "x": 3.25, "y": 3.25 }, - { "label": "D", "x": 4.5, "y": 3.25 }, - { "label": "F", "x": 5.75, "y": 3.25 }, - { "label": "G", "x": 7, "y": 3.25 }, - { "label": "H", "x": 8.25, "y": 3.25 }, - { "label": "J", "x": 9.5, "y": 3.25 }, - { "label": "K", "x": 10.75, "y": 3.25 }, - { "label": "L", "x": 12, "y": 3.25 }, - { "label": ":", "x": 13.25, "y": 3.25 }, - { "label": "@", "x": 14.5, "y": 3.25 }, - { "label": "~", "x": 15.75, "y": 3.25 }, - { "label": "Shift", "x": 0, "y": 4.5, "w": 1.25 }, - { "label": "|", "x": 1.5, "y": 4.5 }, - { "label": "Z", "x": 2.75, "y": 4.5 }, - { "label": "X", "x": 4, "y": 4.5 }, - { "label": "C", "x": 5.25, "y": 4.5 }, - { "label": "V", "x": 6.5, "y": 4.5 }, - { "label": "B", "x": 7.75, "y": 4.5 }, - { "label": "N", "x": 9, "y": 4.5 }, - { "label": "M", "x": 10.25, "y": 4.5 }, - { "label": "<", "x": 11.5, "y": 4.5 }, - { "label": ">", "x": 12.75, "y": 4.5 }, - { "label": "?", "x": 14, "y": 4.5 }, - { "label": "Shift", "x": 15.25, "y": 4.5, "w": 3 }, - { "label": "Ctrl", "x": 0, "y": 5.75, "w": 1.25 }, - { "label": "Fn", "x": 1.5, "y": 5.75 }, - { "label": "Win", "x": 2.75, "y": 5.75 }, - { "label": "Alt", "x": 4, "y": 5.75 }, - { "x": 5.25, "y": 5.75, "w": 6 }, - { "label": "Alt", "x": 11.5, "y": 5.75 }, - { "label": "Ctrl", "x": 12.75, "y": 5.75 }, - { "label": "←", "x": 14, "y": 5.75, "w": 1.25 }, - { "label": "↑", "x": 15.5, "y": 5.75, "w": 1.25, "h": 0.5 }, - { "label": "→", "x": 17, "y": 5.75, "w": 1.25 }, - { "label": "↓", "x": 15.5, "y": 6.25, "w": 1.25, "h": 0.5 } - ] - }, - "LAYOUT_83_jis": { - "layout": [ - { "label": "Esc", "x": 0, "y": 0, "w": 1.25, "h": 0.5 }, - { "label": "F1", "x": 1.5, "y": 0, "h": 0.5 }, - { "label": "F2", "x": 2.75, "y": 0, "h": 0.5 }, - { "label": "F3", "x": 4, "y": 0, "h": 0.5 }, - { "label": "F4", "x": 5.25, "y": 0, "h": 0.5 }, - { "label": "F5", "x": 6.5, "y": 0, "h": 0.5 }, - { "label": "F6", "x": 7.75, "y": 0, "h": 0.5 }, - { "label": "F7", "x": 9, "y": 0, "h": 0.5 }, - { "label": "F8", "x": 10.25, "y": 0, "h": 0.5 }, - { "label": "F9", "x": 11.5, "y": 0, "h": 0.5 }, - { "label": "F10", "x": 12.75, "y": 0, "h": 0.5 }, - { "label": "F11", "x": 14, "y": 0, "h": 0.5 }, - { "label": "F12", "x": 15.25, "y": 0, "h": 0.5 }, - { "label": "Delete", "x": 16.5, "y": 0, "w": 1.75, "h": 0.5 }, - { "label": "~", "x": 0, "y": 0.75 }, - { "label": "!", "x": 1.25, "y": 0.75 }, - { "label": "\"", "x": 2.5, "y": 0.75 }, - { "label": "", "x": 3.75, "y": 0.75 }, - { "label": "$", "x": 5, "y": 0.75 }, - { "label": "%", "x": 6.25, "y": 0.75 }, - { "label": "^", "x": 7.5, "y": 0.75 }, - { "label": "&", "x": 8.75, "y": 0.75 }, - { "label": "*", "x": 10, "y": 0.75 }, - { "label": "(", "x": 11.25, "y": 0.75 }, - { "label": ")", "x": 12.5, "y": 0.75 }, - { "label": "_", "x": 13.75, "y": 0.75 }, - { "label": "+", "x": 15, "y": 0.75 }, - { "x": 16.25, "y": 0.75, "w": 0.5 }, - { "label": "Backsp", "x": 17, "y": 0.75, "w": 1.25 }, - { "label": "Tab", "x": 0, "y": 2, "w": 1.5 }, - { "label": "Q", "x": 1.75, "y": 2 }, - { "label": "W", "x": 3, "y": 2 }, - { "label": "E", "x": 4.25, "y": 2 }, - { "label": "R", "x": 5.5, "y": 2 }, - { "label": "T", "x": 6.75, "y": 2 }, - { "label": "Y", "x": 8, "y": 2 }, - { "label": "U", "x": 9.25, "y": 2 }, - { "label": "I", "x": 10.5, "y": 2 }, - { "label": "O", "x": 11.75, "y": 2 }, - { "label": "P", "x": 13, "y": 2 }, - { "label": "{", "x": 14.25, "y": 2 }, - { "label": "}", "x": 15.5, "y": 2 }, - { "label": "Enter", "x": 17, "y": 2, "w": 1.25, "h": 2.25 }, - { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, - { "label": "A", "x": 2, "y": 3.25 }, - { "label": "S", "x": 3.25, "y": 3.25 }, - { "label": "D", "x": 4.5, "y": 3.25 }, - { "label": "F", "x": 5.75, "y": 3.25 }, - { "label": "G", "x": 7, "y": 3.25 }, - { "label": "H", "x": 8.25, "y": 3.25 }, - { "label": "J", "x": 9.5, "y": 3.25 }, - { "label": "K", "x": 10.75, "y": 3.25 }, - { "label": "L", "x": 12, "y": 3.25 }, - { "label": ":", "x": 13.25, "y": 3.25 }, - { "label": "@", "x": 14.5, "y": 3.25 }, - { "label": "~", "x": 15.75, "y": 3.25 }, - { "label": "Shift", "x": 0, "y": 4.5, "w": 2.5 }, - { "label": "Z", "x": 2.75, "y": 4.5 }, - { "label": "X", "x": 4, "y": 4.5 }, - { "label": "C", "x": 5.25, "y": 4.5 }, - { "label": "V", "x": 6.5, "y": 4.5 }, - { "label": "B", "x": 7.75, "y": 4.5 }, - { "label": "N", "x": 9, "y": 4.5 }, - { "label": "M", "x": 10.25, "y": 4.5 }, - { "label": "<", "x": 11.5, "y": 4.5 }, - { "label": ">", "x": 12.75, "y": 4.5 }, - { "label": "?", "x": 14, "y": 4.5 }, - { "x": 15.25, "y": 4.5 }, - { "label": "Shift", "x": 16.5, "y": 4.5, "w": 1.75 }, - { "label": "Ctrl", "x": 0, "y": 5.75, "w": 1.25 }, - { "label": "Fn", "x": 1.5, "y": 5.75 }, - { "label": "Win", "x": 2.75, "y": 5.75 }, - { "label": "Alt", "x": 4, "y": 5.75 }, - { "x": 5.25, "y": 5.75, "w": 0.5 }, - { "x": 6, "y": 5.75, "w": 3.75 }, - { "x": 10, "y": 5.75, "w": 0.5 }, - { "x": 10.75, "y": 5.75, "w": 0.5 }, - { "label": "Alt", "x": 11.5, "y": 5.75 }, - { "label": "Ctrl", "x": 12.75, "y": 5.75 }, - { "label": "←", "x": 14, "y": 5.75, "w": 1.25 }, - { "label": "↑", "x": 15.5, "y": 5.75, "w": 1.25, "h": 0.5 }, - { "label": "→", "x": 17, "y": 5.75, "w": 1.25 }, - { "label": "↓", "x": 15.5, "y": 6.25, "w": 1.25, "h": 0.5 } - ] - }, - "LAYOUT_numpad": { - "layout": [ - { "label": "ESC", "x": 0, "y": 0, "h": 0.75 }, - { "label": "+ -", "x": 1.25, "y": 0, "h": 0.75 }, - { "label": "=", "x": 2.5, "y": 0, "h": 0.75 }, - { "label": "<--", "x": 3.75, "y": 0, "h": 0.75 }, - { "label": "Num Lock", "x": 0, "y": 1, "h": 1.25 }, - { "label": "-", "x": 1.25, "y": 1, "h": 1.25 }, - { "label": "*", "x": 2.5, "y": 1, "h": 1.25 }, - { "label": "-", "x": 3.75, "y": 1, "h": 1.25 }, - { "label": "7", "x": 0, "y": 2.5, "h": 1.25 }, - { "label": "8", "x": 1.25, "y": 2.5, "h": 1.25 }, - { "label": "9", "x": 2.5, "y": 2.5, "h": 1.25 }, - { "label": "+", "x": 3.75, "y": 2.5, "h": 2.75 }, - { "label": "4", "x": 0, "y": 4, "h": 1.25 }, - { "label": "5", "x": 1.25, "y": 4, "h": 1.25 }, - { "label": "6", "x": 2.5, "y": 4, "h": 1.25 }, - { "label": "1", "x": 0, "y": 5.5, "h": 1.25 }, - { "label": "2", "x": 1.25, "y": 5.5, "h": 1.25 }, - { "label": "3", "x": 2.5, "y": 5.5, "h": 1.25 }, - { "label": "Enter", "x": 3.75, "y": 5.5, "h": 2.75 }, - { "label": "0", "x": 0, "y": 7, "w": 2.25, "h": 1.25 }, - { "label": ".", "x": 2.5, "y": 7, "h": 1.25 } - ] - }, - "LAYOUT_gridpad": { - "layout": [ - { "x": 0, "y": 0, "h": 0.75 }, - { "x": 1.25, "y": 0, "h": 0.75 }, - { "x": 2.5, "y": 0, "h": 0.75 }, - { "x": 3.75, "y": 0, "h": 0.75 }, - - { "x": 0, "y": 1, "h": 1.25 }, - { "x": 1.25, "y": 1, "h": 1.25 }, - { "x": 2.5, "y": 1, "h": 1.25 }, - { "x": 3.75, "y": 1, "h": 1.25 }, - - { "x": 0, "y": 2.5, "h": 1.25 }, - { "x": 1.25, "y": 2.5, "h": 1.25 }, - { "x": 2.5, "y": 2.5, "h": 1.25 }, - { "x": 3.75, "y": 2.5, "h": 1.25 }, - - { "x": 0, "y": 4, "h": 1.25 }, - { "x": 1.25, "y": 4, "h": 1.25 }, - { "x": 2.5, "y": 4, "h": 1.25 }, - { "x": 3.75, "y": 4, "h": 1.25 }, - - { "x": 0, "y": 5.5, "h": 1.25 }, - { "x": 1.25, "y": 5.5, "h": 1.25 }, - { "x": 2.5, "y": 5.5, "h": 1.25 }, - { "x": 3.75, "y": 5.5, "h": 1.25 }, - - { "x": 0, "y": 7, "w": 2.25, "h": 1.25 }, - { "x": 1.25, "y": 7, "h": 1.25 }, - { "x": 2.5, "y": 7, "h": 1.25 }, - { "x": 3.75, "y": 7, "h": 1.25 } - ] - } - } -} diff --git a/keyboards/lotus/iso/config.h b/keyboards/lotus/iso/config.h new file mode 100644 index 0000000000..b3fa449889 --- /dev/null +++ b/keyboards/lotus/iso/config.h @@ -0,0 +1,5 @@ +// Copyright 2022 Framework Computer +// SPDX-License-Identifier: GPL-2.0-or-later + +#define MATRIX_COLS 16 +#define MATRIX_ROWS 8 diff --git a/keyboards/lotus/iso/info.json b/keyboards/lotus/iso/info.json new file mode 100644 index 0000000000..6bc8a27685 --- /dev/null +++ b/keyboards/lotus/iso/info.json @@ -0,0 +1,111 @@ +{ + "keyboard_name": "Lotus", + "manufacturer": "Framework Computer Inc", + "maintainer": "JohnAZoidberg", + "bootloader": "rp2040", + "features": { + "bootmagic": false, + "mousekey": true, + "extrakey": true, + "console": true, + "command": false, + "nkro": true, + "audio": false + }, + "debounce": 5, + "processor": "RP2040", + "url": "https://frame.work", + "usb": { + "device_version": "0.1.0", + "pid": "0x0013", + "vid": "0x32AC" + }, + "backlight": { + "pin": "GP25" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0, "w": 1.25, "h": 0.5 }, + { "label": "F1", "x": 1.5, "y": 0, "h": 0.5 }, + { "label": "F2", "x": 2.75, "y": 0, "h": 0.5 }, + { "label": "F3", "x": 4, "y": 0, "h": 0.5 }, + { "label": "F4", "x": 5.25, "y": 0, "h": 0.5 }, + { "label": "F5", "x": 6.5, "y": 0, "h": 0.5 }, + { "label": "F6", "x": 7.75, "y": 0, "h": 0.5 }, + { "label": "F7", "x": 9, "y": 0, "h": 0.5 }, + { "label": "F8", "x": 10.25, "y": 0, "h": 0.5 }, + { "label": "F9", "x": 11.5, "y": 0, "h": 0.5 }, + { "label": "F10", "x": 12.75, "y": 0, "h": 0.5 }, + { "label": "F11", "x": 14, "y": 0, "h": 0.5 }, + { "label": "F12", "x": 15.25, "y": 0, "h": 0.5 }, + { "label": "Delete", "x": 16.5, "y": 0, "w": 1.75, "h": 0.5 }, + { "label": "~", "x": 0, "y": 0.75 }, + { "label": "!", "x": 1.25, "y": 0.75 }, + { "label": "\"", "x": 2.5, "y": 0.75 }, + { "label": "", "x": 3.75, "y": 0.75 }, + { "label": "$", "x": 5, "y": 0.75 }, + { "label": "%", "x": 6.25, "y": 0.75 }, + { "label": "^", "x": 7.5, "y": 0.75 }, + { "label": "&", "x": 8.75, "y": 0.75 }, + { "label": "*", "x": 10, "y": 0.75 }, + { "label": "(", "x": 11.25, "y": 0.75 }, + { "label": ")", "x": 12.5, "y": 0.75 }, + { "label": "_", "x": 13.75, "y": 0.75 }, + { "label": "+", "x": 15, "y": 0.75 }, + { "label": "Backspace", "x": 16.25, "y": 0.75, "w": 2 }, + { "label": "Tab", "x": 0, "y": 2, "w": 1.5 }, + { "label": "Q", "x": 1.75, "y": 2 }, + { "label": "W", "x": 3, "y": 2 }, + { "label": "E", "x": 4.25, "y": 2 }, + { "label": "R", "x": 5.5, "y": 2 }, + { "label": "T", "x": 6.75, "y": 2 }, + { "label": "Y", "x": 8, "y": 2 }, + { "label": "U", "x": 9.25, "y": 2 }, + { "label": "I", "x": 10.5, "y": 2 }, + { "label": "O", "x": 11.75, "y": 2 }, + { "label": "P", "x": 13, "y": 2 }, + { "label": "{", "x": 14.25, "y": 2 }, + { "label": "}", "x": 15.5, "y": 2 }, + { "label": "Enter", "x": 17, "y": 2, "w": 1.25, "h": 2.25 }, + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 2, "y": 3.25 }, + { "label": "S", "x": 3.25, "y": 3.25 }, + { "label": "D", "x": 4.5, "y": 3.25 }, + { "label": "F", "x": 5.75, "y": 3.25 }, + { "label": "G", "x": 7, "y": 3.25 }, + { "label": "H", "x": 8.25, "y": 3.25 }, + { "label": "J", "x": 9.5, "y": 3.25 }, + { "label": "K", "x": 10.75, "y": 3.25 }, + { "label": "L", "x": 12, "y": 3.25 }, + { "label": ":", "x": 13.25, "y": 3.25 }, + { "label": "@", "x": 14.5, "y": 3.25 }, + { "label": "~", "x": 15.75, "y": 3.25 }, + { "label": "Shift", "x": 0, "y": 4.5, "w": 1.25 }, + { "label": "|", "x": 1.5, "y": 4.5 }, + { "label": "Z", "x": 2.75, "y": 4.5 }, + { "label": "X", "x": 4, "y": 4.5 }, + { "label": "C", "x": 5.25, "y": 4.5 }, + { "label": "V", "x": 6.5, "y": 4.5 }, + { "label": "B", "x": 7.75, "y": 4.5 }, + { "label": "N", "x": 9, "y": 4.5 }, + { "label": "M", "x": 10.25, "y": 4.5 }, + { "label": "<", "x": 11.5, "y": 4.5 }, + { "label": ">", "x": 12.75, "y": 4.5 }, + { "label": "?", "x": 14, "y": 4.5 }, + { "label": "Shift", "x": 15.25, "y": 4.5, "w": 3 }, + { "label": "Ctrl", "x": 0, "y": 5.75, "w": 1.25 }, + { "label": "Fn", "x": 1.5, "y": 5.75 }, + { "label": "Win", "x": 2.75, "y": 5.75 }, + { "label": "Alt", "x": 4, "y": 5.75 }, + { "x": 5.25, "y": 5.75, "w": 6 }, + { "label": "Alt", "x": 11.5, "y": 5.75 }, + { "label": "Ctrl", "x": 12.75, "y": 5.75 }, + { "label": "←", "x": 14, "y": 5.75, "w": 1.25 }, + { "label": "↑", "x": 15.5, "y": 5.75, "w": 1.25, "h": 0.5 }, + { "label": "→", "x": 17, "y": 5.75, "w": 1.25 }, + { "label": "↓", "x": 15.5, "y": 6.25, "w": 1.25, "h": 0.5 } + ] + } + } +} diff --git a/keyboards/lotus/iso/iso.h b/keyboards/lotus/iso/iso.h new file mode 100644 index 0000000000..d270cc2997 --- /dev/null +++ b/keyboards/lotus/iso/iso.h @@ -0,0 +1,22 @@ +// Copyright 2022 Framework Computer +// SPDX-License-Identifier: GPL-2.0-or-later + +// K29/K42 swapped in ANSI/ISO +#define LAYOUT( \ + K110, K112, K113, K114, K115, K116, K117, K118, K119, K120, K121, K122, K126, K76, \ + K1, K2, K3, K4, K5, K6, K7, K8, K9, K10, K11, K12, K13, K15, \ + K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, K26, K27, K28, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K40, K41, K42, K43, \ + K44, K45, K46, K47, K48, K49, K50, K51, K52, K53, K54, K55, K57, \ + K58, K59, K127, K60, K61, K62, K64, K79, K83, K84, K89 \ +) \ +{ \ + { K48, K76, K17, K62, KC_NO, K47, K49, K52, K54, K57, K53, KC_NO, K64, K55, K41, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, K60, K61, K46, K50, K51, K84, K44, KC_NO, KC_NO, K58, K83, K43, K119 }, \ + { KC_NO, KC_NO, K59, KC_NO, K19, K113, K35, K36, K42, KC_NO, K118, KC_NO, KC_NO, K12, KC_NO, K89 }, \ + { KC_NO, K127, K16, KC_NO, K115, K112, K21, K22, K25, KC_NO, K117, K120, KC_NO, KC_NO, KC_NO, K126 }, \ + { KC_NO, KC_NO, K1, KC_NO, K30, K32, K6, K7, K121, KC_NO, K116, KC_NO, K11, K13, KC_NO }, \ + { KC_NO, KC_NO, K2, KC_NO, K4, K3, K5, K8, K10, KC_NO, K9, K45, KC_NO, K26, K15, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, K114, K18, K20, K23, K122, KC_NO, K24, K79, KC_NO, K27, K28, KC_NO }, \ + { KC_NO, KC_NO, K31, KC_NO, KC_NO, K110, K34, K37, K39, KC_NO, K38, KC_NO, KC_NO, K40, K33, KC_NO }, \ +} diff --git a/keyboards/lotus/keymaps/79_iso/keymap.c b/keyboards/lotus/iso/keymaps/default/keymap.c similarity index 98% rename from keyboards/lotus/keymaps/79_iso/keymap.c rename to keyboards/lotus/iso/keymaps/default/keymap.c index b45f988070..824bdc87cd 100644 --- a/keyboards/lotus/keymaps/79_iso/keymap.c +++ b/keyboards/lotus/iso/keymaps/default/keymap.c @@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └────┴───┴───┴───┴───────────────────┴───┴───┴────┴───┴────┘ * 79 total */ - [0] = LAYOUT_79_iso( + [0] = LAYOUT( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, @@ -49,9 +49,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └────┴───┴───┴───┴───────────────────┴───┴───┴────┴───┴────┘ * 78 total */ - // TODO: Screen toggle, airplane mode - // TODO: Other unlabeled keys - [1] = LAYOUT_79_iso( + // TODO: Airplane mode + [1] = LAYOUT( TG(1), KC_KB_MUTE, KC_KB_VOLUME_DOWN, KC_KB_VOLUME_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_BRID, KC_BRIU, KC_SCRN, KC_TRNS, KC_PSCR, KC_MSEL, KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_TRNS, KC_TRNS, diff --git a/keyboards/lotus/keymaps/79_iso/rules.mk b/keyboards/lotus/iso/rules.mk similarity index 100% rename from keyboards/lotus/keymaps/79_iso/rules.mk rename to keyboards/lotus/iso/rules.mk diff --git a/keyboards/lotus/jis/config.h b/keyboards/lotus/jis/config.h new file mode 100644 index 0000000000..b3fa449889 --- /dev/null +++ b/keyboards/lotus/jis/config.h @@ -0,0 +1,5 @@ +// Copyright 2022 Framework Computer +// SPDX-License-Identifier: GPL-2.0-or-later + +#define MATRIX_COLS 16 +#define MATRIX_ROWS 8 diff --git a/keyboards/lotus/jis/info.json b/keyboards/lotus/jis/info.json new file mode 100644 index 0000000000..f87421b846 --- /dev/null +++ b/keyboards/lotus/jis/info.json @@ -0,0 +1,115 @@ +{ + "keyboard_name": "Lotus Keyboard", + "manufacturer": "Framework Computer Inc", + "maintainer": "JohnAZoidberg", + "bootloader": "rp2040", + "features": { + "bootmagic": false, + "mousekey": true, + "extrakey": true, + "console": true, + "command": false, + "nkro": true, + "audio": false + }, + "debounce": 5, + "processor": "RP2040", + "url": "https://frame.work", + "usb": { + "device_version": "0.1.0", + "pid": "0x0013", + "vid": "0x32AC" + }, + "backlight": { + "pin": "GP25" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0, "w": 1.25, "h": 0.5 }, + { "label": "F1", "x": 1.5, "y": 0, "h": 0.5 }, + { "label": "F2", "x": 2.75, "y": 0, "h": 0.5 }, + { "label": "F3", "x": 4, "y": 0, "h": 0.5 }, + { "label": "F4", "x": 5.25, "y": 0, "h": 0.5 }, + { "label": "F5", "x": 6.5, "y": 0, "h": 0.5 }, + { "label": "F6", "x": 7.75, "y": 0, "h": 0.5 }, + { "label": "F7", "x": 9, "y": 0, "h": 0.5 }, + { "label": "F8", "x": 10.25, "y": 0, "h": 0.5 }, + { "label": "F9", "x": 11.5, "y": 0, "h": 0.5 }, + { "label": "F10", "x": 12.75, "y": 0, "h": 0.5 }, + { "label": "F11", "x": 14, "y": 0, "h": 0.5 }, + { "label": "F12", "x": 15.25, "y": 0, "h": 0.5 }, + { "label": "Delete", "x": 16.5, "y": 0, "w": 1.75, "h": 0.5 }, + { "label": "~", "x": 0, "y": 0.75 }, + { "label": "!", "x": 1.25, "y": 0.75 }, + { "label": "\"", "x": 2.5, "y": 0.75 }, + { "label": "", "x": 3.75, "y": 0.75 }, + { "label": "$", "x": 5, "y": 0.75 }, + { "label": "%", "x": 6.25, "y": 0.75 }, + { "label": "^", "x": 7.5, "y": 0.75 }, + { "label": "&", "x": 8.75, "y": 0.75 }, + { "label": "*", "x": 10, "y": 0.75 }, + { "label": "(", "x": 11.25, "y": 0.75 }, + { "label": ")", "x": 12.5, "y": 0.75 }, + { "label": "_", "x": 13.75, "y": 0.75 }, + { "label": "+", "x": 15, "y": 0.75 }, + { "x": 16.25, "y": 0.75, "w": 0.5 }, + { "label": "Backsp", "x": 17, "y": 0.75, "w": 1.25 }, + { "label": "Tab", "x": 0, "y": 2, "w": 1.5 }, + { "label": "Q", "x": 1.75, "y": 2 }, + { "label": "W", "x": 3, "y": 2 }, + { "label": "E", "x": 4.25, "y": 2 }, + { "label": "R", "x": 5.5, "y": 2 }, + { "label": "T", "x": 6.75, "y": 2 }, + { "label": "Y", "x": 8, "y": 2 }, + { "label": "U", "x": 9.25, "y": 2 }, + { "label": "I", "x": 10.5, "y": 2 }, + { "label": "O", "x": 11.75, "y": 2 }, + { "label": "P", "x": 13, "y": 2 }, + { "label": "{", "x": 14.25, "y": 2 }, + { "label": "}", "x": 15.5, "y": 2 }, + { "label": "Enter", "x": 17, "y": 2, "w": 1.25, "h": 2.25 }, + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 2, "y": 3.25 }, + { "label": "S", "x": 3.25, "y": 3.25 }, + { "label": "D", "x": 4.5, "y": 3.25 }, + { "label": "F", "x": 5.75, "y": 3.25 }, + { "label": "G", "x": 7, "y": 3.25 }, + { "label": "H", "x": 8.25, "y": 3.25 }, + { "label": "J", "x": 9.5, "y": 3.25 }, + { "label": "K", "x": 10.75, "y": 3.25 }, + { "label": "L", "x": 12, "y": 3.25 }, + { "label": ":", "x": 13.25, "y": 3.25 }, + { "label": "@", "x": 14.5, "y": 3.25 }, + { "label": "~", "x": 15.75, "y": 3.25 }, + { "label": "Shift", "x": 0, "y": 4.5, "w": 2.5 }, + { "label": "Z", "x": 2.75, "y": 4.5 }, + { "label": "X", "x": 4, "y": 4.5 }, + { "label": "C", "x": 5.25, "y": 4.5 }, + { "label": "V", "x": 6.5, "y": 4.5 }, + { "label": "B", "x": 7.75, "y": 4.5 }, + { "label": "N", "x": 9, "y": 4.5 }, + { "label": "M", "x": 10.25, "y": 4.5 }, + { "label": "<", "x": 11.5, "y": 4.5 }, + { "label": ">", "x": 12.75, "y": 4.5 }, + { "label": "?", "x": 14, "y": 4.5 }, + { "x": 15.25, "y": 4.5 }, + { "label": "Shift", "x": 16.5, "y": 4.5, "w": 1.75 }, + { "label": "Ctrl", "x": 0, "y": 5.75, "w": 1.25 }, + { "label": "Fn", "x": 1.5, "y": 5.75 }, + { "label": "Win", "x": 2.75, "y": 5.75 }, + { "label": "Alt", "x": 4, "y": 5.75 }, + { "x": 5.25, "y": 5.75, "w": 0.5 }, + { "x": 6, "y": 5.75, "w": 3.75 }, + { "x": 10, "y": 5.75, "w": 0.5 }, + { "x": 10.75, "y": 5.75, "w": 0.5 }, + { "label": "Alt", "x": 11.5, "y": 5.75 }, + { "label": "Ctrl", "x": 12.75, "y": 5.75 }, + { "label": "←", "x": 14, "y": 5.75, "w": 1.25 }, + { "label": "↑", "x": 15.5, "y": 5.75, "w": 1.25, "h": 0.5 }, + { "label": "→", "x": 17, "y": 5.75, "w": 1.25 }, + { "label": "↓", "x": 15.5, "y": 6.25, "w": 1.25, "h": 0.5 } + ] + } + } +} diff --git a/keyboards/lotus/jis/jis.h b/keyboards/lotus/jis/jis.h new file mode 100644 index 0000000000..4a73cc23c8 --- /dev/null +++ b/keyboards/lotus/jis/jis.h @@ -0,0 +1,22 @@ +// Copyright 2022 Framework Computer +// SPDX-License-Identifier: GPL-2.0-or-later + +// JIS is based off ANSI with a few extra keys +#define LAYOUT( \ + K110, K112, K113, K114, K115, K116, K117, K118, K119, K120, K121, K122, K126, K76, \ + K1, K2, K3, K4, K5, K6, K7, K8, K9, K10, K11, K12, K13, K14, K15,\ + K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, K26, K27, K28, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K40, K41, K42, K43, \ + K44, K46, K47, K48, K49, K50, K51, K52, K53, K54, K55, K56, K57, \ + K58, K59, K127, K60, K131, K61, K132, K133, K62, K64, K79, K83, K84, K89 \ +) \ +{ \ + { K48, K76, K17, K62, KC_NO, K47, K49, K52, K54, K57, K53, K133, K64, K55, K41, K14 }, \ + { KC_NO, KC_NO, KC_NO, K60, K61, K46, K50, K51, K84, K44, KC_NO, K132, K58, K83, K43, K119 }, \ + { KC_NO, KC_NO, K59, KC_NO, K19, K113, K35, K36, K42, KC_NO, K118, KC_NO, KC_NO, K12, KC_NO, K89 }, \ + { KC_NO, K127, K16, KC_NO, K115, K112, K21, K22, K25, KC_NO, K117, K120, KC_NO, KC_NO, KC_NO, K126 }, \ + { KC_NO, KC_NO, K1, KC_NO, K30, K32, K6, K7, K121, KC_NO, K116, K56, KC_NO, K11, K13, KC_NO,}, \ + { KC_NO, KC_NO, K2, KC_NO, K4, K3, K5, K8, K10, KC_NO, K9, KC_NO, KC_NO, K26, K15, KC_NO,}, \ + { KC_NO, KC_NO, K131, KC_NO, K114, K18, K20, K23, K122, KC_NO, K24, K79, KC_NO, K27, K28, KC_NO,}, \ + { KC_NO, KC_NO, K31, KC_NO, KC_NO, K110, K34, K37, K39, KC_NO, K38, KC_NO, KC_NO, K40, K33, KC_NO,} \ +} diff --git a/keyboards/lotus/keymaps/83_jis/keymap.c b/keyboards/lotus/jis/keymaps/default/keymap.c similarity index 98% rename from keyboards/lotus/keymaps/83_jis/keymap.c rename to keyboards/lotus/jis/keymaps/default/keymap.c index 2790da2563..a09efb7382 100644 --- a/keyboards/lotus/keymaps/83_jis/keymap.c +++ b/keyboards/lotus/jis/keymaps/default/keymap.c @@ -23,7 +23,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └────┴───┴───┴───┴──┴──────────┴──┴──┴───┴───┴────┴───┴────┘ * 83 total */ - [0] = LAYOUT_83_jis( + [0] = LAYOUT( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, JP_ZKHK, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, JP_CIRC, JP_YEN, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_AT, KC_LBRC, @@ -50,9 +50,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * └────┴───┴───┴───┴──┴──────────┴──┴──┴───┴───┴────┴───┴────┘ * 83 total */ - // TODO: Screen toggle, airplane mode - // TODO: Other unlabeled keys - [1] = LAYOUT_83_jis( + // TODO: Airplane mode + [1] = LAYOUT( TG(1), KC_KB_MUTE, KC_KB_VOLUME_DOWN, KC_KB_VOLUME_UP, KC_MPRV, KC_MPLY, KC_MNXT, KC_BRID, KC_BRIU, KC_SCRN, KC_TRNS, KC_PSCR, KC_MSEL, KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, KC_TRNS, KC_TRNS, diff --git a/keyboards/lotus/keymaps/83_jis/rules.mk b/keyboards/lotus/jis/rules.mk similarity index 100% rename from keyboards/lotus/keymaps/83_jis/rules.mk rename to keyboards/lotus/jis/rules.mk diff --git a/keyboards/lotus/keymaps/gridpad/config.h b/keyboards/lotus/keymaps/gridpad/config.h deleted file mode 100644 index 234792f3b1..0000000000 --- a/keyboards/lotus/keymaps/gridpad/config.h +++ /dev/null @@ -1,3 +0,0 @@ -#define DRIVER_COUNT 1 -#define DRIVER_ADDR_1 0b0100000 -#define RGB_MATRIX_LED_COUNT 24 diff --git a/keyboards/lotus/keymaps/gridpad/rules.mk b/keyboards/lotus/keymaps/gridpad/rules.mk deleted file mode 100644 index a98954a13d..0000000000 --- a/keyboards/lotus/keymaps/gridpad/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = IS31FL3743A diff --git a/keyboards/lotus/kle/via_design.json b/keyboards/lotus/kle/via_design.json index 0796828181..8e8a38b4ef 100644 --- a/keyboards/lotus/kle/via_design.json +++ b/keyboards/lotus/kle/via_design.json @@ -3,7 +3,6 @@ "vendorId": "0x32AC", "productId": "0x0012", "matrix": {"rows": 8, "cols": 16}, - "menus": ["qmk_rbg_matrix"], "layouts": { "keymap": [ [ diff --git a/keyboards/lotus/lotus.c b/keyboards/lotus/lotus.c index 662427f55f..de197d4f94 100644 --- a/keyboards/lotus/lotus.c +++ b/keyboards/lotus/lotus.c @@ -1,6 +1,7 @@ // Copyright 2022 Framework Computer // SPDX-License-Identifier: GPL-2.0-or-later +#include "quantum.h" #include "lotus.h" #include "raw_hid.h" diff --git a/keyboards/lotus/lotus.h b/keyboards/lotus/lotus.h index a4ea10b812..ae4275e191 100644 --- a/keyboards/lotus/lotus.h +++ b/keyboards/lotus/lotus.h @@ -5,98 +5,19 @@ #include "quantum.h" +#ifdef KEYBOARD_lotus_ansi + #include "ansi.h" +#elif KEYBOARD_lotus_iso + #include "iso.h" +#elif KEYBOARD_lotus_jis + #include "jis.h" +#elif KEYBOARD_lotus_numpad + #include "numpad.h" +#elif KEYBOARD_lotus_gridpad + #include "gridpad.h" +#endif + enum lotus_keycodes { // Custom keycode to change screen modes (e.g. enable external screen) KC_SCRN = SAFE_RANGE, }; - -// The layouts are all mostly the same, except for the extra keys that the different layouts have -#define LAYOUT_78_ansi( \ - K110, K112, K113, K114, K115, K116, K117, K118, K119, K120, K121, K122, K126, K76, \ - K1, K2, K3, K4, K5, K6, K7, K8, K9, K10, K11, K12, K13, K15, \ - K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K40, K41, K43, \ - K44, K46, K47, K48, K49, K50, K51, K52, K53, K54, K55, K57, \ - K58, K59, K127, K60, K61, K62, K64, K79, K83, K84, K89 \ -) \ -{ \ - { K48, K76, K17, K62, KC_NO, K47, K49, K52, K54, K57, K53, KC_NO, K64, K55, K41, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, K60, K61, K46, K50, K51, K84, K44, KC_NO, KC_NO, K58, K83, K43, K119 }, \ - { KC_NO, KC_NO, K59, KC_NO, K19, K113, K35, K36, K29, KC_NO, K118, KC_NO, KC_NO, K12, KC_NO, K89 }, \ - { KC_NO, K127, K16, KC_NO, K115, K112, K21, K22, K25, KC_NO, K117, K120, KC_NO, KC_NO, KC_NO, K126 }, \ - { KC_NO, KC_NO, K1, KC_NO, K30, K32, K6, K7, K121, KC_NO, K116, KC_NO, KC_NO, K11, K13, KC_NO }, \ - { KC_NO, KC_NO, K2, KC_NO, K4, K3, K5, K8, K10, KC_NO, K9, KC_NO, KC_NO, K26, K15, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO, K114, K18, K20, K23, K122, KC_NO, K24, K79, KC_NO, K27, K28, KC_NO }, \ - { KC_NO, KC_NO, K31, KC_NO, KC_NO, K110, K34, K37, K39, KC_NO, K38, KC_NO, KC_NO, K40, K33, KC_NO } \ -} - -// K29/K42 swapped in ANSI/ISO -#define LAYOUT_79_iso( \ - K110, K112, K113, K114, K115, K116, K117, K118, K119, K120, K121, K122, K126, K76, \ - K1, K2, K3, K4, K5, K6, K7, K8, K9, K10, K11, K12, K13, K15, \ - K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, K26, K27, K28, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K40, K41, K42, K43, \ - K44, K45, K46, K47, K48, K49, K50, K51, K52, K53, K54, K55, K57, \ - K58, K59, K127, K60, K61, K62, K64, K79, K83, K84, K89 \ -) \ -{ \ - { K48, K76, K17, K62, KC_NO, K47, K49, K52, K54, K57, K53, KC_NO, K64, K55, K41, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, K60, K61, K46, K50, K51, K84, K44, KC_NO, KC_NO, K58, K83, K43, K119 }, \ - { KC_NO, KC_NO, K59, KC_NO, K19, K113, K35, K36, K42, KC_NO, K118, KC_NO, KC_NO, K12, KC_NO, K89 }, \ - { KC_NO, K127, K16, KC_NO, K115, K112, K21, K22, K25, KC_NO, K117, K120, KC_NO, KC_NO, KC_NO, K126 }, \ - { KC_NO, KC_NO, K1, KC_NO, K30, K32, K6, K7, K121, KC_NO, K116, KC_NO, K11, K13, KC_NO }, \ - { KC_NO, KC_NO, K2, KC_NO, K4, K3, K5, K8, K10, KC_NO, K9, K45, KC_NO, K26, K15, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO, K114, K18, K20, K23, K122, KC_NO, K24, K79, KC_NO, K27, K28, KC_NO }, \ - { KC_NO, KC_NO, K31, KC_NO, KC_NO, K110, K34, K37, K39, KC_NO, K38, KC_NO, KC_NO, K40, K33, KC_NO }, \ -} - -// JIS is based off ANSI with a few extra keys -#define LAYOUT_83_jis( \ - K110, K112, K113, K114, K115, K116, K117, K118, K119, K120, K121, K122, K126, K76, \ - K1, K2, K3, K4, K5, K6, K7, K8, K9, K10, K11, K12, K13, K14, K15,\ - K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, K26, K27, K28, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K40, K41, K42, K43, \ - K44, K46, K47, K48, K49, K50, K51, K52, K53, K54, K55, K56, K57, \ - K58, K59, K127, K60, K131, K61, K132, K133, K62, K64, K79, K83, K84, K89 \ -) \ -{ \ - { K48, K76, K17, K62, KC_NO, K47, K49, K52, K54, K57, K53, K133, K64, K55, K41, K14 }, \ - { KC_NO, KC_NO, KC_NO, K60, K61, K46, K50, K51, K84, K44, KC_NO, K132, K58, K83, K43, K119 }, \ - { KC_NO, KC_NO, K59, KC_NO, K19, K113, K35, K36, K42, KC_NO, K118, KC_NO, KC_NO, K12, KC_NO, K89 }, \ - { KC_NO, K127, K16, KC_NO, K115, K112, K21, K22, K25, KC_NO, K117, K120, KC_NO, KC_NO, KC_NO, K126 }, \ - { KC_NO, KC_NO, K1, KC_NO, K30, K32, K6, K7, K121, KC_NO, K116, K56, KC_NO, K11, K13, KC_NO,}, \ - { KC_NO, KC_NO, K2, KC_NO, K4, K3, K5, K8, K10, KC_NO, K9, KC_NO, KC_NO, K26, K15, KC_NO,}, \ - { KC_NO, KC_NO, K131, KC_NO, K114, K18, K20, K23, K122, KC_NO, K24, K79, KC_NO, K27, K28, KC_NO,}, \ - { KC_NO, KC_NO, K31, KC_NO, KC_NO, K110, K34, K37, K39, KC_NO, K38, KC_NO, KC_NO, K40, K33, KC_NO,} \ -} - -// Same as gridpad with a few keys removed -#define LAYOUT_numpad( \ - H1, H2, H3, H4, \ - K90, K95, K100, K105, \ - K91, K96, K101, \ - K92, K97, K102, K106, \ - K93, K98, K103, \ - K99, K104, K108 \ -) \ -{ \ - { K90, K91, K92, K93, K95, K96, K97, K98 }, \ - { K99, K100, K101, K102, K103, K104, K105, K106 }, \ - { K108, H1, H2, KC_NO, H4, KC_NO, KC_NO, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO, H3, KC_NO, KC_NO, KC_NO }, \ -} - -#define LAYOUT_gridpad( \ - H1, H2, H3, H4, \ - K90, K95, K100, K105, \ - K91, K96, K101, K107, \ - K92, K97, K102, K106, \ - K93, K98, K103, K109, \ - K99, K110, K104, K108 \ -) \ -{ \ - { K90, K91, K92, K93, K95, K96, K97, K98 }, \ - { K99, K100, K101, K102, K103, K104, K105, K106 }, \ - { K108, H1, H2, KC_NO, H4, K107, K109, K110 }, \ - { KC_NO, KC_NO, KC_NO, KC_NO, H3, KC_NO, KC_NO, KC_NO }, \ -} diff --git a/keyboards/lotus/matrix.c b/keyboards/lotus/matrix.c index 2fe33409d7..2b1a9c3cec 100644 --- a/keyboards/lotus/matrix.c +++ b/keyboards/lotus/matrix.c @@ -201,11 +201,11 @@ static void adc_mux_init(void) { * Overriding behavior of matrix_init from quantum/matrix.c */ void matrix_init_custom(void) { - printf("Initializing Lotus\n"); + print("Initializing Lotus\n"); adc_mux_init(); // Make sure GPIO is high-impedance, no pullups etc adc_gpio_init(26); // Select ADC input 0 (GPIO26) adc_select_input(0); -} \ No newline at end of file +} diff --git a/keyboards/lotus/numpad/config.h b/keyboards/lotus/numpad/config.h new file mode 100644 index 0000000000..e01395b5e4 --- /dev/null +++ b/keyboards/lotus/numpad/config.h @@ -0,0 +1,5 @@ +// Copyright 2022 Framework Computer +// SPDX-License-Identifier: GPL-2.0-or-later + +#define MATRIX_COLS 8 +#define MATRIX_ROWS 4 diff --git a/keyboards/lotus/numpad/info.json b/keyboards/lotus/numpad/info.json new file mode 100644 index 0000000000..7c62e0cac5 --- /dev/null +++ b/keyboards/lotus/numpad/info.json @@ -0,0 +1,53 @@ +{ + "keyboard_name": "Lotus Numpad", + "manufacturer": "Framework Computer Inc", + "maintainer": "JohnAZoidberg", + "bootloader": "rp2040", + "features": { + "bootmagic": false, + "mousekey": true, + "extrakey": true, + "console": true, + "command": false, + "nkro": true, + "audio": false + }, + "debounce": 5, + "processor": "RP2040", + "url": "https://frame.work", + "usb": { + "device_version": "0.1.0", + "pid": "0x0013", + "vid": "0x32AC" + }, + "backlight": { + "pin": "GP25" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "ESC", "x": 0, "y": 0, "h": 0.75 }, + { "label": "+ -", "x": 1.25, "y": 0, "h": 0.75 }, + { "label": "=", "x": 2.5, "y": 0, "h": 0.75 }, + { "label": "<--", "x": 3.75, "y": 0, "h": 0.75 }, + { "label": "Num Lock", "x": 0, "y": 1, "h": 1.25 }, + { "label": "-", "x": 1.25, "y": 1, "h": 1.25 }, + { "label": "*", "x": 2.5, "y": 1, "h": 1.25 }, + { "label": "-", "x": 3.75, "y": 1, "h": 1.25 }, + { "label": "7", "x": 0, "y": 2.5, "h": 1.25 }, + { "label": "8", "x": 1.25, "y": 2.5, "h": 1.25 }, + { "label": "9", "x": 2.5, "y": 2.5, "h": 1.25 }, + { "label": "+", "x": 3.75, "y": 2.5, "h": 2.75 }, + { "label": "4", "x": 0, "y": 4, "h": 1.25 }, + { "label": "5", "x": 1.25, "y": 4, "h": 1.25 }, + { "label": "6", "x": 2.5, "y": 4, "h": 1.25 }, + { "label": "1", "x": 0, "y": 5.5, "h": 1.25 }, + { "label": "2", "x": 1.25, "y": 5.5, "h": 1.25 }, + { "label": "3", "x": 2.5, "y": 5.5, "h": 1.25 }, + { "label": "Enter", "x": 3.75, "y": 5.5, "h": 2.75 }, + { "label": "0", "x": 0, "y": 7, "w": 2.25, "h": 1.25 }, + { "label": ".", "x": 2.5, "y": 7, "h": 1.25 } + ] + }, + } +} diff --git a/keyboards/lotus/keymaps/numpad/keymap.c b/keyboards/lotus/numpad/keymaps/default/keymap.c similarity index 90% rename from keyboards/lotus/keymaps/numpad/keymap.c rename to keyboards/lotus/numpad/keymaps/default/keymap.c index 8c01431182..a432389398 100644 --- a/keyboards/lotus/keymaps/numpad/keymap.c +++ b/keyboards/lotus/numpad/keymaps/default/keymap.c @@ -3,9 +3,7 @@ #include QMK_KEYBOARD_H -#define NUMPAD_ROWS 4 -#define NUMPAD_COLS 8 -const uint16_t PROGMEM keymaps[][NUMPAD_ROWS][NUMPAD_COLS] = { +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* * ┌────┬────┬────┬────┐ * 4 keys │Esc │Calc│ = │ <- │ @@ -22,7 +20,7 @@ const uint16_t PROGMEM keymaps[][NUMPAD_ROWS][NUMPAD_COLS] = { * └─────────┴────┴────┴ * 21 total */ - [0] = LAYOUT_numpad( + [0] = LAYOUT( KC_ESC, KC_CALC, KC_PEQL, KC_DEL, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_P7, KC_P8, KC_P9, diff --git a/keyboards/lotus/numpad/numpad.h b/keyboards/lotus/numpad/numpad.h new file mode 100644 index 0000000000..f762c5467a --- /dev/null +++ b/keyboards/lotus/numpad/numpad.h @@ -0,0 +1,18 @@ +// Copyright 2022 Framework Computer +// SPDX-License-Identifier: GPL-2.0-or-later + +// Same as gridpad with a few keys removed +#define LAYOUT( \ + H1, H2, H3, H4, \ + K90, K95, K100, K105, \ + K91, K96, K101, \ + K92, K97, K102, K106, \ + K93, K98, K103, \ + K99, K104, K108 \ +) \ +{ \ + { K90, K91, K92, K93, K95, K96, K97, K98 }, \ + { K99, K100, K101, K102, K103, K104, K105, K106 }, \ + { K108, H1, H2, KC_NO, H4, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, H3, KC_NO, KC_NO, KC_NO }, \ +} diff --git a/keyboards/lotus/keymaps/numpad/rules.mk b/keyboards/lotus/numpad/rules.mk similarity index 100% rename from keyboards/lotus/keymaps/numpad/rules.mk rename to keyboards/lotus/numpad/rules.mk diff --git a/keyboards/lotus/rules.mk b/keyboards/lotus/rules.mk index 906fd81daa..5914315e9a 100644 --- a/keyboards/lotus/rules.mk +++ b/keyboards/lotus/rules.mk @@ -1,4 +1,5 @@ VIA_ENABLE = yes +RAW_ENABLE = no # Enabled in info.json # EXTRAKEY_ENABLE = yes # Audio control and System control @@ -13,5 +14,4 @@ BACKLIGHT_DRIVER = pwm CUSTOM_MATRIX = lite SRC += matrix.c -# Debugging (enabled in info.json) -#CONSOLE_ENABLE = yes +DEFAULT_FOLDER = lotus/ansi