diff --git a/keyboards/novelkeys/nk65/keymaps/vial/config.h b/keyboards/novelkeys/nk65/keymaps/vial/config.h
new file mode 100644
index 0000000000..21016d617c
--- /dev/null
+++ b/keyboards/novelkeys/nk65/keymaps/vial/config.h
@@ -0,0 +1,8 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#pragma once
+
+#define VIAL_KEYBOARD_UID {0x9A, 0x3E, 0x7B, 0x4C, 0x5D, 0x6F, 0x8E, 0x1A}
+
+#define VIAL_UNLOCK_COMBO_ROWS { 0, 2 }
+#define VIAL_UNLOCK_COMBO_COLS { 0, 13 }
diff --git a/keyboards/novelkeys/nk65/keymaps/vial/keymap.c b/keyboards/novelkeys/nk65/keymaps/vial/keymap.c
new file mode 100644
index 0000000000..3a043cbfe7
--- /dev/null
+++ b/keyboards/novelkeys/nk65/keymaps/vial/keymap.c
@@ -0,0 +1,46 @@
+/* Copyright 2019 Yiancar
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = LAYOUT_65_ansi( /* Base */
+ QK_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_HOME,
+ 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_PGUP,
+ 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_PGDN,
+ 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_UP, KC_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
+
+[1] = LAYOUT_65_ansi( /* FN */
+ KC_GRV, 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_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, QK_BOOT, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S1_DEC, S1_INC, S2_DEC, S2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, BR_DEC, BR_INC, ES_DEC, ES_INC, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+[2] = LAYOUT_65_ansi( /* Empty for dynamic keymaps */
+ 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_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_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),
+
+[3] = LAYOUT_65_ansi( /* Empty for dynamic keymaps */
+ 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_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_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),
+};
diff --git a/keyboards/novelkeys/nk65/keymaps/vial/readme.md b/keyboards/novelkeys/nk65/keymaps/vial/readme.md
new file mode 100644
index 0000000000..9fdf316410
--- /dev/null
+++ b/keyboards/novelkeys/nk65/keymaps/vial/readme.md
@@ -0,0 +1,40 @@
+# Vial Support for NK65 Entry Edition
+
+This keymap adds Vial support to the NK65 v1.0-v1.3 revision keyboard.
+
+## Features
+
+- Full Vial support for dynamic keymap editing
+- Wilba.tech RGB backlight controls (brightness, effects, colors, speed)
+- VIA compatibility
+- 4 configurable layers
+
+## Default RGB Control Keys (Layer 1)
+
+- **Z/X**: Change effect (EF_DEC/EF_INC)
+- **C/V**: Adjust Color 1 Hue (H1_DEC/H1_INC)
+- **B/N**: Adjust Color 2 Hue (H2_DEC/H2_INC)
+- **M/,**: Adjust Brightness (BR_DEC/BR_INC)
+- **./Slash**: Adjust Effect Speed (ES_DEC/ES_INC)
+- **F/G**: Adjust Color 1 Saturation (S1_DEC/S1_INC)
+- **T/Y**: Adjust Color 2 Saturation (S2_DEC/S2_INC)
+
+## Build
+
+ make novelkeys/nk65:vial
+
+## Flash
+
+To flash the firmware:
+
+1. Unplug the keyboard
+2. Hold Escape
+3. Plug in the keyboard (while still holding Escape)
+4. The keyboard will enter bootloader mode
+5. Flash using QMK Toolbox or: `make novelkeys/nk65:vial:flash`
+
+## Notes
+
+- This keymap uses standard USB endpoints for optimal latency
+- For macOS Globe key support with shared USB endpoints, use the `vial_globe` keymap instead
+- RGB keycodes appear in the "User" section of the Vial configurator
diff --git a/keyboards/novelkeys/nk65/keymaps/vial/rules.mk b/keyboards/novelkeys/nk65/keymaps/vial/rules.mk
new file mode 100644
index 0000000000..46f9f1360f
--- /dev/null
+++ b/keyboards/novelkeys/nk65/keymaps/vial/rules.mk
@@ -0,0 +1,3 @@
+VIA_ENABLE = yes
+VIAL_ENABLE = yes
+LTO_ENABLE = yes
diff --git a/keyboards/novelkeys/nk65/keymaps/vial/vial.json b/keyboards/novelkeys/nk65/keymaps/vial/vial.json
new file mode 100644
index 0000000000..6f7b7c77aa
--- /dev/null
+++ b/keyboards/novelkeys/nk65/keymaps/vial/vial.json
@@ -0,0 +1,45 @@
+{
+ "name": "NK65 Entry Edition",
+ "vendorId": "0x8968",
+ "productId": "0x4E4B",
+ "lighting": "wt_rgb_backlight",
+ "matrix": {
+ "rows": 5,
+ "cols": 15
+ },
+ "customKeycodes": [
+ {"name": "Brightness +", "title": "Brightness Increase", "shortName": "BR_INC"},
+ {"name": "Brightness -", "title": "Brightness Decrease", "shortName": "BR_DEC"},
+ {"name": "Effect +", "title": "Effect Increase", "shortName": "EF_INC"},
+ {"name": "Effect -", "title": "Effect Decrease", "shortName": "EF_DEC"},
+ {"name": "Effect Speed +", "title": "Effect Speed Increase", "shortName": "ES_INC"},
+ {"name": "Effect Speed -", "title": "Effect Speed Decrease", "shortName": "ES_DEC"},
+ {"name": "Color 1 Hue +", "title": "Color 1 Hue Increase", "shortName": "H1_INC"},
+ {"name": "Color 1 Hue -", "title": "Color 1 Hue Decrease", "shortName": "H1_DEC"},
+ {"name": "Color 1 Sat +", "title": "Color 1 Saturation Increase", "shortName": "S1_INC"},
+ {"name": "Color 1 Sat -", "title": "Color 1 Saturation Decrease", "shortName": "S1_DEC"},
+ {"name": "Color 2 Hue +", "title": "Color 2 Hue Increase", "shortName": "H2_INC"},
+ {"name": "Color 2 Hue -", "title": "Color 2 Hue Decrease", "shortName": "H2_DEC"},
+ {"name": "Color 2 Sat +", "title": "Color 2 Saturation Increase", "shortName": "S2_INC"},
+ {"name": "Color 2 Sat -", "title": "Color 2 Saturation Decrease", "shortName": "S2_DEC"}
+ ],
+ "layouts": {
+ "keymap": [
+ [
+ "0,0", "0,1", "0,2", "0,3", "0,4", "0,5", "0,6", "0,7", "0,8", "0,9", "0,10", "0,11", "0,12", {"w": 2}, "0,13", "0,14"
+ ],
+ [
+ {"w": 1.5}, "1,0", "1,1", "1,2", "1,3", "1,4", "1,5", "1,6", "1,7", "1,8", "1,9", "1,10", "1,11", "1,12", {"w": 1.5}, "2,12", "1,14"
+ ],
+ [
+ {"w": 1.75}, "2,0", "2,1", "2,2", "2,3", "2,4", "2,5", "2,6", "2,7", "2,8", "2,9", "2,10", "2,11", {"w": 2.25}, "2,13", "2,14"
+ ],
+ [
+ {"w": 2.25}, "3,0", "3,2", "3,3", "3,4", "3,5", "3,6", "3,7", "3,8", "3,9", "3,10", "3,11", {"w": 1.75}, "3,12", "3,13", "3,14"
+ ],
+ [
+ {"w": 1.25}, "4,0", {"w": 1.25}, "4,1", {"w": 1.25}, "4,2", {"w": 6.25}, "4,6", "4,9", "4,10", "4,11", "4,12", "4,13", "4,14"
+ ]
+ ]
+ }
+}
diff --git a/keyboards/novelkeys/nk65/keymaps/vial_globe/config.h b/keyboards/novelkeys/nk65/keymaps/vial_globe/config.h
new file mode 100644
index 0000000000..21016d617c
--- /dev/null
+++ b/keyboards/novelkeys/nk65/keymaps/vial_globe/config.h
@@ -0,0 +1,8 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#pragma once
+
+#define VIAL_KEYBOARD_UID {0x9A, 0x3E, 0x7B, 0x4C, 0x5D, 0x6F, 0x8E, 0x1A}
+
+#define VIAL_UNLOCK_COMBO_ROWS { 0, 2 }
+#define VIAL_UNLOCK_COMBO_COLS { 0, 13 }
diff --git a/keyboards/novelkeys/nk65/keymaps/vial_globe/keymap.c b/keyboards/novelkeys/nk65/keymaps/vial_globe/keymap.c
new file mode 100644
index 0000000000..00dfb88a2d
--- /dev/null
+++ b/keyboards/novelkeys/nk65/keymaps/vial_globe/keymap.c
@@ -0,0 +1,62 @@
+/* Copyright 2019 Yiancar
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include QMK_KEYBOARD_H
+
+// Custom keycodes for Vial
+enum custom_keycodes {
+ GLOBE = QK_KB_14 // macOS Globe/Fn key (after the 14 RGB keycodes)
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = LAYOUT_65_ansi( /* Base */
+ QK_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_HOME,
+ 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_PGUP,
+ 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_PGDN,
+ 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_UP, KC_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
+
+[1] = LAYOUT_65_ansi( /* FN */
+ KC_GRV, 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_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, QK_BOOT, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S1_DEC, S1_INC, S2_DEC, S2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, BR_DEC, BR_INC, ES_DEC, ES_INC, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+[2] = LAYOUT_65_ansi( /* Empty for dynamic keymaps */
+ 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_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_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),
+
+[3] = LAYOUT_65_ansi( /* Empty for dynamic keymaps */
+ 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_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_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),
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case GLOBE:
+ // Send Globe key as consumer control (0x029D - AC Keyboard Layout Select)
+ // Based on: https://skip.house/blog/qmk-globe-key
+ host_consumer_send(record->event.pressed ? 0x029D : 0);
+ return false;
+ }
+ return true;
+}
diff --git a/keyboards/novelkeys/nk65/keymaps/vial_globe/readme.md b/keyboards/novelkeys/nk65/keymaps/vial_globe/readme.md
new file mode 100644
index 0000000000..90ead4e731
--- /dev/null
+++ b/keyboards/novelkeys/nk65/keymaps/vial_globe/readme.md
@@ -0,0 +1,56 @@
+# Vial Support for NK65 Entry Edition (with macOS Globe Key)
+
+This keymap adds Vial support with macOS Globe key functionality to the NK65 v1.0-v1.3 keyboard.
+
+## Features
+
+- Full Vial support for dynamic keymap editing
+- Wilba.tech RGB backlight controls (brightness, effects, colors, speed)
+- VIA compatibility
+- 4 configurable layers
+- **macOS Globe key support** - assignable custom keycode for Globe/Fn functionality
+
+## macOS Globe Key
+
+This keymap includes a custom "Globe" keycode that can be assigned to any key through the Vial configurator. The Globe key enables macOS-specific shortcuts such as:
+
+- **Globe + E**: Emoji picker
+- **Globe + C**: Control Center
+- **Globe + N**: Opens Notifications
+- **Globe + H**: Shows/Hides Desktop
+- **Globe + M**: Navigate menu bar with arrow keys
+- **Globe + A**: Navigate dock with arrow keys
+- Others, but likely not all.
+
+The Globe keycode appears in the "User" section of the Vial configurator.
+
+## Default RGB Control Keys (Layer 1)
+
+- **Z/X**: Change effect (EF_DEC/EF_INC)
+- **C/V**: Adjust Color 1 Hue (H1_DEC/H1_INC)
+- **B/N**: Adjust Color 2 Hue (H2_DEC/H2_INC)
+- **M/,**: Adjust Brightness (BR_DEC/BR_INC)
+- **./Slash**: Adjust Effect Speed (ES_DEC/ES_INC)
+- **F/G**: Adjust Color 1 Saturation (S1_DEC/S1_INC)
+- **T/Y**: Adjust Color 2 Saturation (S2_DEC/S2_INC)
+
+## Build
+
+ make novelkeys/nk65:vial_globe
+
+## Flash
+
+To flash the firmware:
+
+1. Unplug the keyboard
+2. Hold Escape
+3. Plug in the keyboard (while still holding Escape)
+4. The keyboard will enter bootloader mode
+5. Flash using QMK Toolbox or: `make novelkeys/nk65:vial_globe:flash`
+
+## Notes
+
+- This keymap uses shared USB endpoints (`KEYBOARD_SHARED_EP = yes`) to enable Globe key functionality
+- Shared endpoints allow both regular keypresses and consumer control codes (like Globe key) to be sent together
+- In case of unexpected behavior, use the vial keymap instead for standard Vial support without Globe key or shared mode
+- RGB keycodes and Globe keycode appear in the "User" section of the Vial configurator
diff --git a/keyboards/novelkeys/nk65/keymaps/vial_globe/rules.mk b/keyboards/novelkeys/nk65/keymaps/vial_globe/rules.mk
new file mode 100644
index 0000000000..bbfa256f10
--- /dev/null
+++ b/keyboards/novelkeys/nk65/keymaps/vial_globe/rules.mk
@@ -0,0 +1,4 @@
+VIA_ENABLE = yes
+VIAL_ENABLE = yes
+LTO_ENABLE = yes
+KEYBOARD_SHARED_EP = yes
diff --git a/keyboards/novelkeys/nk65/keymaps/vial_globe/vial.json b/keyboards/novelkeys/nk65/keymaps/vial_globe/vial.json
new file mode 100644
index 0000000000..9d8e9bf694
--- /dev/null
+++ b/keyboards/novelkeys/nk65/keymaps/vial_globe/vial.json
@@ -0,0 +1,46 @@
+{
+ "name": "NK65 Entry Edition",
+ "vendorId": "0x8968",
+ "productId": "0x4E4B",
+ "lighting": "wt_rgb_backlight",
+ "matrix": {
+ "rows": 5,
+ "cols": 15
+ },
+ "customKeycodes": [
+ {"name": "Brightness +", "title": "Brightness Increase", "shortName": "BR_INC"},
+ {"name": "Brightness -", "title": "Brightness Decrease", "shortName": "BR_DEC"},
+ {"name": "Effect +", "title": "Effect Increase", "shortName": "EF_INC"},
+ {"name": "Effect -", "title": "Effect Decrease", "shortName": "EF_DEC"},
+ {"name": "Effect Speed +", "title": "Effect Speed Increase", "shortName": "ES_INC"},
+ {"name": "Effect Speed -", "title": "Effect Speed Decrease", "shortName": "ES_DEC"},
+ {"name": "Color 1 Hue +", "title": "Color 1 Hue Increase", "shortName": "H1_INC"},
+ {"name": "Color 1 Hue -", "title": "Color 1 Hue Decrease", "shortName": "H1_DEC"},
+ {"name": "Color 1 Sat +", "title": "Color 1 Saturation Increase", "shortName": "S1_INC"},
+ {"name": "Color 1 Sat -", "title": "Color 1 Saturation Decrease", "shortName": "S1_DEC"},
+ {"name": "Color 2 Hue +", "title": "Color 2 Hue Increase", "shortName": "H2_INC"},
+ {"name": "Color 2 Hue -", "title": "Color 2 Hue Decrease", "shortName": "H2_DEC"},
+ {"name": "Color 2 Sat +", "title": "Color 2 Saturation Increase", "shortName": "S2_INC"},
+ {"name": "Color 2 Sat -", "title": "Color 2 Saturation Decrease", "shortName": "S2_DEC"},
+ {"name": "Globe", "title": "macOS Globe/Fn Key", "shortName": "GLOBE"}
+ ],
+ "layouts": {
+ "keymap": [
+ [
+ "0,0", "0,1", "0,2", "0,3", "0,4", "0,5", "0,6", "0,7", "0,8", "0,9", "0,10", "0,11", "0,12", {"w": 2}, "0,13", "0,14"
+ ],
+ [
+ {"w": 1.5}, "1,0", "1,1", "1,2", "1,3", "1,4", "1,5", "1,6", "1,7", "1,8", "1,9", "1,10", "1,11", "1,12", {"w": 1.5}, "2,12", "1,14"
+ ],
+ [
+ {"w": 1.75}, "2,0", "2,1", "2,2", "2,3", "2,4", "2,5", "2,6", "2,7", "2,8", "2,9", "2,10", "2,11", {"w": 2.25}, "2,13", "2,14"
+ ],
+ [
+ {"w": 2.25}, "3,0", "3,2", "3,3", "3,4", "3,5", "3,6", "3,7", "3,8", "3,9", "3,10", "3,11", {"w": 1.75}, "3,12", "3,13", "3,14"
+ ],
+ [
+ {"w": 1.25}, "4,0", {"w": 1.25}, "4,1", {"w": 1.25}, "4,2", {"w": 6.25}, "4,6", "4,9", "4,10", "4,11", "4,12", "4,13", "4,14"
+ ]
+ ]
+ }
+}
diff --git a/keyboards/novelkeys/nk65/readme.md b/keyboards/novelkeys/nk65/readme.md
index 38f66500b9..d09309081a 100755
--- a/keyboards/novelkeys/nk65/readme.md
+++ b/keyboards/novelkeys/nk65/readme.md
@@ -3,11 +3,11 @@ NK65

-This is a standard fixed layout 65% PCB. It supports VIA and full per-key RGB.
+This is a standard fixed layout 65% PCB. It supports VIA, Vial, and full per-key RGB.
-Keyboard Maintainer: [Yiancar](http://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar)
-Hardware Supported: A 65% keyboard with STM32F303CC
-Hardware Availability: https://novelkeys.xyz/
+Keyboard Maintainer: [Yiancar](http://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar)
+Hardware Supported: A 65% keyboard with STM32F303CC
+Hardware Availability: https://novelkeys.xyz/
Due to the RGB implementation, the NK65 is currently not compatible with community layouts.
@@ -19,7 +19,15 @@ NOTE: For PCBs with revision v1.4 or later please use nk65/v1_4 in the make comm
Make example for this keyboard (after setting up your build environment):
- make novelkeys/nk65:via
+ make novelkeys/nk65:default
+
+For Vial support (real-time key remapping via https://vial.rocks):
+
+ make novelkeys/nk65:vial
+
+For Vial support with macOS Globe key functionality:
+
+ make novelkeys/nk65:vial_globe
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).