Skip to content

Commit e658fd2

Browse files
authored
Split HHKB to ANSI and JP layouts and Add VIA support for each (#8582)
* VIA Support created for HHKB Hasu Controller config.h keymap.c rules.mk * Add VIA support for HHKB JP with Hasu controller - define distinct PRODUCT_ID and set dynamic layers to 3 to fit EEPROM * Split HHKB into ANSI and JP. Tested VIA for ANSI and JP. Hex compilation successful * Resolve jp.h erroneous diff from git merge from master * Resolve ansi.h diff merge * Define rules.mk for dynamic macro to rid of warning for ansi/keymaps/mjt/ * Moved rn42 directory up, got rid of #define HHKB_JP lines * Update keyboards/hhkb/jp/readme.md * Update keyboards/hhkb/jp/keymaps/via/keymap.c * Replace with #pragma once and remove ending #endif * Remove old style guards #define... for #pragma once * Update keyboards/hhkb/jp/keymaps/via/rules.mk * Update keyboards/hhkb/ansi/rules.mk * Update keyboards/hhkb/jp/rules.mk * Updated hhkb/ansi/readme.md compiling instructions * VIA Support created for HHKB Hasu Controller config.h keymap.c rules.mk * Add VIA support for HHKB JP with Hasu controller - define distinct PRODUCT_ID and set dynamic layers to 3 to fit EEPROM * Split HHKB into ANSI and JP. Tested VIA for ANSI and JP. Hex compilation successful * Resolve ansi.h diff merge * Define rules.mk for dynamic macro to rid of warning for ansi/keymaps/mjt/ * Moved rn42 directory up, got rid of #define HHKB_JP lines * Update keyboards/hhkb/jp/readme.md * Update keyboards/hhkb/jp/keymaps/via/keymap.c * Replace with #pragma once and remove ending #endif * Remove old style guards #define... for #pragma once * Update keyboards/hhkb/jp/keymaps/via/rules.mk * Update keyboards/hhkb/ansi/rules.mk * Update keyboards/hhkb/jp/rules.mk * Updated hhkb/ansi/readme.md compiling instructions
1 parent f9e2dbd commit e658fd2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+804
-124
lines changed

keyboards/hhkb/ansi/ansi.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
#include "ansi.h"

keyboards/hhkb/ansi/ansi.h

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#pragma once
2+
3+
#include "quantum.h"
4+
5+
#define LAYOUT( \
6+
K31, K30, K00, K10, K11, K20, K21, K40, K41, K60, K61, K70, K71, K50, K51, \
7+
K32, K01, K02, K13, K12, K23, K22, K42, K43, K62, K63, K73, K72, K52, \
8+
K33, K04, K03, K14, K15, K24, K25, K45, K44, K65, K64, K74, K53, \
9+
K34, K05, K06, K07, K16, K17, K26, K46, K66, K76, K75, K55, K54, \
10+
K35, K36, K37, K57, K56) \
11+
\
12+
{ \
13+
{ K00, K01, K02, K03, K04, K05, K06, K07 }, \
14+
{ K10, K11, K12, K13, K14, K15, K16, K17 }, \
15+
{ K20, K21, K22, K23, K24, K25, K26, KC_NO }, \
16+
{ K30, K31, K32, K33, K34, K35, K36, K37 }, \
17+
{ K40, K41, K42, K43, K44, K45, K46, KC_NO }, \
18+
{ K50, K51, K52, K53, K54, K55, K56, K57 }, \
19+
{ K60, K61, K62, K63, K64, K65, K66, KC_NO }, \
20+
{ K70, K71, K72, K73, K74, K75, K76, KC_NO } \
21+
}
22+
23+
#define LAYOUT_60_hhkb LAYOUT

keyboards/hhkb/config.h renamed to keyboards/hhkb/ansi/config.h

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,25 +15,20 @@ You should have received a copy of the GNU General Public License
1515
along with this program. If not, see <http://www.gnu.org/licenses/>.
1616
*/
1717

18-
#ifndef CONFIG_H
19-
#define CONFIG_H
18+
#pragma once
2019

2120
#include "config_common.h"
2221

2322
/* USB Device descriptor parameter */
24-
#define VENDOR_ID 0xFEED
25-
#define PRODUCT_ID 0xCAFE
23+
#define VENDOR_ID 0x4848 // HH = happy hacking
24+
#define PRODUCT_ID 0x0001 // ANSI HHKB
2625
#define DEVICE_VER 0x0104
2726
#define MANUFACTURER q.m.k
2827
#define PRODUCT HHKB mod
2928
#define DESCRIPTION q.m.k keyboard firmware for HHKB
3029

3130
/* key matrix size */
32-
#ifdef HHKB_JP
33-
# define MATRIX_ROWS 16
34-
#else
35-
# define MATRIX_ROWS 8
36-
#endif
31+
#define MATRIX_ROWS 8
3732
#define MATRIX_COLS 8
3833

3934
#define TAPPING_TERM 200
@@ -107,5 +102,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
107102
//#define NO_ACTION_ONESHOT
108103
//#define NO_ACTION_MACRO
109104
//#define NO_ACTION_FUNCTION
110-
111-
#endif

keyboards/hhkb/ansi/hhkb_avr.h

Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
#pragma once
2+
3+
#include <stdint.h>
4+
#include <stdbool.h>
5+
#include <avr/io.h>
6+
#include <avr/interrupt.h>
7+
#include <util/delay.h>
8+
9+
10+
// Timer resolution check
11+
#if (1000000/TIMER_RAW_FREQ > 20)
12+
# error "Timer resolution(>20us) is not enough for HHKB matrix scan tweak on V-USB."
13+
#endif
14+
15+
16+
/*
17+
* HHKB Matrix I/O
18+
*
19+
* row: HC4051[A,B,C] selects scan row0-7
20+
* row-ext: [En0,En1] row extention for JP
21+
* col: LS145[A,B,C,D] selects scan col0-7 and enable(D)
22+
* key: on: 0/off: 1
23+
* prev: hysteresis control: assert(1) when previous key state is on
24+
*/
25+
26+
27+
#if defined(__AVR_ATmega32U4__)
28+
/*
29+
* For TMK HHKB alt controller(ATMega32U4)
30+
*
31+
* row: PB0-2
32+
* col: PB3-5,6
33+
* key: PD7(pull-uped)
34+
* prev: PB7
35+
* power: PD4(L:off/H:on)
36+
* row-ext: PC6,7 for HHKB JP(active low)
37+
*/
38+
static inline void KEY_ENABLE(void) { (PORTB &= ~(1<<6)); }
39+
static inline void KEY_UNABLE(void) { (PORTB |= (1<<6)); }
40+
static inline bool KEY_STATE(void) { return (PIND & (1<<7)); }
41+
static inline void KEY_PREV_ON(void) { (PORTB |= (1<<7)); }
42+
static inline void KEY_PREV_OFF(void) { (PORTB &= ~(1<<7)); }
43+
#ifdef HHKB_POWER_SAVING
44+
static inline void KEY_POWER_ON(void) {
45+
DDRB = 0xFF; PORTB = 0x40; // change pins output
46+
DDRD |= (1<<4); PORTD |= (1<<4); // MOS FET switch on
47+
/* Without this wait you will miss or get false key events. */
48+
_delay_ms(5); // wait for powering up
49+
}
50+
static inline void KEY_POWER_OFF(void) {
51+
/* input with pull-up consumes less than without it when pin is open. */
52+
DDRB = 0x00; PORTB = 0xFF; // change pins input with pull-up
53+
DDRD |= (1<<4); PORTD &= ~(1<<4); // MOS FET switch off
54+
}
55+
static inline bool KEY_POWER_STATE(void) { return PORTD & (1<<4); }
56+
#else
57+
static inline void KEY_POWER_ON(void) {}
58+
static inline void KEY_POWER_OFF(void) {}
59+
static inline bool KEY_POWER_STATE(void) { return true; }
60+
#endif
61+
static inline void KEY_INIT(void)
62+
{
63+
/* row,col,prev: output */
64+
DDRB = 0xFF;
65+
PORTB = 0x40; // unable
66+
/* key: input with pull-up */
67+
DDRD &= ~0x80;
68+
PORTD |= 0x80;
69+
70+
KEY_UNABLE();
71+
KEY_PREV_OFF();
72+
73+
KEY_POWER_OFF();
74+
}
75+
static inline void KEY_SELECT(uint8_t ROW, uint8_t COL)
76+
{
77+
PORTB = (PORTB & 0xC0) | (((COL) & 0x07)<<3) | ((ROW) & 0x07);
78+
79+
}
80+
81+
82+
#elif defined(__AVR_AT90USB1286__)
83+
/*
84+
* For Teensy++(AT90USB1286)
85+
*
86+
* HHKB pro HHKB pro2
87+
* row: PB0-2 (6-8) (5-7)
88+
* col: PB3-5,6 (9-12) (8-11)
89+
* key: PE6(pull-uped) (4) (3)
90+
* prev: PE7 (5) (4)
91+
*
92+
* TODO: convert into 'staitc inline' function
93+
*/
94+
#define KEY_INIT() do { \
95+
DDRB |= 0x7F; \
96+
DDRE |= (1<<7); \
97+
DDRE &= ~(1<<6); \
98+
PORTE |= (1<<6); \
99+
} while (0)
100+
#define KEY_SELECT(ROW, COL) (PORTB = (PORTB & 0xC0) | \
101+
(((COL) & 0x07)<<3) | \
102+
((ROW) & 0x07))
103+
#define KEY_ENABLE() (PORTB &= ~(1<<6))
104+
#define KEY_UNABLE() (PORTB |= (1<<6))
105+
#define KEY_STATE() (PINE & (1<<6))
106+
#define KEY_PREV_ON() (PORTE |= (1<<7))
107+
#define KEY_PREV_OFF() (PORTE &= ~(1<<7))
108+
#define KEY_POWER_ON()
109+
#define KEY_POWER_OFF()
110+
#define KEY_POWER_STATE() true
111+
112+
113+
#else
114+
# error "define code for matrix scan"
115+
#endif
116+
117+
118+
#if 0
119+
// For ATMega328P with V-USB
120+
//
121+
// #elif defined(__AVR_ATmega328P__)
122+
// Ports for V-USB
123+
// key: PB0(pull-uped)
124+
// prev: PB1
125+
// row: PB2-4
126+
// col: PC0-2,3
127+
// power: PB5(Low:on/Hi-z:off)
128+
#define KEY_INIT() do { \
129+
DDRB |= 0x3E; \
130+
DDRB &= ~(1<<0); \
131+
PORTB |= 1<<0; \
132+
DDRC |= 0x0F; \
133+
KEY_UNABLE(); \
134+
KEY_PREV_OFF(); \
135+
} while (0)
136+
#define KEY_SELECT(ROW, COL) do { \
137+
PORTB = (PORTB & 0xE3) | ((ROW) & 0x07)<<2; \
138+
PORTC = (PORTC & 0xF8) | ((COL) & 0x07); \
139+
} while (0)
140+
#define KEY_ENABLE() (PORTC &= ~(1<<3))
141+
#define KEY_UNABLE() (PORTC |= (1<<3))
142+
#define KEY_STATE() (PINB & (1<<0))
143+
#define KEY_PREV_ON() (PORTB |= (1<<1))
144+
#define KEY_PREV_OFF() (PORTB &= ~(1<<1))
145+
// Power supply switching
146+
#define KEY_POWER_ON() do { \
147+
KEY_INIT(); \
148+
PORTB &= ~(1<<5); \
149+
_delay_ms(1); \
150+
} while (0)
151+
#define KEY_POWER_OFF() do { \
152+
DDRB &= ~0x3F; \
153+
PORTB &= ~0x3F; \
154+
DDRC &= ~0x0F; \
155+
PORTC &= ~0x0F; \
156+
} while (0)
157+
#endif

keyboards/hhkb/ansi/info.json

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
{
2+
"keyboard_name": "HHKB",
3+
"url": "",
4+
"maintainer": "qmk",
5+
"width": 15,
6+
"height": 5,
7+
"layouts": {
8+
"LAYOUT": {
9+
"layout": [
10+
{ "label": "Esc", "x": 0, "y": 0 },
11+
{ "label": "!", "x": 1, "y": 0 },
12+
{ "label": "@", "x": 2, "y": 0 },
13+
{ "label": "#", "x": 3, "y": 0 },
14+
{ "label": "$", "x": 4, "y": 0 },
15+
{ "label": "%", "x": 5, "y": 0 },
16+
{ "label": "^", "x": 6, "y": 0 },
17+
{ "label": "&", "x": 7, "y": 0 },
18+
{ "label": "*", "x": 8, "y": 0 },
19+
{ "label": "(", "x": 9, "y": 0 },
20+
{ "label": ")", "x": 10, "y": 0 },
21+
{ "label": "_", "x": 11, "y": 0 },
22+
{ "label": "+", "x": 12, "y": 0 },
23+
{ "label": "|", "x": 13, "y": 0 },
24+
{ "label": "~", "x": 14, "y": 0 },
25+
{ "label": "Tab", "x": 0, "y": 1, "w": 1.5 },
26+
{ "label": "Q", "x": 1.5, "y": 1 },
27+
{ "label": "W", "x": 2.5, "y": 1 },
28+
{ "label": "E", "x": 3.5, "y": 1 },
29+
{ "label": "R", "x": 4.5, "y": 1 },
30+
{ "label": "T", "x": 5.5, "y": 1 },
31+
{ "label": "Y", "x": 6.5, "y": 1 },
32+
{ "label": "U", "x": 7.5, "y": 1 },
33+
{ "label": "I", "x": 8.5, "y": 1 },
34+
{ "label": "O", "x": 9.5, "y": 1 },
35+
{ "label": "P", "x": 10.5, "y": 1 },
36+
{ "label": "{", "x": 11.5, "y": 1 },
37+
{ "label": "}", "x": 12.5, "y": 1 },
38+
{ "label": "Delete", "x": 13.5, "y": 1, "w": 1.5 },
39+
{ "label": "Control", "x": 0, "y": 2, "w": 1.75 },
40+
{ "label": "A", "x": 1.75, "y": 2 },
41+
{ "label": "S", "x": 2.75, "y": 2 },
42+
{ "label": "D", "x": 3.75, "y": 2 },
43+
{ "label": "F", "x": 4.75, "y": 2 },
44+
{ "label": "G", "x": 5.75, "y": 2 },
45+
{ "label": "H", "x": 6.75, "y": 2 },
46+
{ "label": "J", "x": 7.75, "y": 2 },
47+
{ "label": "K", "x": 8.75, "y": 2 },
48+
{ "label": "L", "x": 9.75, "y": 2 },
49+
{ "label": ":", "x": 10.75, "y": 2 },
50+
{ "label": "\"", "x": 11.75, "y": 2 },
51+
{ "label": "Return", "x": 12.75, "y": 2, "w": 2.25 },
52+
{ "label": "Shift", "x": 0, "y": 3, "w": 2.25 },
53+
{ "label": "Z", "x": 2.25, "y": 3 },
54+
{ "label": "X", "x": 3.25, "y": 3 },
55+
{ "label": "C", "x": 4.25, "y": 3 },
56+
{ "label": "V", "x": 5.25, "y": 3 },
57+
{ "label": "B", "x": 6.25, "y": 3 },
58+
{ "label": "N", "x": 7.25, "y": 3 },
59+
{ "label": "M", "x": 8.25, "y": 3 },
60+
{ "label": "<", "x": 9.25, "y": 3 },
61+
{ "label": ">", "x": 10.25, "y": 3 },
62+
{ "label": "?", "x": 11.25, "y": 3 },
63+
{ "label": "Shift", "x": 12.25, "y": 3, "w": 1.75 },
64+
{ "label": "Fn", "x": 14, "y": 3 },
65+
{ "label": "", "x": 1.5, "y": 4 },
66+
{ "label": "", "x": 2.5, "y": 4, "w": 1.5 },
67+
{ "x": 4, "y": 4, "w": 6 },
68+
{ "label": "", "x": 10, "y": 4, "w": 1.5 },
69+
{ "label": "", "x": 11.5, "y": 4 }
70+
]
71+
}
72+
}
73+
}

keyboards/hhkb/keymaps/mjt/keymap.c renamed to keyboards/hhkb/ansi/keymaps/mjt/keymap.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ enum hhkb_keycodes
1717
DYNAMIC_MACRO_RANGE,
1818
};
1919

20-
#include "dynamic_macro.h"
2120

2221
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
2322

@@ -104,7 +103,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
104103
bool process_record_user(uint16_t keycode, keyrecord_t *record)
105104
{
106105
uint16_t macro_kc = (keycode == MO(DYN) ? DYN_REC_STOP : keycode);
107-
if (!process_record_dynamic_macro(macro_kc, record))
106+
if (!process_dynamic_macro(macro_kc, record))
108107
{
109108
return false;
110109
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
DYNAMIC_MACRO_ENABLE = yes
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
#include QMK_KEYBOARD_H
2+
3+
4+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
5+
6+
/* BASE Level: Default Layer
7+
|-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---|
8+
| Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` |
9+
|-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---|
10+
| Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | |
11+
|-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---|
12+
| Cont | A | S | D | F | G | H | J | K | L | ; | ' | Ent | | |
13+
|-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---|
14+
| Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn0 | | |
15+
|-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---|
16+
17+
|------+------+-----------------------+------+------|
18+
| LAlt | LGUI | ******* Space ******* | RGUI | RAlt |
19+
|------+------+-----------------------+------+------|
20+
*/
21+
22+
[0] = LAYOUT( // default layer
23+
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_BSLS, KC_GRV,
24+
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_BSPC,
25+
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
26+
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
27+
KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT
28+
),
29+
30+
/* Layer HHKB: HHKB mode (HHKB Fn)
31+
|------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----|
32+
| Pwr | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del |
33+
|------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----|
34+
| Caps | | | | | | | | Psc | Slk | Pus | Up | | Backs | |
35+
|------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----|
36+
| | VoD | VoU | Mut | | | * | / | Hom | PgU | Lef | Rig | Enter | | |
37+
|------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----|
38+
| | | | | | | + | - | End | PgD | Dow | | | | |
39+
|------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----|
40+
41+
|------+------+----------------------+------+------+
42+
| **** | **** | ******************** | **** | **** |
43+
|------+------+----------------------+------+------+
44+
45+
*/
46+
47+
[1] = LAYOUT(
48+
KC_PWR, 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_INS, KC_DEL,
49+
KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC,
50+
KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT,
51+
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
52+
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
53+
),
54+
[2] = LAYOUT(
55+
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,
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_TRNS, KC_TRNS, KC_TRNS,
58+
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,
59+
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
60+
),
61+
[3] = LAYOUT(
62+
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,
63+
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,
64+
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,
65+
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,
66+
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
67+
)
68+
};
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
VIA_ENABLE = yes

0 commit comments

Comments
 (0)