Skip to content

Commit 8098783

Browse files
committed
lotus: Split layouts into separate keyboards
VIA needs separate PIDs for the layouts. Signed-off-by: Daniel Schaefer <[email protected]>
1 parent 6dcfb42 commit 8098783

File tree

37 files changed

+694
-522
lines changed

37 files changed

+694
-522
lines changed

.github/workflows/lotus.yml

+11-6
Original file line numberDiff line numberDiff line change
@@ -22,22 +22,27 @@ jobs:
2222
run: pip3 install -r requirements-dev.txt
2323

2424
- name: Lint lotus
25-
run: qmk lint -kb lotus -km 78_ansi -km 79_iso -km 83_jis
25+
run: |
26+
qmk lint -kb lotus/ansi -km default
27+
qmk lint -kb lotus/iso -km default
28+
qmk lint -kb lotus/jis -km default
29+
qmk lint -kb lotus/numpad -km default
30+
qmk lint -kb lotus/gridpad -km default
2631
2732
- name: Build Lotus ANSI variant
28-
run: qmk compile -kb lotus -km 78_ansi
33+
run: qmk compile -kb lotus/ansi -km default
2934

3035
- name: Build Lotus ISO variant
31-
run: qmk compile -kb lotus -km 79_iso
36+
run: qmk compile -kb lotus/iso -km default
3237

3338
- name: Build Lotus JIS variant
34-
run: qmk compile -kb lotus -km 83_jis
39+
run: qmk compile -kb lotus/jis -km default
3540

3641
- name: Build Lotus Numpad
37-
run: qmk compile -kb lotus -km numpad
42+
run: qmk compile -kb lotus/numpad -km default
3843

3944
- name: Build Lotus Gridpad
40-
run: qmk compile -kb lotus -km gridpad
45+
run: qmk compile -kb lotus/gridpad -km default
4146

4247
# tests:
4348
# runs-on: ubuntu-latest

keyboards/lotus/keymaps/78_ansi/keymap.c keyboards/lotus/ansi/ansi.c

-58
Original file line numberDiff line numberDiff line change
@@ -3,64 +3,6 @@
33

44
#include QMK_KEYBOARD_H
55

6-
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
7-
/*
8-
* ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────┐
9-
* 14 keys │Esc │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ Del│
10-
* ├───┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤
11-
* 14 keys │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Backsp│
12-
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤
13-
* 14 keys │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │
14-
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴────┤
15-
* 13 keys │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │
16-
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───────┤
17-
* 12 keys │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │
18-
* ├────┬───┼───┼───┼───┴───┴───┴───┴───┼───┼───┼───┴┬───┬────┤
19-
* │ │ │ │ │ │ │ │ │↑ │ │
20-
* 11 keys │Ctrl│FN │GUI│Alt│ │Alt│Ctl│ ← ├───┤ → │
21-
* │ │ │ │ │ │ │ │ │ ↓│ │
22-
* └────┴───┴───┴───┴───────────────────┴───┴───┴────┴───┴────┘
23-
* 78 total
24-
*/
25-
[0] = LAYOUT_78_ansi(
26-
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,
27-
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,
28-
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,
29-
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,
30-
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
31-
KC_LCTL, MO(1), KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT
32-
),
33-
/*
34-
* Function layer
35-
* ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────┐
36-
* 14 keys │FN lk│Mut│vDn│vUp│Prv│Ply│Nxt│bDn│bUp│Scn│Air│Prt│App│Ins │
37-
* ├───┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤
38-
* 14 keys │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
39-
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤
40-
* 14 keys │ │ │ │ │ │ │ │ │ │ │Pau│ │ │ │
41-
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴────┤
42-
* 13 keys │ │ │SRq│ │ │ │ │ │ScL│ │ │ │ │
43-
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───────┤
44-
* 12 keys │ │ │ │ │ │Brk│ │ │ │ │ │ │
45-
* ├────┬───┼───┼───┼───┴───┴───┴───┴───┼───┼───┼───┴┬───┬────┤
46-
* │ │ │ │ │ │ │ │ │PgU│ │
47-
* 11 keys │ │ │ │ │ Toggle Backlight │ │ │Home├───┤End │
48-
* │ │ │ │ │ │ │ │ │PgD│ │
49-
* └────┴───┴───┴───┴───────────────────┴───┴───┴────┴───┴────┘
50-
* 78 total
51-
*/
52-
// TODO: Screen toggle, airplane mode
53-
// TODO: Other unlabeled keys
54-
[1] = LAYOUT_78_ansi(
55-
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,
56-
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,
57-
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,
58-
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,
59-
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BRK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
60-
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_TOGG, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_PGDN, KC_END
61-
)
62-
};
63-
646
#define CS19_SW12 0x00
657
#define CS20_SW12 0x01
668
#define CS21_SW12 0x02

keyboards/lotus/ansi/ansi.h

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// Copyright 2022 Framework Computer
2+
// SPDX-License-Identifier: GPL-2.0-or-later
3+
4+
// The layouts are all mostly the same, except for the extra keys that the different layouts have
5+
#define LAYOUT( \
6+
K110, K112, K113, K114, K115, K116, K117, K118, K119, K120, K121, K122, K126, K76, \
7+
K1, K2, K3, K4, K5, K6, K7, K8, K9, K10, K11, K12, K13, K15, \
8+
K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, \
9+
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K40, K41, K43, \
10+
K44, K46, K47, K48, K49, K50, K51, K52, K53, K54, K55, K57, \
11+
K58, K59, K127, K60, K61, K62, K64, K79, K83, K84, K89 \
12+
) \
13+
{ \
14+
{ K48, K76, K17, K62, KC_NO, K47, K49, K52, K54, K57, K53, KC_NO, K64, K55, K41, KC_NO }, \
15+
{ KC_NO, KC_NO, KC_NO, K60, K61, K46, K50, K51, K84, K44, KC_NO, KC_NO, K58, K83, K43, K119 }, \
16+
{ KC_NO, KC_NO, K59, KC_NO, K19, K113, K35, K36, K29, KC_NO, K118, KC_NO, KC_NO, K12, KC_NO, K89 }, \
17+
{ KC_NO, K127, K16, KC_NO, K115, K112, K21, K22, K25, KC_NO, K117, K120, KC_NO, KC_NO, KC_NO, K126 }, \
18+
{ KC_NO, KC_NO, K1, KC_NO, K30, K32, K6, K7, K121, KC_NO, K116, KC_NO, KC_NO, K11, K13, KC_NO }, \
19+
{ KC_NO, KC_NO, K2, KC_NO, K4, K3, K5, K8, K10, KC_NO, K9, KC_NO, KC_NO, K26, K15, KC_NO }, \
20+
{ KC_NO, KC_NO, KC_NO, KC_NO, K114, K18, K20, K23, K122, KC_NO, K24, K79, KC_NO, K27, K28, KC_NO }, \
21+
{ KC_NO, KC_NO, K31, KC_NO, KC_NO, K110, K34, K37, K39, KC_NO, K38, KC_NO, KC_NO, K40, K33, KC_NO } \
22+
}

keyboards/lotus/keymaps/78_ansi/config.h keyboards/lotus/ansi/config.h

+6
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
// Copyright 2022 Framework Computer
2+
// SPDX-License-Identifier: GPL-2.0-or-later
3+
4+
#define MATRIX_COLS 16
5+
#define MATRIX_ROWS 8
6+
17
#define DRIVER_COUNT 2
28
#define DRIVER_ADDR_1 0b0100000
39
#define DRIVER_ADDR_2 0b0100011

keyboards/lotus/ansi/info.json

+113
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
{
2+
"keyboard_name": "Lotus Keyboard",
3+
"manufacturer": "Framework Computer Inc",
4+
"maintainer": "JohnAZoidberg",
5+
"bootloader": "rp2040",
6+
"features": {
7+
"bootmagic": false,
8+
"mousekey": true,
9+
"extrakey": true,
10+
"console": true,
11+
"command": false,
12+
"nkro": true,
13+
"audio": false
14+
},
15+
"debounce": 5,
16+
"processor": "RP2040",
17+
"url": "https://frame.work",
18+
"usb": {
19+
"device_version": "0.1.0",
20+
"pid": "0x0013",
21+
"vid": "0x32AC"
22+
},
23+
"backlight": {
24+
"pin": "GP25"
25+
},
26+
"layout_aliases": {
27+
"LAYOUT_default": "LAYOUT"
28+
},
29+
"layouts": {
30+
"LAYOUT": {
31+
"layout": [
32+
{ "label": "Esc", "x": 0, "y": 0, "w": 1.25, "h": 0.5 },
33+
{ "label": "F1", "x": 1.5, "y": 0, "h": 0.5 },
34+
{ "label": "F2", "x": 2.75, "y": 0, "h": 0.5 },
35+
{ "label": "F3", "x": 4, "y": 0, "h": 0.5 },
36+
{ "label": "F4", "x": 5.25, "y": 0, "h": 0.5 },
37+
{ "label": "F5", "x": 6.5, "y": 0, "h": 0.5 },
38+
{ "label": "F6", "x": 7.75, "y": 0, "h": 0.5 },
39+
{ "label": "F7", "x": 9, "y": 0, "h": 0.5 },
40+
{ "label": "F8", "x": 10.25, "y": 0, "h": 0.5 },
41+
{ "label": "F9", "x": 11.5, "y": 0, "h": 0.5 },
42+
{ "label": "F10", "x": 12.75, "y": 0, "h": 0.5 },
43+
{ "label": "F11", "x": 14, "y": 0, "h": 0.5 },
44+
{ "label": "F12", "x": 15.25, "y": 0, "h": 0.5 },
45+
{ "label": "Delete", "x": 16.5, "y": 0, "w": 1.75, "h": 0.5 },
46+
{ "label": "~", "x": 0, "y": 0.75 },
47+
{ "label": "!", "x": 1.25, "y": 0.75 },
48+
{ "label": "@", "x": 2.5, "y": 0.75 },
49+
{ "label": "#", "x": 3.75, "y": 0.75 },
50+
{ "label": "$", "x": 5, "y": 0.75 },
51+
{ "label": "%", "x": 6.25, "y": 0.75 },
52+
{ "label": "^", "x": 7.5, "y": 0.75 },
53+
{ "label": "&", "x": 8.75, "y": 0.75 },
54+
{ "label": "*", "x": 10, "y": 0.75 },
55+
{ "label": "(", "x": 11.25, "y": 0.75 },
56+
{ "label": ")", "x": 12.5, "y": 0.75 },
57+
{ "label": "_", "x": 13.75, "y": 0.75 },
58+
{ "label": "+", "x": 15, "y": 0.75 },
59+
{ "label": "Backspace", "x": 16.25, "y": 0.75, "w": 2 },
60+
{ "label": "Tab", "x": 0, "y": 2, "w": 1.5 },
61+
{ "label": "Q", "x": 1.75, "y": 2 },
62+
{ "label": "W", "x": 3, "y": 2 },
63+
{ "label": "E", "x": 4.25, "y": 2 },
64+
{ "label": "R", "x": 5.5, "y": 2 },
65+
{ "label": "T", "x": 6.75, "y": 2 },
66+
{ "label": "Y", "x": 8, "y": 2 },
67+
{ "label": "U", "x": 9.25, "y": 2 },
68+
{ "label": "I", "x": 10.5, "y": 2 },
69+
{ "label": "O", "x": 11.75, "y": 2 },
70+
{ "label": "P", "x": 13, "y": 2 },
71+
{ "label": "{", "x": 14.25, "y": 2 },
72+
{ "label": "}", "x": 15.5, "y": 2 },
73+
{ "label": "|", "x": 16.75, "y": 2, "w": 1.5 },
74+
{ "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 },
75+
{ "label": "A", "x": 2, "y": 3.25 },
76+
{ "label": "S", "x": 3.25, "y": 3.25 },
77+
{ "label": "D", "x": 4.5, "y": 3.25 },
78+
{ "label": "F", "x": 5.75, "y": 3.25 },
79+
{ "label": "G", "x": 7, "y": 3.25 },
80+
{ "label": "H", "x": 8.25, "y": 3.25 },
81+
{ "label": "J", "x": 9.5, "y": 3.25 },
82+
{ "label": "K", "x": 10.75, "y": 3.25 },
83+
{ "label": "L", "x": 12, "y": 3.25 },
84+
{ "label": ":", "x": 13.25, "y": 3.25 },
85+
{ "label": "\"", "x": 14.5, "y": 3.25 },
86+
{ "label": "Enter", "x": 15.75, "y": 3.25, "w": 2.5 },
87+
{ "label": "Shift", "x": 0, "y": 4.5, "w": 2.5 },
88+
{ "label": "Z", "x": 2.75, "y": 4.5 },
89+
{ "label": "X", "x": 4, "y": 4.5 },
90+
{ "label": "C", "x": 5.25, "y": 4.5 },
91+
{ "label": "V", "x": 6.5, "y": 4.5 },
92+
{ "label": "B", "x": 7.75, "y": 4.5 },
93+
{ "label": "N", "x": 9, "y": 4.5 },
94+
{ "label": "M", "x": 10.25, "y": 4.5 },
95+
{ "label": "<", "x": 11.5, "y": 4.5 },
96+
{ "label": ">", "x": 12.75, "y": 4.5 },
97+
{ "label": "?", "x": 14, "y": 4.5 },
98+
{ "label": "Shift", "x": 15.25, "y": 4.5, "w": 3 },
99+
{ "label": "Ctrl", "x": 0, "y": 5.75, "w": 1.25 },
100+
{ "label": "Fn", "x": 1.5, "y": 5.75 },
101+
{ "label": "Win", "x": 2.75, "y": 5.75 },
102+
{ "label": "Alt", "x": 4, "y": 5.75 },
103+
{ "x": 5.25, "y": 5.75, "w": 6 },
104+
{ "label": "Alt", "x": 11.5, "y": 5.75 },
105+
{ "label": "Ctrl", "x": 12.75, "y": 5.75 },
106+
{ "label": "", "x": 14, "y": 5.75, "w": 1.25 },
107+
{ "label": "", "x": 15.5, "y": 5.75, "w": 1.25, "h": 0.5 },
108+
{ "label": "", "x": 17, "y": 5.75, "w": 1.25 },
109+
{ "label": "", "x": 15.5, "y": 6.25, "w": 1.25, "h": 0.5 }
110+
]
111+
}
112+
}
113+
}

0 commit comments

Comments
 (0)