Skip to content

Commit 4d17fe2

Browse files
DeskDailyNeil Brian RamirezNeil Brian Ramirez
authored
[Keyboard] Add lxxt (qmk#19935)
Co-authored-by: Neil Brian Ramirez <[email protected]> Co-authored-by: Neil Brian Ramirez <[email protected]>
1 parent 1d045e8 commit 4d17fe2

File tree

8 files changed

+312
-0
lines changed

8 files changed

+312
-0
lines changed

keyboards/lxxt/config.h

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/* Copyright 2023 DeskDaily
2+
*
3+
* This program is free software: you can redistribute it and/or modify
4+
* it under the terms of the GNU General Public License as published by
5+
* the Free Software Foundation, either version 2 of the License, or
6+
* (at your option) any later version.
7+
*
8+
* This program is distributed in the hope that it will be useful,
9+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+
* GNU General Public License for more details.
12+
*
13+
* You should have received a copy of the GNU General Public License
14+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
15+
*/
16+
17+
#pragma once
18+
19+
#define WS2812_PIO_USE_PIO1

keyboards/lxxt/info.json

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
{
2+
"keyboard_name": "LXXT",
3+
"manufacturer": "DeskDaily",
4+
"url": "",
5+
"maintainer": "DeskDaily",
6+
"usb": {
7+
"vid": "0x5003",
8+
"pid": "0x0001",
9+
"device_version": "0.0.1"
10+
},
11+
"encoder": {
12+
"rotary": [
13+
{"pin_a": "GP27", "pin_b": "GP28"},
14+
{"pin_a": "GP8", "pin_b": "GP9"}
15+
]
16+
},
17+
"processor": "RP2040",
18+
"bootloader": "rp2040",
19+
"matrix_pins": {
20+
"rows": ["GP29", "GP26", "GP22", "GP24", "GP17"],
21+
"cols": ["GP25", "GP23", "GP7", "GP0", "GP15", "GP14", "GP13", "GP12", "GP11", "GP10", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1"]
22+
},
23+
"rgblight": {
24+
"pin": "GP21",
25+
"led_count": 16,
26+
"hue_steps": 8,
27+
"saturation_steps": 8,
28+
"brightness_steps": 8,
29+
"max_brightness": 255,
30+
"sleep": true,
31+
"animations": {
32+
"alternating": true,
33+
"breathing": true,
34+
"christmas": true,
35+
"knight": true,
36+
"rainbow_mood": true,
37+
"rainbow_swirl": true,
38+
"rgb_test": true,
39+
"snake": true,
40+
"static_gradient": true,
41+
"twinkle": true
42+
}
43+
},
44+
"diode_direction": "COL2ROW",
45+
"features": {
46+
"bootmagic": true,
47+
"mousekey": true,
48+
"extrakey": true,
49+
"console": false,
50+
"command": false,
51+
"nkro": true,
52+
"rgblight": true
53+
},
54+
"layouts": {
55+
"LAYOUT": {
56+
"layout": [
57+
{"matrix": [0, 0], "x": 0, "y": 0},
58+
{"matrix": [0, 1], "x": 1.25, "y": 0},
59+
{"matrix": [0, 2], "x": 2.25, "y": 0},
60+
{"matrix": [0, 3], "x": 3.25, "y": 0},
61+
{"matrix": [0, 4], "x": 4.25, "y": 0},
62+
{"matrix": [0, 5], "x": 5.25, "y": 0},
63+
{"matrix": [0, 6], "x": 6.25, "y": 0},
64+
{"matrix": [0, 7], "x": 7.25, "y": 0},
65+
{"matrix": [0, 8], "x": 8.25, "y": 0},
66+
{"matrix": [0, 9], "x": 9.25, "y": 0},
67+
{"matrix": [0, 10], "x": 10.25, "y": 0},
68+
{"matrix": [0, 11], "x": 11.25, "y": 0},
69+
{"matrix": [0, 12], "x": 12.25, "y": 0},
70+
{"matrix": [0, 13], "x": 13.25, "y": 0},
71+
{"matrix": [0, 14], "x": 14.25, "y": 0},
72+
{"matrix": [1, 14], "x": 15.25, "y": 0},
73+
{"matrix": [0, 15], "x": 16.5, "y": 0},
74+
{"matrix": [1, 0], "x": 0, "y": 1},
75+
{"matrix": [1, 1], "x": 1.25, "y": 1, "w": 1.5},
76+
{"matrix": [1, 2], "x": 2.75, "y": 1},
77+
{"matrix": [1, 3], "x": 3.75, "y": 1},
78+
{"matrix": [1, 4], "x": 4.75, "y": 1},
79+
{"matrix": [1, 5], "x": 5.75, "y": 1},
80+
{"matrix": [1, 6], "x": 6.75, "y": 1},
81+
{"matrix": [1, 7], "x": 7.75, "y": 1},
82+
{"matrix": [1, 8], "x": 8.75, "y": 1},
83+
{"matrix": [1, 9], "x": 9.75, "y": 1},
84+
{"matrix": [1, 10], "x": 10.75, "y": 1},
85+
{"matrix": [1, 11], "x": 11.75, "y": 1},
86+
{"matrix": [1, 12], "x": 12.75, "y": 1},
87+
{"matrix": [1, 13], "x": 13.75, "y": 1},
88+
{"matrix": [2, 14], "x": 14.75, "y": 1, "w": 1.5},
89+
{"matrix": [1, 15], "x": 16.5, "y": 1},
90+
{"matrix": [2, 0], "x": 0, "y": 2},
91+
{"matrix": [2, 1], "x": 1.25, "y": 2, "w": 1.75},
92+
{"matrix": [2, 2], "x": 3, "y": 2},
93+
{"matrix": [2, 3], "x": 4, "y": 2},
94+
{"matrix": [2, 4], "x": 5, "y": 2},
95+
{"matrix": [2, 5], "x": 6, "y": 2},
96+
{"matrix": [2, 6], "x": 7, "y": 2},
97+
{"matrix": [2, 7], "x": 8, "y": 2},
98+
{"matrix": [2, 8], "x": 9, "y": 2},
99+
{"matrix": [2, 9], "x": 10, "y": 2},
100+
{"matrix": [2, 10], "x": 11, "y": 2},
101+
{"matrix": [2, 11], "x": 12, "y": 2},
102+
{"matrix": [2, 12], "x": 13, "y": 2},
103+
{"matrix": [2, 13], "x": 14, "y": 2, "w": 2.25},
104+
{"matrix": [2, 15], "x": 16.5, "y": 2},
105+
{"matrix": [3, 0], "x": 0, "y": 3},
106+
{"matrix": [3, 1], "x": 1.25, "y": 3, "w": 2.25},
107+
{"matrix": [3, 3], "x": 3.5, "y": 3},
108+
{"matrix": [3, 4], "x": 4.5, "y": 3},
109+
{"matrix": [3, 5], "x": 5.5, "y": 3},
110+
{"matrix": [3, 6], "x": 6.5, "y": 3},
111+
{"matrix": [3, 7], "x": 7.5, "y": 3},
112+
{"matrix": [3, 8], "x": 8.5, "y": 3},
113+
{"matrix": [3, 9], "x": 9.5, "y": 3},
114+
{"matrix": [3, 10], "x": 10.5, "y": 3},
115+
{"matrix": [3, 11], "x": 11.5, "y": 3},
116+
{"matrix": [3, 12], "x": 12.5, "y": 3},
117+
{"matrix": [3, 13], "x": 13.5, "y": 3, "w": 1.75},
118+
{"matrix": [3, 14], "x": 15.25, "y": 3},
119+
{"matrix": [3, 15], "x": 16.5, "y": 3},
120+
{"matrix": [4, 0], "x": 0, "y": 4},
121+
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
122+
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
123+
{"matrix": [4, 4], "x": 3.75, "y": 4, "w": 1.25},
124+
{"matrix": [4, 8], "x": 5, "y": 4, "w": 6.25},
125+
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
126+
{"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
127+
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25},
128+
{"matrix": [4, 14], "x": 15, "y": 4, "w": 1.25},
129+
{"matrix": [4, 15], "x": 16.5, "y": 4}
130+
]
131+
}
132+
}
133+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/* Copyright 2023 DeskDaily
2+
*
3+
* This program is free software: you can redistribute it and/or modify
4+
* it under the terms of the GNU General Public License as published by
5+
* the Free Software Foundation, either version 2 of the License, or
6+
* (at your option) any later version.
7+
*
8+
* This program is distributed in the hope that it will be useful,
9+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+
* GNU General Public License for more details.
12+
*
13+
* You should have received a copy of the GNU General Public License
14+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
15+
*/
16+
#include QMK_KEYBOARD_H
17+
18+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19+
20+
[0] = LAYOUT(
21+
KC_TRNS, KC_ESC, 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_BSPC, KC_TRNS,
22+
KC_TRNS, 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_TRNS,
23+
KC_TRNS, 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_TRNS,
24+
KC_TRNS, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_LSFT, KC_TRNS,
25+
KC_TRNS, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_RGUI, KC_APP, KC_LCTL, KC_TRNS
26+
),
27+
};
28+

keyboards/lxxt/keymaps/via/keymap.c

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
/* Copyright 2023 DeskDaily
2+
*
3+
* This program is free software: you can redistribute it and/or modify
4+
* it under the terms of the GNU General Public License as published by
5+
* the Free Software Foundation, either version 2 of the License, or
6+
* (at your option) any later version.
7+
*
8+
* This program is distributed in the hope that it will be useful,
9+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+
* GNU General Public License for more details.
12+
*
13+
* You should have received a copy of the GNU General Public License
14+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
15+
*/
16+
#include QMK_KEYBOARD_H
17+
18+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19+
20+
[0] = LAYOUT(
21+
KC_TRNS, KC_ESC, 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_BSPC, KC_TRNS,
22+
KC_TRNS, 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_TRNS,
23+
KC_TRNS, 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_TRNS,
24+
KC_TRNS, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_LSFT, KC_TRNS,
25+
KC_TRNS, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_RGUI, KC_APP, KC_LCTL, KC_TRNS
26+
),
27+
28+
[1] = LAYOUT(
29+
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,
30+
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,
31+
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,
32+
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,
33+
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
34+
),
35+
36+
[2] = LAYOUT(
37+
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,
38+
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,
39+
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,
40+
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,
41+
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
42+
),
43+
44+
[3] = LAYOUT(
45+
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,
46+
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,
47+
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,
48+
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,
49+
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
50+
),
51+
};
52+
53+
#if defined(ENCODER_MAP_ENABLE)
54+
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
55+
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_BRID, KC_BRIU) },
56+
[1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
57+
[2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
58+
[3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
59+
};
60+
#endif

keyboards/lxxt/keymaps/via/rules.mk

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
VIA_ENABLE = yes
2+
LTO_ENABLE = yes
3+
ENCODER_MAP_ENABLE = yes

keyboards/lxxt/lxxt.c

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/* Copyright 2023 DeskDaily
2+
*
3+
* This program is free software: you can redistribute it and/or modify
4+
* it under the terms of the GNU General Public License as published by
5+
* the Free Software Foundation, either version 2 of the License, or
6+
* (at your option) any later version.
7+
*
8+
* This program is distributed in the hope that it will be useful,
9+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+
* GNU General Public License for more details.
12+
*
13+
* You should have received a copy of the GNU General Public License
14+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
15+
*/
16+
17+
18+
#include "quantum.h"
19+
20+
#if defined(ENCODER_ENABLE)
21+
22+
bool encoder_update_kb(uint8_t index, bool clockwise) {
23+
if (!encoder_update_kb(index, clockwise)) {
24+
return false; /* Don't process further events if user function exists and returns false */
25+
}
26+
if (index == 0) { /* First encoder */
27+
if (clockwise) {
28+
tap_code_delay(KC_VOLU, 10);
29+
} else {
30+
tap_code_delay(KC_VOLD, 10);
31+
}
32+
} else if (index == 1) { /* Second encoder */
33+
if (clockwise) {
34+
tap_code_delay(KC_BRIU, 10);
35+
} else {
36+
tap_code_delay(KC_BRID, 10);
37+
}
38+
}
39+
return true;
40+
}
41+
42+
#endif

keyboards/lxxt/readme.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# LXXT
2+
3+
A 60% pcb with extra columns on the left and right part (Extended 60%)
4+
5+
* Keyboard Maintainer: [DeskDaily](https://github.com/DeskDaily)
6+
* Hardware Supported: RP2040
7+
8+
Make example for this keyboard (after setting up your build environment):
9+
10+
make lxxt:default
11+
12+
Flashing example for this keyboard:
13+
14+
make lxxt:default:flash
15+
16+
## Bootloader
17+
18+
Enter the bootloader in 3 ways:
19+
20+
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the upper left key/esc) and plug in the keyboard
21+
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
22+
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
23+
24+
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).

keyboards/lxxt/rules.mk

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
ENCODER_ENABLE = yes
2+
3+
WS2812_DRIVER = vendor

0 commit comments

Comments
 (0)