aboutsummaryrefslogtreecommitdiff
path: root/keyboards/vn66
diff options
context:
space:
mode:
authorRyan <fauxpark@gmail.com>2020-10-29 06:14:11 +1100
committerGitHub <noreply@github.com>2020-10-29 06:14:11 +1100
commit1d85fe176a12c31c959865fa78f340e090fff587 (patch)
tree8f061c05d9c4b32e227d00275a385026672380be /keyboards/vn66
parenta42e3ba2cb4a3520ed7e7691288694f3795321c4 (diff)
downloadqmk_firmware-1d85fe176a12c31c959865fa78f340e090fff587.tar.gz
qmk_firmware-1d85fe176a12c31c959865fa78f340e090fff587.zip
VN66 refactor (#10776)
Diffstat (limited to 'keyboards/vn66')
-rw-r--r--keyboards/vn66/config.h112
-rw-r--r--keyboards/vn66/info.json252
-rw-r--r--keyboards/vn66/keymaps/default/config.h19
-rw-r--r--keyboards/vn66/keymaps/default/keymap.c48
-rw-r--r--keyboards/vn66/keymaps/default/readme.md2
-rw-r--r--keyboards/vn66/readme.md14
-rw-r--r--keyboards/vn66/rules.mk25
-rw-r--r--keyboards/vn66/vn66.c24
-rw-r--r--keyboards/vn66/vn66.h80
9 files changed, 421 insertions, 155 deletions
diff --git a/keyboards/vn66/config.h b/keyboards/vn66/config.h
index d7281747e..e30c1b19d 100644
--- a/keyboards/vn66/config.h
+++ b/keyboards/vn66/config.h
@@ -20,12 +20,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
20#include "config_common.h" 20#include "config_common.h"
21 21
22/* USB Device descriptor parameter */ 22/* USB Device descriptor parameter */
23#define VENDOR_ID 0xFEED 23#define VENDOR_ID 0xFEED
24#define PRODUCT_ID 0x0000 24#define PRODUCT_ID 0xCA2C
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER HnahKB 26#define MANUFACTURER HnahKB
27#define PRODUCT VN66 27#define PRODUCT VN66
28#define DESCRIPTION A compact keyboard for VNMK
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 5 30#define MATRIX_ROWS 5
@@ -41,33 +40,51 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
41 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) 40 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
42 * 41 *
43 */ 42 */
44#define MATRIX_ROW_PINS \ 43#define MATRIX_ROW_PINS { B1, B2, B3, D2, F7 }
45 { B1, B2, B3, D2, F7 } 44#define MATRIX_COL_PINS { F6, F5, F4, F1, F0, C6, C7, B5, B4, D7, D6, D4, D5, D3 }
46#define MATRIX_COL_PINS \
47 { F6, F5, F4, F1, F0, C6, C7, B5, B4, D7, D6, D4, D5, D3 }
48#define UNUSED_PINS 45#define UNUSED_PINS
49 46
50/* COL2ROW, ROW2COL*/ 47/* COL2ROW, ROW2COL */
51#define DIODE_DIRECTION COL2ROW 48#define DIODE_DIRECTION COL2ROW
52 49
53
54#define BACKLIGHT_PIN B6 50#define BACKLIGHT_PIN B6
55#define BACKLIGHT_BREATHING
56#define BACKLIGHT_LEVELS 4 51#define BACKLIGHT_LEVELS 4
52#define BACKLIGHT_BREATHING
53
54#define ENCODERS_PAD_A { B0 }
55#define ENCODERS_PAD_B { B7 }
56#define ENCODER_RESOLUTION 2
57 57
58#define RGB_DI_PIN E2 58#define RGB_DI_PIN E2
59 #ifdef RGB_DI_PIN 59#ifdef RGB_DI_PIN
60 #define RGBLED_NUM 20 60# define RGBLED_NUM 20
61 #define RGBLIGHT_HUE_STEP 8 61# define RGBLIGHT_HUE_STEP 8
62 #define RGBLIGHT_SAT_STEP 8 62# define RGBLIGHT_SAT_STEP 8
63 #define RGBLIGHT_VAL_STEP 8 63# define RGBLIGHT_VAL_STEP 8
64 #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ 64//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
65 #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ 65# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
66// /*== all animations enable ==*/ 66/*== all animations enable ==*/
67 #define RGBLIGHT_ANIMATIONS 67# define RGBLIGHT_ANIMATIONS
68 #endif 68/*== or choose animations ==*/
69//# define RGBLIGHT_EFFECT_BREATHING
70//# define RGBLIGHT_EFFECT_RAINBOW_MOOD
71//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
72//# define RGBLIGHT_EFFECT_SNAKE
73//# define RGBLIGHT_EFFECT_KNIGHT
74//# define RGBLIGHT_EFFECT_CHRISTMAS
75//# define RGBLIGHT_EFFECT_STATIC_GRADIENT
76//# define RGBLIGHT_EFFECT_RGB_TEST
77//# define RGBLIGHT_EFFECT_ALTERNATING
78/*== customize breathing effect ==*/
79/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
80//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
81/*==== use exp() and sin() ====*/
82//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
83//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
84#endif
85
69/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ 86/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
70#define DEBOUNCE 3 87#define DEBOUNCE 5
71 88
72/* define if matrix has ghost (lacks anti-ghosting diodes) */ 89/* define if matrix has ghost (lacks anti-ghosting diodes) */
73//#define MATRIX_HAS_GHOST 90//#define MATRIX_HAS_GHOST
@@ -78,10 +95,51 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
78#define LOCKING_RESYNC_ENABLE 95#define LOCKING_RESYNC_ENABLE
79 96
80/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. 97/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
81 * This is userful for the Windows task manager shortcut (ctrl+shift+esc). 98 * This is useful for the Windows task manager shortcut (ctrl+shift+esc).
82 */ 99 */
83#define GRAVE_ESC_CTRL_OVERRIDE 100#define GRAVE_ESC_CTRL_OVERRIDE
84 101
85#define ENCODERS_PAD_A {B0} 102/*
86#define ENCODERS_PAD_B {B7} 103 * Force NKRO
87#define ENCODER_RESOLUTION 2 \ No newline at end of file 104 *
105 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
106 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
107 * makefile for this to work.)
108 *
109 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
110 * until the next keyboard reset.
111 *
112 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
113 * fully operational during normal computer usage.
114 *
115 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
116 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
117 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
118 * power-up.
119 *
120 */
121//#define FORCE_NKRO
122
123/*
124 * Feature disable options
125 * These options are also useful to firmware size reduction.
126 */
127
128/* disable debug print */
129//#define NO_DEBUG
130
131/* disable print */
132//#define NO_PRINT
133
134/* disable action features */
135//#define NO_ACTION_LAYER
136//#define NO_ACTION_TAPPING
137//#define NO_ACTION_ONESHOT
138
139/* disable these deprecated features by default */
140#define NO_ACTION_MACRO
141#define NO_ACTION_FUNCTION
142
143/* Bootmagic Lite key configuration */
144//#define BOOTMAGIC_LITE_ROW 0
145//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/vn66/info.json b/keyboards/vn66/info.json
index 9756905f9..c2fe2a39f 100644
--- a/keyboards/vn66/info.json
+++ b/keyboards/vn66/info.json
@@ -1,18 +1,248 @@
1{ 1{
2 "keyboard_name": "vn66", 2 "keyboard_name": "vn66",
3 "url": "fb.com/groups/VietNamMechKey/", 3 "url": "fb.com/groups/VietNamMechKey/",
4 "maintainer": "qmk", 4 "maintainer": "qmk",
5 "width": 19.25, 5 "width": 19.25,
6 "height": 5.25, 6 "height": 5.25,
7 "layouts": { 7 "layouts": {
8 "LAYOUT_all": { 8 "LAYOUT_all": {
9 "layout": [{"label":"ESC", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Insert", "x":15.25, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"label":"Delete", "x":15.25, "y":1}, {"label":"Caps", "x":0, "y":2, "w":1.25}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"x":13.75, "y":2, "w":1.25}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14.25, "y":3.25}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4}, {"label":"Alt", "x":2.25, "y":4, "w":1.25}, {"x":3.5, "y":4, "w":6}, {"label":"Alt", "x":9.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":10.75, "y":4}, {"label":"Menu", "x":11.75, "y":4, "w":1.25}, {"label":"\u2190", "x":13.25, "y":4.25}, {"label":"\u2193", "x":14.25, "y":4.25}, {"label":"\u2192", "x":15.25, "y":4.25}] 9 "layout": [
10 {"x": 0, "y": 0},
11 {"x": 1, "y": 0},
12 {"x": 2, "y": 0},
13 {"x": 3, "y": 0},
14 {"x": 4, "y": 0},
15 {"x": 5, "y": 0},
16 {"x": 6, "y": 0},
17 {"x": 7, "y": 0},
18 {"x": 8, "y": 0},
19 {"x": 9, "y": 0},
20 {"x": 10, "y": 0},
21 {"x": 11, "y": 0},
22 {"x": 12, "y": 0},
23 {"x": 13, "y": 0},
24 {"x": 14, "y": 0},
25
26 {"x": 15.25, "y": 0},
27
28 {"x": 0, "y": 1, "w": 1.5},
29 {"x": 1.5, "y": 1},
30 {"x": 2.5, "y": 1},
31 {"x": 3.5, "y": 1},
32 {"x": 4.5, "y": 1},
33 {"x": 5.5, "y": 1},
34 {"x": 6.5, "y": 1},
35 {"x": 7.5, "y": 1},
36 {"x": 8.5, "y": 1},
37 {"x": 9.5, "y": 1},
38 {"x": 10.5, "y": 1},
39 {"x": 11.5, "y": 1},
40 {"x": 12.5, "y": 1},
41 {"x": 13.5, "y": 1, "w": 1.5},
42
43 {"x": 15.25, "y": 1},
44
45 {"x": 0, "y": 2, "w": 1.75},
46 {"x": 1.75, "y": 2},
47 {"x": 2.75, "y": 2},
48 {"x": 3.75, "y": 2},
49 {"x": 4.75, "y": 2},
50 {"x": 5.75, "y": 2},
51 {"x": 6.75, "y": 2},
52 {"x": 7.75, "y": 2},
53 {"x": 8.75, "y": 2},
54 {"x": 9.75, "y": 2},
55 {"x": 10.75, "y": 2},
56 {"x": 11.75, "y": 2},
57 {"x": 12.75, "y": 2},
58 {"x": 13.75, "y": 2, "w": 1.25},
59
60 {"x": 0, "y": 3, "w": 1.25},
61 {"x": 1.25, "y": 3},
62 {"x": 2.25, "y": 3},
63 {"x": 3.25, "y": 3},
64 {"x": 4.25, "y": 3},
65 {"x": 5.25, "y": 3},
66 {"x": 6.25, "y": 3},
67 {"x": 7.25, "y": 3},
68 {"x": 8.25, "y": 3},
69 {"x": 9.25, "y": 3},
70 {"x": 10.25, "y": 3},
71 {"x": 11.25, "y": 3},
72 {"x": 12.25, "y": 3, "w": 1.75},
73
74 {"x": 14.25, "y": 3.25},
75
76 {"x": 0, "y": 4, "w": 1.25},
77 {"x": 1.25, "y": 4},
78 {"x": 2.25, "y": 4, "w": 1.25},
79 {"x": 3.5, "y": 4, "w": 6},
80 {"x": 9.5, "y": 4, "w": 1.25},
81 {"x": 10.75, "y": 4},
82 {"x": 11.75, "y": 4, "w": 1.25},
83
84 {"x": 13.25, "y": 4.25},
85 {"x": 14.25, "y": 4.25},
86 {"x": 15.25, "y": 4.25}
87 ]
10 }, 88 },
11 "LAYOUT_ansi": { 89 "LAYOUT_66_ansi": {
12 "layout": [{"label":"ESC", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0, "w":2}, {"label":"Insert", "x":15.25, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"x":13.5, "y":1, "w":1.5}, {"label":"Delete", "x":15.25, "y":1}, {"label":"Caps", "x":0, "y":2, "w":1.25}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2, "w":2.25}, {"x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14.25, "y":3.25}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4}, {"label":"Alt", "x":2.25, "y":4, "w":1.25}, {"x":3.5, "y":4, "w":6}, {"label":"Alt", "x":9.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":10.75, "y":4}, {"label":"Menu", "x":11.75, "y":4, "w":1.25}, {"label":"\u2190", "x":13.25, "y":4.25}, {"label":"\u2193", "x":14.25, "y":4.25}, {"label":"\u2192", "x":15.25, "y":4.25}] 90 "layout": [
91 {"x": 0, "y": 0},
92 {"x": 1, "y": 0},
93 {"x": 2, "y": 0},
94 {"x": 3, "y": 0},
95 {"x": 4, "y": 0},
96 {"x": 5, "y": 0},
97 {"x": 6, "y": 0},
98 {"x": 7, "y": 0},
99 {"x": 8, "y": 0},
100 {"x": 9, "y": 0},
101 {"x": 10, "y": 0},
102 {"x": 11, "y": 0},
103 {"x": 12, "y": 0},
104 {"x": 13, "y": 0, "w": 2},
105
106 {"x": 15.25, "y": 0},
107
108 {"x": 0, "y": 1, "w": 1.5},
109 {"x": 1.5, "y": 1},
110 {"x": 2.5, "y": 1},
111 {"x": 3.5, "y": 1},
112 {"x": 4.5, "y": 1},
113 {"x": 5.5, "y": 1},
114 {"x": 6.5, "y": 1},
115 {"x": 7.5, "y": 1},
116 {"x": 8.5, "y": 1},
117 {"x": 9.5, "y": 1},
118 {"x": 10.5, "y": 1},
119 {"x": 11.5, "y": 1},
120 {"x": 12.5, "y": 1},
121 {"x": 13.5, "y": 1, "w": 1.5},
122
123 {"x": 15.25, "y": 1},
124
125 {"x": 0, "y": 2, "w": 1.75},
126 {"x": 1.75, "y": 2},
127 {"x": 2.75, "y": 2},
128 {"x": 3.75, "y": 2},
129 {"x": 4.75, "y": 2},
130 {"x": 5.75, "y": 2},
131 {"x": 6.75, "y": 2},
132 {"x": 7.75, "y": 2},
133 {"x": 8.75, "y": 2},
134 {"x": 9.75, "y": 2},
135 {"x": 10.75, "y": 2},
136 {"x": 11.75, "y": 2},
137 {"x": 12.75, "y": 2, "w": 2.25},
138
139 {"x": 0, "y": 3, "w": 2.25},
140 {"x": 2.25, "y": 3},
141 {"x": 3.25, "y": 3},
142 {"x": 4.25, "y": 3},
143 {"x": 5.25, "y": 3},
144 {"x": 6.25, "y": 3},
145 {"x": 7.25, "y": 3},
146 {"x": 8.25, "y": 3},
147 {"x": 9.25, "y": 3},
148 {"x": 10.25, "y": 3},
149 {"x": 11.25, "y": 3},
150 {"x": 12.25, "y": 3, "w": 1.75},
151
152 {"x": 14.25, "y": 3.25},
153
154 {"x": 0, "y": 4, "w": 1.25},
155 {"x": 1.25, "y": 4},
156 {"x": 2.25, "y": 4, "w": 1.25},
157 {"x": 3.5, "y": 4, "w": 6},
158 {"x": 9.5, "y": 4, "w": 1.25},
159 {"x": 10.75, "y": 4},
160 {"x": 11.75, "y": 4, "w": 1.25},
161
162 {"x": 13.25, "y": 4.25},
163 {"x": 14.25, "y": 4.25},
164 {"x": 15.25, "y": 4.25}
165 ]
13 }, 166 },
14 "LAYOUT_iso": { 167 "LAYOUT_66_iso": {
15 "layout": [{"label":"ESC", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0, "w":2}, {"label":"Insert", "x":15.25, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Delete", "x":15.25, "y":1}, {"label":"Caps", "x":0, "y":2, "w":1.25}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14.25, "y":3.25}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4}, {"label":"Alt", "x":2.25, "y":4, "w":1.25}, {"x":3.5, "y":4, "w":6}, {"label":"Alt", "x":9.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":10.75, "y":4}, {"label":"Menu", "x":11.75, "y":4, "w":1.25}, {"label":"\u2190", "x":13.25, "y":4.25}, {"label":"\u2193", "x":14.25, "y":4.25}, {"label":"\u2192", "x":15.25, "y":4.25}] 168 "layout": [
169 {"x": 0, "y": 0},
170 {"x": 1, "y": 0},
171 {"x": 2, "y": 0},
172 {"x": 3, "y": 0},
173 {"x": 4, "y": 0},
174 {"x": 5, "y": 0},
175 {"x": 6, "y": 0},
176 {"x": 7, "y": 0},
177 {"x": 8, "y": 0},
178 {"x": 9, "y": 0},
179 {"x": 10, "y": 0},
180 {"x": 11, "y": 0},
181 {"x": 12, "y": 0},
182 {"x": 13, "y": 0, "w": 2},
183
184 {"x": 15.25, "y": 0},
185
186 {"x": 0, "y": 1, "w": 1.5},
187 {"x": 1.5, "y": 1},
188 {"x": 2.5, "y": 1},
189 {"x": 3.5, "y": 1},
190 {"x": 4.5, "y": 1},
191 {"x": 5.5, "y": 1},
192 {"x": 6.5, "y": 1},
193 {"x": 7.5, "y": 1},
194 {"x": 8.5, "y": 1},
195 {"x": 9.5, "y": 1},
196 {"x": 10.5, "y": 1},
197 {"x": 11.5, "y": 1},
198 {"x": 12.5, "y": 1},
199
200 {"x": 15.25, "y": 1},
201
202 {"x": 0, "y": 2, "w": 1.75},
203 {"x": 1.75, "y": 2},
204 {"x": 2.75, "y": 2},
205 {"x": 3.75, "y": 2},
206 {"x": 4.75, "y": 2},
207 {"x": 5.75, "y": 2},
208 {"x": 6.75, "y": 2},
209 {"x": 7.75, "y": 2},
210 {"x": 8.75, "y": 2},
211 {"x": 9.75, "y": 2},
212 {"x": 10.75, "y": 2},
213 {"x": 11.75, "y": 2},
214 {"x": 12.75, "y": 2},
215
216 {"x": 13.75, "y": 1, "w": 1.25, "h": 2},
217
218 {"x": 0, "y": 3, "w": 1.25},
219 {"x": 1.25, "y": 3},
220 {"x": 2.25, "y": 3},
221 {"x": 3.25, "y": 3},
222 {"x": 4.25, "y": 3},
223 {"x": 5.25, "y": 3},
224 {"x": 6.25, "y": 3},
225 {"x": 7.25, "y": 3},
226 {"x": 8.25, "y": 3},
227 {"x": 9.25, "y": 3},
228 {"x": 10.25, "y": 3},
229 {"x": 11.25, "y": 3},
230 {"x": 12.25, "y": 3, "w": 1.75},
231
232 {"x": 14.25, "y": 3.25},
233
234 {"x": 0, "y": 4, "w": 1.25},
235 {"x": 1.25, "y": 4},
236 {"x": 2.25, "y": 4, "w": 1.25},
237 {"x": 3.5, "y": 4, "w": 6},
238 {"x": 9.5, "y": 4, "w": 1.25},
239 {"x": 10.75, "y": 4},
240 {"x": 11.75, "y": 4, "w": 1.25},
241
242 {"x": 13.25, "y": 4.25},
243 {"x": 14.25, "y": 4.25},
244 {"x": 15.25, "y": 4.25}
245 ]
16 } 246 }
17 } 247 }
18} \ No newline at end of file 248}
diff --git a/keyboards/vn66/keymaps/default/config.h b/keyboards/vn66/keymaps/default/config.h
deleted file mode 100644
index 348d7c551..000000000
--- a/keyboards/vn66/keymaps/default/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
1/* Copyright 2019 HnahKB
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// place overrides here
diff --git a/keyboards/vn66/keymaps/default/keymap.c b/keyboards/vn66/keymaps/default/keymap.c
index df2d89512..cf7ed98ef 100644
--- a/keyboards/vn66/keymaps/default/keymap.c
+++ b/keyboards/vn66/keymaps/default/keymap.c
@@ -13,45 +13,45 @@
13 * You should have received a copy of the GNU General Public License 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/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16
16#include QMK_KEYBOARD_H 17#include QMK_KEYBOARD_H
17 18
18enum hnah_layers{ 19enum layer_names {
19 _QWERTY, 20 _QWERTY,
20 _LOWER 21 _LOWER
21}; 22};
22 23
23#define LOWER MO(_LOWER) 24#define LOWER MO(_LOWER)
24 25
25
26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
27 [_QWERTY] = LAYOUT_all( /* Base */ 27 [_QWERTY] = LAYOUT_all( /* Base */
28 GRAVE_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_DEL, KC_INS, 28 KC_GESC, 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_DEL, KC_INS,
29 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_DEL, 29 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_DEL,
30 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_NUHS, KC_ENT, 30 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_NUHS, KC_ENT,
31 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, 31 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
32 KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, LOWER, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT 32 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, LOWER, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
33 ), 33 ),
34 [_LOWER] = LAYOUT_all( /* Base */ 34 [_LOWER] = LAYOUT_all( /* Base */
35 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, 35 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
36 KC_TRNS, BL_STEP, 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, 36 _______, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
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, 37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
38 KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_COMM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 38 _______, _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______,
39 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
40 ), 40 )
41}; 41};
42 42
43void encoder_update_user(uint8_t index, bool clockwise) { 43void encoder_update_user(uint8_t index, bool clockwise) {
44 if (clockwise == 0) { 44 if (clockwise == 0) {
45 #ifdef MOUSEKEY_ENABLE 45#ifdef MOUSEKEY_ENABLE
46 tap_code(KC_MS_WH_DOWN); 46 tap_code(KC_MS_WH_DOWN);
47 #else 47#else
48 tap_code(KC_VOLD); 48 tap_code(KC_VOLD);
49 #endif 49#endif
50 } else { 50 } else {
51 #ifdef MOUSEKEY_ENABLE 51#ifdef MOUSEKEY_ENABLE
52 tap_code(KC_MS_WH_UP); 52 tap_code(KC_MS_WH_UP);
53 #else 53#else
54 tap_code(KC_VOLU); 54 tap_code(KC_VOLU);
55 #endif 55#endif
56 } 56 }
57 } \ No newline at end of file 57}
diff --git a/keyboards/vn66/keymaps/default/readme.md b/keyboards/vn66/keymaps/default/readme.md
index 5c8f558c0..f6119fbc8 100644
--- a/keyboards/vn66/keymaps/default/readme.md
+++ b/keyboards/vn66/keymaps/default/readme.md
@@ -1 +1 @@
# The default keymap for vn66 \ No newline at end of file # The default keymap for vn66
diff --git a/keyboards/vn66/readme.md b/keyboards/vn66/readme.md
index 0ab5b7504..9b043cb08 100644
--- a/keyboards/vn66/readme.md
+++ b/keyboards/vn66/readme.md
@@ -1,15 +1,19 @@
1# vn66 1# VN66
2 2
3![vn66](https://i.imgur.com/Eo28suI.jpg) 3![vn66](https://i.imgur.com/Eo28suIl.jpg)
4 4
5A compact 60% keyboard for VNMK 5A compact 60% keyboard for VNMK
6 6
7Keyboard Maintainer: VNMK Community 7* Keyboard Maintainer: VNMK Community
8Hardware Supported: VN66 PCB rev.2 8* Hardware Supported: VN66 PCB rev.2
9Hardware Availability: [https://geekhack.org/index.php?topic=101754.0] 9* Hardware Availability: https://geekhack.org/index.php?topic=101754.0
10 10
11Make example for this keyboard (after setting up your build environment): 11Make example for this keyboard (after setting up your build environment):
12 12
13 make vn66:default 13 make vn66:default
14 14
15Flashing example for this keyboard:
16
17 make vn66:default:flash
18
15See 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). 19See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/vn66/rules.mk b/keyboards/vn66/rules.mk
index 6575b3fd6..c765aa74c 100644
--- a/keyboards/vn66/rules.mk
+++ b/keyboards/vn66/rules.mk
@@ -2,20 +2,13 @@
2MCU = atmega32u4 2MCU = atmega32u4
3 3
4# Bootloader selection 4# Bootloader selection
5# Teensy halfkay
6# Pro Micro caterina
7# Atmel DFU atmel-dfu
8# LUFA DFU lufa-dfu
9# QMK DFU qmk-dfu
10# ATmega32A bootloadHID
11# ATmega328P USBasp
12BOOTLOADER = atmel-dfu 5BOOTLOADER = atmel-dfu
13 6
14# Build Options 7# Build Options
15# change yes to no to disable 8# change yes to no to disable
16# 9#
17BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration 10BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
18MOUSEKEY_ENABLE = no # Mouse keys 11MOUSEKEY_ENABLE = no # Mouse keys
19EXTRAKEY_ENABLE = yes # Audio control and System control 12EXTRAKEY_ENABLE = yes # Audio control and System control
20CONSOLE_ENABLE = yes # Console for debug 13CONSOLE_ENABLE = yes # Console for debug
21COMMAND_ENABLE = yes # Commands for debug and configuration 14COMMAND_ENABLE = yes # Commands for debug and configuration
@@ -23,12 +16,10 @@ COMMAND_ENABLE = yes # Commands for debug and configuration
23SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
24# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
25NKRO_ENABLE = no # USB Nkey Rollover 18NKRO_ENABLE = no # USB Nkey Rollover
26BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality 19BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
27RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow 20RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
28MIDI_ENABLE = no # MIDI support 21BLUETOOTH_ENABLE = no # Enable Bluetooth
29UNICODE_ENABLE = no # Unicode 22AUDIO_ENABLE = no # Audio output
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34ENCODER_ENABLE = yes 23ENCODER_ENABLE = yes
24
25LAYOUTS = 66_ansi 66_iso
diff --git a/keyboards/vn66/vn66.c b/keyboards/vn66/vn66.c
index 122047468..77fe23aef 100644
--- a/keyboards/vn66/vn66.c
+++ b/keyboards/vn66/vn66.c
@@ -13,24 +13,22 @@
13 * You should have received a copy of the GNU General Public License 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/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16
16#include "vn66.h" 17#include "vn66.h"
17 18
18void matrix_init_kb(void) { 19void matrix_init_kb(void) {
19 led_init_ports(); 20 led_init_ports();
20 matrix_init_user(); 21 matrix_init_user();
21}; 22}
22 23
23void led_init_ports(void) { 24void led_init_ports(void) {
24 setPinOutput(E6); 25 setPinOutput(E6);
25} 26}
26 27
27void led_set_kb(uint8_t usb_led) { 28bool led_update_kb(led_t led_state) {
28 if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { 29 if (led_update_user(led_state)) {
29 // Turn Caps Lock LED on 30 writePin(E6, !led_state.caps_lock);
30 writePinLow(E6); 31 }
31 } else { 32
32 // Turn Caps Lock LED off 33 return true;
33 writePinHigh(E6);
34 }
35 led_set_user(usb_led);
36} 34}
diff --git a/keyboards/vn66/vn66.h b/keyboards/vn66/vn66.h
index 8e4c17641..c8a356fdb 100644
--- a/keyboards/vn66/vn66.h
+++ b/keyboards/vn66/vn66.h
@@ -13,10 +13,13 @@
13 * You should have received a copy of the GNU General Public License 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/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16
16#pragma once 17#pragma once
17 18
18#include "quantum.h" 19#include "quantum.h"
19 20
21#define XXX KC_NO
22
20/* This a shortcut to help you visually see your layout. 23/* This a shortcut to help you visually see your layout.
21 * 24 *
22 * The first section contains all of the arguments representing the physical 25 * The first section contains all of the arguments representing the physical
@@ -26,45 +29,46 @@
26 * represents the switch matrix. 29 * represents the switch matrix.
27 */ 30 */
28#define LAYOUT_all( \ 31#define LAYOUT_all( \
29 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k4d, k4c,\ 32 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k4D, k4C, \
30 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k4b,\ 33 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k4B, \
31 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ 34 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, \
32 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ 35 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, \
33 k40, k41, k42, k44, k45, k46, k47, k48, k49, k4a \ 36 k40, k41, k42, k44, k45, k46, k47, k48, k49, k4A \
34) \ 37) { \
35{ \ 38 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D }, \
36 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d }, \ 39 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D }, \
37 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d }, \ 40 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D }, \
38 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d }, \ 41 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D }, \
39 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d }, \ 42 { k40, k41, k42, XXX, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D } \
40 { k40, k41, k42, KC_NO, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d }, \
41} 43}
42 44
43#define LAYOUT_ansi( \ 45#define LAYOUT_66_ansi( \
44 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k4c,\ 46 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k4C, \
45 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k4b,\ 47 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k4B, \
46 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ 48 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2D, \
47 k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ 49 k30, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, \
48 k40, k41, k42, k44, k45, k46, k47, k48, k49, k4a \ 50 k40, k41, k42, k44, k45, k46, k47, k48, k49, k4A \
49) LAYOUT_all( \ 51) { \
50 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, KC_NO, k4c,\ 52 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D }, \
51 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k4b,\ 53 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D }, \
52 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, KC_NO, k2d, \ 54 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, XXX, k2D }, \
53 k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ 55 { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D }, \
54 k40, k41, k42, k44, k45, k46, k47, k48, k49, k4a \ 56 { k40, k41, k42, XXX, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, XXX } \
55) 57}
56 58
57#define LAYOUT_iso( \ 59#define LAYOUT_66_iso( \
58 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k4c,\ 60 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k4C, \
59 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k4b,\ 61 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k4B, \
60 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ 62 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, \
61 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ 63 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, \
62 k40, k41, k42, k44, k45, k46, k47, k48, k49, k4a \ 64 k40, k41, k42, k44, k45, k46, k47, k48, k49, k4A \
63) LAYOUT_all( \ 65) { \
64 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, KC_NO, k4c,\ 66 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D }, \
65 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, KC_NO, k4b,\ 67 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, XXX }, \
66 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ 68 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D }, \
67 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ 69 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D }, \
68 k40, k41, k42, k44, k45, k46, k47, k48, k49, k4a \ 70 { k40, k41, k42, XXX, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, XXX } \
69) 71}
70 72
73#define LAYOUT_ansi LAYOUT_66_ansi
74#define LAYOUT_iso LAYOUT_66_iso