aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorX-Bows Tech <41098278+XBowsTech@users.noreply.github.com>2021-07-20 09:28:50 +0800
committerGitHub <noreply@github.com>2021-07-19 18:28:50 -0700
commit5ee5280fa1e1c73a283f1939b1abe898dfac0300 (patch)
treeec078b291cf25dbe40036db781131742de38c74b
parent10905a6500ceb380795ad47e7391205f5e06676e (diff)
downloadqmk_firmware-5ee5280fa1e1c73a283f1939b1abe898dfac0300.tar.gz
qmk_firmware-5ee5280fa1e1c73a283f1939b1abe898dfac0300.zip
[Keyboard] Update the XBows/Knight keyboard (#13541)
Co-authored-by: Ryan <fauxpark@gmail.com>
-rw-r--r--keyboards/xbows/knight/config.h77
-rw-r--r--keyboards/xbows/knight/info.json40
-rw-r--r--keyboards/xbows/knight/keymaps/default/config.h43
-rw-r--r--keyboards/xbows/knight/keymaps/default/keymap.c55
-rw-r--r--keyboards/xbows/knight/keymaps/via/config.h64
-rw-r--r--keyboards/xbows/knight/keymaps/via/keymap.c63
-rw-r--r--keyboards/xbows/knight/keymaps/via/rules.mk1
-rw-r--r--keyboards/xbows/knight/knight.c146
-rw-r--r--keyboards/xbows/knight/knight.h52
-rw-r--r--keyboards/xbows/knight/readme.md26
-rw-r--r--keyboards/xbows/knight/rules.mk26
-rw-r--r--keyboards/xbows/knight_plus/info.json4
-rw-r--r--keyboards/xbows/knight_plus/rules.mk3
-rw-r--r--keyboards/xbows/numpad/info.json6
14 files changed, 473 insertions, 133 deletions
diff --git a/keyboards/xbows/knight/config.h b/keyboards/xbows/knight/config.h
index fbe150439..540e29d4d 100644
--- a/keyboards/xbows/knight/config.h
+++ b/keyboards/xbows/knight/config.h
@@ -1,44 +1,51 @@
1/* Copyright 2021 Shulin Huang <mumu@x-bows.com>
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 */
1#pragma once 16#pragma once
17
2#include "config_common.h" 18#include "config_common.h"
3#define VENDOR_ID 0xFEED
4#define PRODUCT_ID 0x1225
5#define DEVICE_VER 0x0001
6#define MANUFACTURER X-BOWS
7#define PRODUCT KNIGHT
8 19
9/* key matrix size */ 20#define VENDOR_ID 0xFEED
10// Rows are doubled-up 21#define PRODUCT_ID 0x1225
11#define MATRIX_ROWS 12 22#define DEVICE_VER 0x0001
12#define MATRIX_COLS 15 23#define MANUFACTURER X-BOWS
24#define PRODUCT KNIGHT
13 25
14// wiring of each half 26#define MATRIX_ROWS 6
15#define MATRIX_ROW_PINS { D2, E6, E2, F7, F6, F5 } 27#define MATRIX_COLS 15
16#define MATRIX_COL_PINS { B0, B1, B2, B3, F4, F1, C6, B6, B5, B4, D7, D6, D4, D5, D3} 28#define MATRIX_ROW_PINS { F7, F6, F5, F4, F1, F0 }
17/* COL2ROW or ROW2COL */ 29#define MATRIX_COL_PINS { B0, B1, B2, B3, B7, D2, D3, D5, D4, D6, D7, B4, B5, B6, C6 }
18#define DIODE_DIRECTION COL2ROW 30#define DIODE_DIRECTION COL2ROW
19 31
20/* define if matrix has ghost */ 32#define DEBOUNCE 3
21//#define MATRIX_HAS_GHOST
22 33
23#define LED_NUM_LOCK_PIN D1 34#ifdef RGB_MATRIX_ENABLE
24#define LED_CAPS_LOCK_PIN C7 35# define RGB_MATRIX_LED_PROCESS_LIMIT 18
25#define LED_PIN_ON_STATE 0 36# define RGB_MATRIX_LED_FLUSH_LIMIT 16
37# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
38# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
39# define RGB_MATRIX_KEYPRESSES
40# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
41# define RGB_MATRIX_CENTER { 92, 43 }
26 42
27/* number of backlight levels */ 43# define DRIVER_ADDR_1 0b1110100
28// #define BACKLIGHT_LEVELS 3 44# define DRIVER_ADDR_2 0b1110110
29#define BACKLIGHT_PIN B7 45# define DRIVER_ADDR_3 0b1110101
30#ifdef BACKLIGHT_PIN 46# define DRIVER_COUNT 3
31#define BACKLIGHT_BREATHING 47# define DRIVER_1_LED_TOTAL 36
32#define BACKLIGHT_LEVELS 3 48# define DRIVER_2_LED_TOTAL 35
49# define DRIVER_3_LED_TOTAL 15
50# define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL + DRIVER_3_LED_TOTAL)
33#endif 51#endif
34/* Set 0 if debouncing isn't needed */
35#define DEBOUNCE 5
36
37/* serial.c configuration for split keyboard */
38#define SOFT_SERIAL_PIN D0
39/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
40#define SPLIT_HAND_PIN F0
41#define LOCKING_SUPPORT_ENABLE
42/* Locking resynchronize hack */
43#define LOCKING_RESYNC_ENABLE
44
diff --git a/keyboards/xbows/knight/info.json b/keyboards/xbows/knight/info.json
index 63ff8d293..439b1741c 100644
--- a/keyboards/xbows/knight/info.json
+++ b/keyboards/xbows/knight/info.json
@@ -1,8 +1,8 @@
1{ 1{
2 "keyboard_name": "knight", 2 "keyboard_name": "KNIGHT",
3 "url": "", 3 "url": "",
4 "maintainer": "xbows", 4 "maintainer": "xbows-qmk",
5 "width": 23, 5 "width": 18,
6 "height": 6.5, 6 "height": 6.5,
7 "layouts": { 7 "layouts": {
8 "LAYOUT": { 8 "LAYOUT": {
@@ -22,10 +22,7 @@
22 {"label":"F12", "x":12.75, "y":0}, 22 {"label":"F12", "x":12.75, "y":0},
23 {"label":"Delete", "x":14, "y":0, "w":2}, 23 {"label":"Delete", "x":14, "y":0, "w":2},
24 {"label":"Print Screen", "x":16, "y":0, "w":2}, 24 {"label":"Print Screen", "x":16, "y":0, "w":2},
25 {"label":"Esc", "x":19, "y":0}, 25
26 {"label":"Tab", "x":20, "y":0},
27 {"label":"Backspace", "x":21, "y":0},
28 {"label":"Fn", "x":22, "y":0},
29 {"label":"~", "x":0, "y":1.5}, 26 {"label":"~", "x":0, "y":1.5},
30 {"label":"!", "x":1, "y":1.5}, 27 {"label":"!", "x":1, "y":1.5},
31 {"label":"@", "x":2, "y":1.5}, 28 {"label":"@", "x":2, "y":1.5},
@@ -40,10 +37,7 @@
40 {"label":"_", "x":14, "y":1.5}, 37 {"label":"_", "x":14, "y":1.5},
41 {"label":"+", "x":15, "y":1.5}, 38 {"label":"+", "x":15, "y":1.5},
42 {"label":"Backspace", "x":16, "y":1.5, "w":2}, 39 {"label":"Backspace", "x":16, "y":1.5, "w":2},
43 {"label":"Num Lock", "x":19, "y":1.5}, 40
44 {"label":"/", "x":20, "y":1.5},
45 {"label":"*", "x":21, "y":1.5},
46 {"label":"-", "x":22, "y":1.5},
47 {"label":"Tab", "x":0, "y":2.5}, 41 {"label":"Tab", "x":0, "y":2.5},
48 {"label":"Q", "x":1, "y":2.5}, 42 {"label":"Q", "x":1, "y":2.5},
49 {"label":"W", "x":2, "y":2.5}, 43 {"label":"W", "x":2, "y":2.5},
@@ -59,17 +53,14 @@
59 {"label":"}", "x":15, "y":2.5}, 53 {"label":"}", "x":15, "y":2.5},
60 {"label":"|", "x":16, "y":2.5}, 54 {"label":"|", "x":16, "y":2.5},
61 {"label":"Page Up", "x":17, "y":2.5}, 55 {"label":"Page Up", "x":17, "y":2.5},
62 {"label":"7", "x":19, "y":2.5}, 56
63 {"label":"8", "x":20, "y":2.5},
64 {"label":"9", "x":21, "y":2.5},
65 {"label":"+", "x":22, "y":2.5},
66 {"label":"Caps Lock", "x":0, "y":3.5}, 57 {"label":"Caps Lock", "x":0, "y":3.5},
67 {"label":"A", "x":1, "y":3.5}, 58 {"label":"A", "x":1, "y":3.5},
68 {"label":"S", "x":2, "y":3.5}, 59 {"label":"S", "x":2, "y":3.5},
69 {"label":"D", "x":3, "y":3.5}, 60 {"label":"D", "x":3, "y":3.5},
70 {"label":"F", "x":4, "y":3.5}, 61 {"label":"F", "x":4, "y":3.5},
71 {"label":"G", "x":5, "y":3.5}, 62 {"label":"G", "x":5, "y":3.5},
72 {"label":"Backspace", "x":6, "y":3.5, "w":3}, 63 {"label":"Backspace", "x":6.75, "y":3.5, "w":1.5},
73 {"label":"H", "x":9, "y":3.5}, 64 {"label":"H", "x":9, "y":3.5},
74 {"label":"J", "x":10, "y":3.5}, 65 {"label":"J", "x":10, "y":3.5},
75 {"label":"K", "x":11, "y":3.5}, 66 {"label":"K", "x":11, "y":3.5},
@@ -78,17 +69,14 @@
78 {"label":"\"", "x":14, "y":3.5}, 69 {"label":"\"", "x":14, "y":3.5},
79 {"label":"Enter", "x":15, "y":3.5, "w":2}, 70 {"label":"Enter", "x":15, "y":3.5, "w":2},
80 {"label":"Page Down", "x":17, "y":3.5}, 71 {"label":"Page Down", "x":17, "y":3.5},
81 {"label":"4", "x":19, "y":3.5}, 72
82 {"label":"5", "x":20, "y":3.5},
83 {"label":"6", "x":21, "y":3.5},
84 {"label":"+", "x":22, "y":3.5},
85 {"label":"Shift", "x":0, "y":4.5}, 73 {"label":"Shift", "x":0, "y":4.5},
86 {"label":"Z", "x":1, "y":4.5}, 74 {"label":"Z", "x":1, "y":4.5},
87 {"label":"X", "x":2, "y":4.5}, 75 {"label":"X", "x":2, "y":4.5},
88 {"label":"C", "x":3, "y":4.5}, 76 {"label":"C", "x":3, "y":4.5},
89 {"label":"V", "x":4, "y":4.5}, 77 {"label":"V", "x":4, "y":4.5},
90 {"label":"B", "x":5, "y":4.5}, 78 {"label":"B", "x":5, "y":4.5},
91 {"label":"Enter", "x":6, "y":4.5, "w":3}, 79 {"label":"Enter", "x":6.5, "y":4.5, "w":2},
92 {"label":"N", "x":9, "y":4.5}, 80 {"label":"N", "x":9, "y":4.5},
93 {"label":"M", "x":10, "y":4.5}, 81 {"label":"M", "x":10, "y":4.5},
94 {"label":"<", "x":11, "y":4.5}, 82 {"label":"<", "x":11, "y":4.5},
@@ -96,10 +84,7 @@
96 {"label":"?", "x":13, "y":4.5}, 84 {"label":"?", "x":13, "y":4.5},
97 {"label":"Shift", "x":14, "y":4.5}, 85 {"label":"Shift", "x":14, "y":4.5},
98 {"label":"Up", "x":16, "y":4.5}, 86 {"label":"Up", "x":16, "y":4.5},
99 {"label":"1", "x":19, "y":4.5}, 87
100 {"label":"2", "x":20, "y":4.5},
101 {"label":"3", "x":21, "y":4.5},
102 {"label":"Enter", "x":22, "y":4.5, "h":2},
103 {"label":"Ctrl", "x":0, "y":5.5}, 88 {"label":"Ctrl", "x":0, "y":5.5},
104 {"label":"Win", "x":1, "y":5.5}, 89 {"label":"Win", "x":1, "y":5.5},
105 {"label":"Alt", "x":2, "y":5.5, "w":2}, 90 {"label":"Alt", "x":2, "y":5.5, "w":2},
@@ -112,9 +97,8 @@
112 {"label":"Ctrl", "x":14, "y":5.5}, 97 {"label":"Ctrl", "x":14, "y":5.5},
113 {"label":"Left", "x":15, "y":5.5}, 98 {"label":"Left", "x":15, "y":5.5},
114 {"label":"Down", "x":16, "y":5.5}, 99 {"label":"Down", "x":16, "y":5.5},
115 {"label":"Right", "x":17, "y":5.5}, 100 {"label":"Right", "x":17, "y":5.5}
116 {"label":"0", "x":19, "y":5.5, "w":2}, 101
117 {"label":".", "x":21, "y":5.5}
118 ] 102 ]
119 } 103 }
120 } 104 }
diff --git a/keyboards/xbows/knight/keymaps/default/config.h b/keyboards/xbows/knight/keymaps/default/config.h
new file mode 100644
index 000000000..8e1b68f97
--- /dev/null
+++ b/keyboards/xbows/knight/keymaps/default/config.h
@@ -0,0 +1,43 @@
1/* Copyright 2021 Shulin Huang <mumu@x-bows.com>
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#pragma once
17
18#ifdef RGB_MATRIX_ENABLE
19# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT // Sets the default mode, if none has been set
20# define DISABLE_RGB_MATRIX_SOLID_COLOR // Static single hue, no speed support
21# define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Static gradient top to bottom, speed controls how much gradient changes
22# define DISABLE_RGB_MATRIX_BAND_SAT // Single hue band fading saturation scrolling left to right
23# define DISABLE_RGB_MATRIX_BAND_VAL // Single hue band fading brightness scrolling left to right
24# define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades saturation
25# define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAT // Single hue spinning spiral fades saturation
26# define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Full dual gradients scrolling out to in
27# define DISABLE_RGB_MATRIX_CYCLE_SPIRAL // Full gradient spinning spiral around center of keyboard
28
29# define DISABLE_RGB_MATRIX_DIGITAL_RAIN // That famous computer simulation
30# define DISABLE_RGB_MATRIX_TYPING_HEATMAP // How hot is your WPM!
31
32# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out
33# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Hue & value pulse near multiple key hits then fades value out
34# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Hue & value pulse the same column and row of a single key hit then fades value out
35# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Hue & value pulse the same column and row of multiple key hits then fades value out
36# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of a single key hit then fades value out
37# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multiple key hits then fades value out
38//# define DISABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out
39# define DISABLE_RGB_MATRIX_MULTISPLASH // Full gradient & value pulse away from multiple key hits then fades value out
40# define DISABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out
41//# define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out
42
43#endif
diff --git a/keyboards/xbows/knight/keymaps/default/keymap.c b/keyboards/xbows/knight/keymaps/default/keymap.c
index c7db8f3ca..bde212f10 100644
--- a/keyboards/xbows/knight/keymaps/default/keymap.c
+++ b/keyboards/xbows/knight/keymaps/default/keymap.c
@@ -1,18 +1,49 @@
1/* Copyright 2021 Shulin Huang <mumu@x-bows.com>
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 */
1#include QMK_KEYBOARD_H 16#include QMK_KEYBOARD_H
2 17
3const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 /* Keymap VANILLA: (Base Layer) Default Layer
20 *
21 * |---------------------------------------------------------------------------------------------------------------------------------|
22 * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Delete | Prtsc |
23 * |---------------------------------------------------------------------------------------------------------------------------------|
24 * | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace |
25 * |---------------------------------------------------------------------------------------------------------------------------------|
26 * | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ | ] | \ | PgUp |
27 * |---------------------------------------------------------------------------------------------------------------------------------|
28 * | Ctl | A | S | D | F | G | Bksp | H | J | K | L | ; | '" | Enter | PgDn |
29 * |---------------------------------------------------------------------------------------------------------------------------------|
30 * |Shift| Z | X | C | V | B | Enter | N | M | , | . | /? | Shift| | Up |
31 * |---------------------------------------------------------------------------------------------------------------------------------|
32 * |Ctrl | GUI | Alter | Space | Ctrl | Shift | Space | Alter | FN | Ctrl | Lft | Dn | Rig |
33 * |---------------------------------------------------------------------------------------------------------------------------------|
34 */
4 [0] = LAYOUT( 35 [0] = LAYOUT(
5 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, KC_PSCR, KC_ESC , KC_TAB, KC_BSPC, MO(1), 36 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, KC_PSCR,
6 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, KC_NLCK, KC_PSLS, KC_PAST, KC_EQL, 37 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,
7 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_P7, KC_P8, KC_P9, KC_PMNS, 38 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,
8 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_BSPC,KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, KC_P4, KC_P5, KC_P6, KC_PPLS, 39 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_BSPC, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
9 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_ENT, 40 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
10 KC_LCTL, KC_LGUI, KC_LALT,KC_SPC, KC_LCTL, KC_LSFT,KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT), 41 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LCTL, KC_LSFT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
11 [1] = LAYOUT( 42 [1] = LAYOUT(
12 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, KC_PSCR, RESET, KC_TAB, KC_BSPC,KC_TRNS, 43 RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MYCM, KC_MSEL, KC_MAIL, NK_TOGG, EEP_RST,
13 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, KC_NLCK,KC_PSLS,KC_PAST,KC_EQL, 44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NLCK,
14 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_P7, KC_P8, KC_P9, KC_PMNS, 45 RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME,
15 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, BL_STEP,KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, KC_P4, KC_P5, KC_P6, KC_PPLS, 46 KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END,
16 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, RESET, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_ENT, 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_MUTE, KC_VOLU,
17 KC_LCTL, KC_LGUI, KC_SPC,KC_LALT, KC_LCTL, KC_LSFT,KC_SPC, KC_RALT, KC_TRNS,KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_0, KC_PDOT) 48 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MPRV, KC_VOLD, KC_MNXT)
18}; 49};
diff --git a/keyboards/xbows/knight/keymaps/via/config.h b/keyboards/xbows/knight/keymaps/via/config.h
new file mode 100644
index 000000000..4fafee0a9
--- /dev/null
+++ b/keyboards/xbows/knight/keymaps/via/config.h
@@ -0,0 +1,64 @@
1/* Copyright 2021 Shulin Huang <mumu@x-bows.com>
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#pragma once
17
18#ifdef RGB_MATRIX_ENABLE
19# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT // Sets the default mode, if none has been set
20# define DISABLE_RGB_MATRIX_ALPHAS_MODS // Static dual hue, speed is hue for secondary hue
21# define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Static gradient top to bottom, speed controls how much gradient changes
22# define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Static gradient left to right, speed controls how much gradient changes
23//# define DISABLE_RGB_MATRIX_BREATHING // Single hue brightness cycling animation
24# define DISABLE_RGB_MATRIX_BAND_SAT // Single hue band fading saturation scrolling left to right
25# define DISABLE_RGB_MATRIX_BAND_VAL // Single hue band fading brightness scrolling left to right
26# define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades saturation
27# define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness
28# define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT // Single hue spinning spiral fades saturation
29# define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Single hue spinning spiral fades brightness
30//# define DISABLE_RGB_MATRIX_CYCLE_ALL // Full keyboard solid hue cycling through full gradient
31//# define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Full gradient scrolling left to right
32# define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN // Full gradient scrolling top to bottom
33//# define DISABLE_RGB_MATRIX_CYCLE_OUT_IN // Full gradient scrolling out to in
34# define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Full dual gradients scrolling out to in
35# define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Full gradent Chevron shapped scrolling left to right
36# define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL // Full gradient spinning pinwheel around center of keyboard
37# define DISABLE_RGB_MATRIX_CYCLE_SPIRAL // Full gradient spinning spiral around center of keyboard
38# define DISABLE_RGB_MATRIX_DUAL_BEACON // Full gradient spinning around center of keyboard
39//# define DISABLE_RGB_MATRIX_RAINBOW_BEACON // Full tighter gradient spinning around center of keyboard
40# define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Full dual gradients spinning two halfs of keyboard
41# define DISABLE_RGB_MATRIX_RAINDROPS // Randomly changes a single key's hue
42# define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Randomly changes a single key's hue and saturation
43//# define DISABLE_RGB_MATRIX_HUE_BREATHING // Hue shifts up a slight ammount at the same time, then shifts back
44# define DISABLE_RGB_MATRIX_HUE_PENDULUM // Hue shifts up a slight ammount in a wave to the right, then back to the left
45//# define DISABLE_RGB_MATRIX_HUE_WAVE // Hue shifts up a slight ammount and then back down in a wave to the right
46
47# define DISABLE_RGB_MATRIX_DIGITAL_RAIN // That famous computer simulation
48# define DISABLE_RGB_MATRIX_TYPING_HEATMAP // How hot is your WPM!
49
50//# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Pulses keys hit to hue & value then fades value out
51//# define DISABLE_RGB_MATRIX_SOLID_REACTIVE // Static single hue, pulses keys hit to shifted hue then fades to current hue
52# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out
53# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Hue & value pulse near multiple key hits then fades value out
54# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Hue & value pulse the same column and row of a single key hit then fades value out
55# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Hue & value pulse the same column and row of multiple key hits then fades value out
56# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of a single key hit then fades value out
57# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multiple key hits then fades value out
58//# define DISABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out
59# define DISABLE_RGB_MATRIX_MULTISPLASH // Full gradient & value pulse away from multiple key hits then fades value out
60# define DISABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out
61//# define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out
62
63
64#endif
diff --git a/keyboards/xbows/knight/keymaps/via/keymap.c b/keyboards/xbows/knight/keymaps/via/keymap.c
new file mode 100644
index 000000000..dabbc6c9b
--- /dev/null
+++ b/keyboards/xbows/knight/keymaps/via/keymap.c
@@ -0,0 +1,63 @@
1/* Copyright 2021 Shulin Huang <mumu@x-bows.com>
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
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 /* Keymap VANILLA: (Base Layer) Default Layer
20 *
21 * |---------------------------------------------------------------------------------------------------------------------------------|
22 * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Delete | Prtsc |
23 * |---------------------------------------------------------------------------------------------------------------------------------|
24 * | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace |
25 * |---------------------------------------------------------------------------------------------------------------------------------|
26 * | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ | ] | \ | PgUp |
27 * |---------------------------------------------------------------------------------------------------------------------------------|
28 * | Ctl | A | S | D | F | G | Bksp | H | J | K | L | ; | '" | Enter | PgDn |
29 * |---------------------------------------------------------------------------------------------------------------------------------|
30 * |Shift| Z | X | C | V | B | Enter | N | M | , | . | /? | Shift| | Up |
31 * |---------------------------------------------------------------------------------------------------------------------------------|
32 * |Ctrl | GUI | Alter | Space | Ctrl | Shift | Space | Alter | FN | Ctrl | Lft | Dn | Rig |
33 * |---------------------------------------------------------------------------------------------------------------------------------|
34 */
35 [0] = LAYOUT(
36 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, KC_PSCR,
37 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,
38 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,
39 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_BSPC, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
40 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
41 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LCTL, KC_LSFT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
42 [1] = LAYOUT(
43 RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MYCM, KC_MSEL, KC_MAIL, NK_TOGG, EEP_RST,
44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NLCK,
45 RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME,
46 KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END,
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_MUTE, KC_VOLU,
48 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MPRV, KC_VOLD, KC_MNXT),
49 [2] = LAYOUT(
50 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
51 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
52 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
53 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
54 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
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),
56 [3] = LAYOUT(
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, 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, KC_TRNS,
59 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
60 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
61 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
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)
63};
diff --git a/keyboards/xbows/knight/keymaps/via/rules.mk b/keyboards/xbows/knight/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/xbows/knight/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes
diff --git a/keyboards/xbows/knight/knight.c b/keyboards/xbows/knight/knight.c
index cb79d9d58..1a1aebf18 100644
--- a/keyboards/xbows/knight/knight.c
+++ b/keyboards/xbows/knight/knight.c
@@ -1 +1,145 @@
1#include "knight.h" 1/* Copyright 2021 Shulin Huang <mumu@x-bows.com>
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 "knight.h"
17 #ifdef RGB_MATRIX_ENABLE
18 const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
19
20 {0, C1_3, C2_3, C3_3}, // L01
21 {0, C1_4, C2_4, C3_4}, // L02
22 {0, C1_5, C2_5, C3_5}, // L03
23 {0, C1_6, C2_6, C3_6}, // L04
24 {0, C1_7, C2_7, C3_7}, // L05
25 {0, C1_8, C2_8, C3_8}, // L06
26 {1, C1_3, C2_3, C3_3}, // L07
27 {1, C1_4, C2_4, C3_4}, // L08
28 {1, C1_5, C2_5, C3_5}, // L09
29 {1, C1_6, C2_6, C3_6}, // L10
30 {1, C1_7, C2_7, C3_7}, // L11
31 {1, C1_8, C2_8, C3_8}, // L12
32 {2, C1_3, C2_3, C3_3}, // L13
33 {2, C1_4, C2_4, C3_4}, // L14
34 {2, C1_5, C2_5, C3_5}, // L15
35
36 {0, C6_1, C5_1, C4_1}, // L16
37 {0, C6_2, C5_2, C4_2}, // L17
38 {0, C6_3, C5_3, C4_3}, // L18
39 {0, C6_6, C5_6, C4_6}, // L19
40 {0, C6_7, C5_7, C4_7}, // L20
41 {0, C6_8, C5_8, C4_8}, // L21
42 {1, C6_2, C5_2, C4_2}, // L22
43 {1, C6_3, C5_3, C4_3}, // L23
44 {1, C6_6, C5_6, C4_6}, // L24
45 {1, C6_7, C5_7, C4_7}, // L25
46 {1, C6_8, C5_8, C4_8}, // L26
47 {2, C6_1, C5_1, C4_1}, // L27
48 {2, C6_2, C5_2, C4_2}, // L28
49 {2, C6_3, C5_3, C4_3}, // L29
50
51 {0, C9_1, C8_1, C7_1}, // L30
52 {0, C9_2, C8_2, C7_2}, // L31
53 {0, C9_3, C8_3, C7_3}, // L32
54 {0, C9_4, C8_4, C7_4}, // L33
55 {0, C9_5, C8_5, C7_5}, // L34
56 {0, C9_6, C8_6, C7_6}, // L35
57 {2, C6_8, C5_8, C4_8}, // L44
58 {1, C9_1, C8_1, C7_1}, // L36
59 {1, C9_2, C8_2, C7_2}, // L37
60 {1, C9_3, C8_3, C7_3}, // L38
61 {1, C9_4, C8_4, C7_4}, // L39
62 {1, C9_5, C8_5, C7_5}, // L40
63 {1, C9_6, C8_6, C7_6}, // L41
64 {2, C6_6, C5_6, C4_6}, // L42
65 {2, C6_7, C5_7, C4_7}, // L43
66
67
68 {0, C1_11, C2_11, C3_11}, // L45
69 {0, C1_12, C2_12, C3_12}, // L46
70 {0, C1_13, C2_13, C3_13}, // L47
71 {0, C1_14, C2_14, C3_14}, // L48
72 {0, C1_15, C2_15, C3_15}, // L49
73 {0, C1_16, C2_16, C3_16}, // L50
74 {1, C9_9, C8_9, C7_9}, // L51
75 {1, C1_11, C2_11, C3_11}, // L52
76 {1, C1_12, C2_12, C3_12}, // L53
77 {1, C1_13, C2_13, C3_13}, // L54
78 {1, C1_14, C2_14, C3_14}, // L55
79 {1, C1_15, C2_15, C3_15}, // L56
80 {1, C1_16, C2_16, C3_16}, // L57
81 {2, C9_4, C8_4, C7_4}, // L58
82 {2, C9_5, C8_5, C7_5}, // L59
83
84 {0, C6_9, C5_9, C4_9}, // L60
85 {0, C6_10, C5_10, C4_10}, // L61
86 {0, C6_11, C5_11, C4_11}, // L62
87 {0, C6_14, C5_14, C4_14}, // L63
88 {0, C6_15, C5_15, C4_15}, // L64
89 {0, C6_16, C5_16, C4_16}, // L65
90 {1, C9_10, C8_10, C7_10}, // L66
91 {1, C6_9, C5_9, C4_9}, // L67
92 {1, C6_10, C5_10, C4_10}, // L68
93 {1, C6_11, C5_11, C4_11}, // L69
94 {1, C6_14, C5_14, C4_14}, // L70
95 {1, C6_15, C5_15, C4_15}, // L71
96 {1, C6_16, C5_16, C4_16}, // L72
97 {2, C9_6, C8_6, C7_6}, // L73
98
99 {0, C9_9, C8_9, C7_9}, // L74
100 {0, C9_10, C8_10, C7_10}, // L75
101 {0, C9_11, C8_11, C7_11}, // L76
102 {0, C9_12, C8_12, C7_12}, // L77
103 {0, C9_13, C8_13, C7_13}, // L78
104 {0, C9_14, C8_14, C7_14}, // L79
105 {1, C9_11, C8_11, C7_11}, // L80
106 {1, C9_12, C8_12, C7_12}, // L81
107 {1, C9_13, C8_13, C7_13}, // L82
108 {1, C9_14, C8_14, C7_14}, // L83
109 {2, C1_6, C2_6, C3_6}, // L84
110 {2, C1_7, C2_7, C3_7}, // L85
111 {2, C1_8, C2_8, C3_8}, // L86
112 };
113
114 led_config_t g_led_config = { {
115 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
116 { 15, 16, 17, 18, 19, 20, NO_LED, 21, 22, 23, 24, 25, 26, 27, 28 },
117 { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 },
118 { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 },
119 { 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, NO_LED },
120 { 73, 74, 75, NO_LED, 76, 77, 78, 79, NO_LED, 80, 81, 82, 83, 84, 85 }
121 }, {
122 {0,0}, {16,0}, {30,0}, {43,0}, {56,0}, {72,0}, {85,0}, {99,0}, {112,0}, {128,0}, {141,0}, {154,0}, {167,0}, {190,0}, {216,0},
123 {0,13}, {16,13}, {32,12}, {49,14}, {66,16}, {82,20}, {102,20}, {118,16}, {134,14}, {150,12}, {167,13}, {184,13}, {197,13}, {216,13},
124 {0,26}, {15,26}, {31,23}, {47,24}, {63,28}, {78,30}, {224,26}, {105,30}, {120,28}, {136,24}, {152,23}, {168,26}, {184,26}, {197,26}, {210,26},
125 {0,37}, {15,37}, {30,33}, {45,35}, {60,37}, {75,40}, {92,43}, {108,40}, {124,37}, {138,35}, {153,33}, {168,37}, {184,37}, {203,37}, {224,37},
126 {0,48}, {14,48}, {29,44}, {43,46}, {57,48}, {72,50}, {92,53}, {112,50}, {126,48}, {141,46}, {155,44}, {169,48}, {184,48}, {210,48},
127 {0,58}, {14,58}, {34,58}, {61,61}, {83,64}, {100,64}, {122,61}, {149,58}, {170,58}, {184,58}, {197,58}, {210,58}, {224,58}
128 }, {
129 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
130 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
131 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
132 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
133 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
134 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1
135 } };
136
137
138
139 __attribute__ ((weak)) void rgb_matrix_indicators_user(void) {
140 if (host_keyboard_led_state().caps_lock) {
141 rgb_matrix_set_color(44, 0xFF, 0xFF, 0xFF);
142 }
143}
144
145#endif
diff --git a/keyboards/xbows/knight/knight.h b/keyboards/xbows/knight/knight.h
index 952d5a311..a6497119b 100644
--- a/keyboards/xbows/knight/knight.h
+++ b/keyboards/xbows/knight/knight.h
@@ -1,35 +1,33 @@
1/* Copyright 2021 Shulin Huang <mumu@x-bows.com>
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 */
1#pragma once 16#pragma once
2
3#include "quantum.h" 17#include "quantum.h"
4
5
6#ifdef USE_I2C
7#include <stddef.h>
8#ifdef __AVR__
9 #include <avr/io.h>
10 #include <avr/interrupt.h>
11#endif
12#endif
13
14#define LAYOUT( \ 18#define LAYOUT( \
15 K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018, \ 19 K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
16 K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K111, K112, K113, K114, K115, K116, K117, K118, \ 20 K100, K101, K102, K103, K104, K105, K107, K108, K109, K110, K111, K112, K113, K114, \
17 K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, K217, K218, \ 21 K200, K201, K202, K203, K204, K205, K207, K208, K209, K210, K211, K212, K213, K214, K206, \
18 K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K316, K317, K318, \ 22 K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \
19 K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K415, K416, K417, K518, \ 23 K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, \
20 K500, K501, K502, K503, K505, K506, K507, K509, K510, K511, K512, K513, K514, K516, K517 \ 24 K500, K501, K502, K504, K505, K506, K507, K509, K510, K511, K512, K513, K514 \
21) \ 25) \
22 { \ 26 { \
23 { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ 27 { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
24 { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, KC_NO, K111, K112, K113, K114 }, \ 28 { K100, K101, K102, K103, K104, K105, KC_NO,K107, K108, K109, K110, K111, K112, K113, K114 }, \
25 { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ 29 { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \
26 { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ 30 { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \
27 { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, KC_NO }, \ 31 { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, KC_NO}, \
28 { K500, K501, K502, K503, KC_NO,K505, K506, K507, KC_NO,K509, K510, K511, K512, K513, K514 }, \ 32 { K500, K501, K502, KC_NO,K504, K505, K506, K507, KC_NO,K509, K510, K511, K512, K513, K514 } \
29 { K015, K016, K017, K018 }, \
30 { K115, K116, K117, K118 }, \
31 { K215, K216, K217, K218 }, \
32 { K315, K316, K317, K318 }, \
33 { K415, K416, K417, KC_NO }, \
34 { KC_NO,K516, K517, K518 } \
35} 33}
diff --git a/keyboards/xbows/knight/readme.md b/keyboards/xbows/knight/readme.md
index 063ff7a2e..c66538594 100644
--- a/keyboards/xbows/knight/readme.md
+++ b/keyboards/xbows/knight/readme.md
@@ -1,15 +1,29 @@
1# KNIGHT 1# KNIGHT
2![KNIGHT](https://ftp.bmp.ovh/imgs/2019/10/5f357cd665dd4b04.png) 2![KNIGHT](https://cdn.shopify.com/s/files/1/0014/7623/1237/products/BestSeller_2_1024x1024@2x.png?v=1615697870)
3 3
4KNIGHT, a split87 and pad Mechanical Keyboard. 4KNIGHT, A 86 Keys Ergonomic Mechanical Keyboard with RGB backlight.
5X-BOWS Knight, the first ergonomic mechanical keyboard with magnetic connection of detachable numeric keypad on both sides. Revolutionary seamless integrated aluminum alloy body. Original spherical OEM keycaps.
6 5
7Keyboard Maintainer: X-BOWS 6If you spend your work days in front of a computer, you have likely felt some discomfort after a long day of typing. While spending less time on our computers would be the ideal remedy for this problem, that is not a realistic solution for most people. X-Bows was designed to limit the stress on your hands and wrists while also providing a productive and stylish typing experience.
8Hardware Supported: X-BOWS Knight 7
9Hardware Availability: [X-BOWS](https://x-bows.com/) 8
9X-Bows was designed with three criteria in mind:
10* Enhancing the comfort and ergonomics of the keyboard
11* Limiting the learning curve for our new layout
12* Creating an attractive design
13
14
15* Keyboard Maintainer: X-BOWS
16* Hardware Supported: X-BOWS KNIGHT
17* Hardware Availability: [X-BOWS](https://x-bows.com/)
10 18
11Make example for this keyboard (after setting up your build environment): 19Make example for this keyboard (after setting up your build environment):
12 20
13 make xbows/knight:default 21 make xbows/knight:default
22 make xbows/knight:via
23
24Flashing example for this keyboard:
25
26 make xbows/knight:default:flash
27 make xbows/knight:via:flash
14 28
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). 29See 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/xbows/knight/rules.mk b/keyboards/xbows/knight/rules.mk
index 4c6080129..71883128e 100644
--- a/keyboards/xbows/knight/rules.mk
+++ b/keyboards/xbows/knight/rules.mk
@@ -2,13 +2,6 @@
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
@@ -18,15 +11,14 @@ BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
18MOUSEKEY_ENABLE = yes # Mouse keys 11MOUSEKEY_ENABLE = yes # Mouse keys
19EXTRAKEY_ENABLE = yes # Audio control and System control 12EXTRAKEY_ENABLE = yes # Audio control and System control
20CONSOLE_ENABLE = no # Console for debug 13CONSOLE_ENABLE = no # Console for debug
21COMMAND_ENABLE = yes # Commands for debug and configuration 14COMMAND_ENABLE = no # Commands for debug and configuration
22# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
23SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 16SLEEP_LED_ENABLE = yes # 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 = yes # USB Nkey Rollover
26BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality 19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
27MIDI_ENABLE = no # MIDI support 20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
28UNICODE_ENABLE = no # Unicode 21BLUETOOTH_ENABLE = no # Enable Bluetooth
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 22AUDIO_ENABLE = no # Audio output
30AUDIO_ENABLE = no # Audio output on port C6 23RGB_MATRIX_ENABLE = yes
31RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. 24RGB_MATRIX_DRIVER = IS31FL3731
32SPLIT_KEYBOARD = yes
diff --git a/keyboards/xbows/knight_plus/info.json b/keyboards/xbows/knight_plus/info.json
index b03bb3b56..22d1a1ac3 100644
--- a/keyboards/xbows/knight_plus/info.json
+++ b/keyboards/xbows/knight_plus/info.json
@@ -60,7 +60,7 @@
60 {"label":"D", "x":3, "y":3.5}, 60 {"label":"D", "x":3, "y":3.5},
61 {"label":"F", "x":4, "y":3.5}, 61 {"label":"F", "x":4, "y":3.5},
62 {"label":"G", "x":5, "y":3.5}, 62 {"label":"G", "x":5, "y":3.5},
63 {"label":"Backspace", "x":6, "y":3.5, "w":1.5}, 63 {"label":"Backspace", "x":6.75, "y":3.5, "w":1.5},
64 {"label":"H", "x":9, "y":3.5}, 64 {"label":"H", "x":9, "y":3.5},
65 {"label":"J", "x":10, "y":3.5}, 65 {"label":"J", "x":10, "y":3.5},
66 {"label":"K", "x":11, "y":3.5}, 66 {"label":"K", "x":11, "y":3.5},
@@ -76,7 +76,7 @@
76 {"label":"C", "x":3, "y":4.5}, 76 {"label":"C", "x":3, "y":4.5},
77 {"label":"V", "x":4, "y":4.5}, 77 {"label":"V", "x":4, "y":4.5},
78 {"label":"B", "x":5, "y":4.5}, 78 {"label":"B", "x":5, "y":4.5},
79 {"label":"Enter", "x":6, "y":4.5, "w":2}, 79 {"label":"Enter", "x":6.5, "y":4.5, "w":2},
80 {"label":"N", "x":9, "y":4.5}, 80 {"label":"N", "x":9, "y":4.5},
81 {"label":"M", "x":10, "y":4.5}, 81 {"label":"M", "x":10, "y":4.5},
82 {"label":"<", "x":11, "y":4.5}, 82 {"label":"<", "x":11, "y":4.5},
diff --git a/keyboards/xbows/knight_plus/rules.mk b/keyboards/xbows/knight_plus/rules.mk
index b05636141..71883128e 100644
--- a/keyboards/xbows/knight_plus/rules.mk
+++ b/keyboards/xbows/knight_plus/rules.mk
@@ -13,8 +13,7 @@ EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug 13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration 14COMMAND_ENABLE = no # Commands for debug and configuration
15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 16SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
17NO_USB_STARTUP_CHECK = yes # Disables usb supend check after keyboard startup
18# 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
19NKRO_ENABLE = yes # USB Nkey Rollover 18NKRO_ENABLE = yes # USB Nkey Rollover
20BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality 19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
diff --git a/keyboards/xbows/numpad/info.json b/keyboards/xbows/numpad/info.json
index 607ab93a3..8a4707fbc 100644
--- a/keyboards/xbows/numpad/info.json
+++ b/keyboards/xbows/numpad/info.json
@@ -15,12 +15,12 @@
15 {"label":"Num Lock", "x":0, "y":1.5}, 15 {"label":"Num Lock", "x":0, "y":1.5},
16 {"label":"/", "x":1, "y":1.5}, 16 {"label":"/", "x":1, "y":1.5},
17 {"label":"*", "x":2, "y":1.5}, 17 {"label":"*", "x":2, "y":1.5},
18 {"label":"-", "x":3, "y":1.5}, 18 {"label":"=", "x":3, "y":1.5},
19 19
20 {"label":"7", "x":0, "y":2.5}, 20 {"label":"7", "x":0, "y":2.5},
21 {"label":"8", "x":1, "y":2.5}, 21 {"label":"8", "x":1, "y":2.5},
22 {"label":"9", "x":2, "y":2.5}, 22 {"label":"9", "x":2, "y":2.5},
23 {"label":"+", "x":3, "y":2.5}, 23 {"label":"-", "x":3, "y":2.5},
24 24
25 {"label":"4", "x":0, "y":3.5}, 25 {"label":"4", "x":0, "y":3.5},
26 {"label":"5", "x":1, "y":3.5}, 26 {"label":"5", "x":1, "y":3.5},
@@ -33,7 +33,7 @@
33 {"label":"Enter", "x":3, "y":4.5, "h":2}, 33 {"label":"Enter", "x":3, "y":4.5, "h":2},
34 34
35 {"label":"0", "x":0, "y":5.5, "w":2}, 35 {"label":"0", "x":0, "y":5.5, "w":2},
36 {"label":".", "x":3, "y":5.5} 36 {"label":".", "x":2, "y":5.5}
37 37
38 ] 38 ]
39 } 39 }