aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorX-Bows Tech <41098278+XBowsTech@users.noreply.github.com>2021-07-29 23:47:51 +0800
committerGitHub <noreply@github.com>2021-07-29 08:47:51 -0700
commit8fa674727d7586db85da901f9d837ea74bc8095b (patch)
tree28d745772576a28e9c4864d486ba5e15a3a8dc23
parent8d611f6873aa4f357d625f9e9b8cf86ec1b64940 (diff)
downloadqmk_firmware-8fa674727d7586db85da901f9d837ea74bc8095b.tar.gz
qmk_firmware-8fa674727d7586db85da901f9d837ea74bc8095b.zip
[Keyboard] Add X-Bows Ranger Keyboard (#13660)
Co-authored-by: Ryan <fauxpark@gmail.com>
-rw-r--r--keyboards/xbows/ranger/config.h51
-rw-r--r--keyboards/xbows/ranger/info.json105
-rw-r--r--keyboards/xbows/ranger/keymaps/default/config.h43
-rw-r--r--keyboards/xbows/ranger/keymaps/default/keymap.c49
-rw-r--r--keyboards/xbows/ranger/keymaps/via/config.h64
-rw-r--r--keyboards/xbows/ranger/keymaps/via/keymap.c63
-rw-r--r--keyboards/xbows/ranger/keymaps/via/rules.mk1
-rw-r--r--keyboards/xbows/ranger/ranger.c145
-rw-r--r--keyboards/xbows/ranger/ranger.h33
-rw-r--r--keyboards/xbows/ranger/readme.md29
-rw-r--r--keyboards/xbows/ranger/rules.mk24
11 files changed, 607 insertions, 0 deletions
diff --git a/keyboards/xbows/ranger/config.h b/keyboards/xbows/ranger/config.h
new file mode 100644
index 000000000..0af0bb8b7
--- /dev/null
+++ b/keyboards/xbows/ranger/config.h
@@ -0,0 +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 */
16#pragma once
17
18#include "config_common.h"
19
20#define VENDOR_ID 0xFEED
21#define PRODUCT_ID 0x1229
22#define DEVICE_VER 0x0001
23#define MANUFACTURER X-BOWS
24#define PRODUCT Ranger
25
26#define MATRIX_ROWS 6
27#define MATRIX_COLS 16
28#define MATRIX_ROW_PINS { C7, B6, B4, C6, B5, D6 }
29#define MATRIX_COL_PINS { B7, B3, B2, B1, B0, E6, F0, F1, F4, F5, D7, F6, F7, D4, D5, D3 }
30#define DIODE_DIRECTION COL2ROW
31#define DEBOUNCE 3
32
33#ifdef RGB_MATRIX_ENABLE
34# define RGB_MATRIX_LED_PROCESS_LIMIT 18
35# define RGB_MATRIX_LED_FLUSH_LIMIT 16
36# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
37# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
38# define RGB_MATRIX_KEYPRESSES
39# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
40# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
41# define RGB_MATRIX_CENTER { 103, 32 }
42# define DRIVER_ADDR_1 0b1110100
43# define DRIVER_ADDR_2 0b1110101
44# define DRIVER_ADDR_3 0b1110110
45# define DRIVER_COUNT 3
46# define DRIVER_1_LED_TOTAL 36
47# define DRIVER_2_LED_TOTAL 36
48# define DRIVER_3_LED_TOTAL 15
49# define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL + DRIVER_3_LED_TOTAL)
50
51#endif
diff --git a/keyboards/xbows/ranger/info.json b/keyboards/xbows/ranger/info.json
new file mode 100644
index 000000000..d0c7189cd
--- /dev/null
+++ b/keyboards/xbows/ranger/info.json
@@ -0,0 +1,105 @@
1{
2 "keyboard_name": "Ranger",
3 "url": "",
4 "maintainer": "xbows-qmk",
5 "width": 18.25,
6 "height": 6.5,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [
10 {"label":"Esc", "x":0, "y":0},
11 {"label":"F1", "x":2, "y":0},
12 {"label":"F2", "x":3, "y":0},
13 {"label":"F3", "x":4, "y":0},
14 {"label":"F4", "x":5, "y":0},
15 {"label":"F5", "x":6.5, "y":0},
16 {"label":"F6", "x":7.5, "y":0},
17 {"label":"F7", "x":8.5, "y":0},
18 {"label":"F8", "x":9.5, "y":0},
19 {"label":"F9", "x":11, "y":0},
20 {"label":"F10", "x":12, "y":0},
21 {"label":"F11", "x":13, "y":0},
22 {"label":"F12", "x":14, "y":0},
23 {"label":"PrtSc", "x":15.25, "y":0},
24 {"label":"Scroll Lock", "x":16.25, "y":0},
25 {"label":"Pause", "x":17.25, "y":0},
26
27 {"label":"~", "x":0, "y":1.5},
28 {"label":"!", "x":1, "y":1.5},
29 {"label":"@", "x":2, "y":1.5},
30 {"label":"#", "x":3, "y":1.5},
31 {"label":"$", "x":4, "y":1.5},
32 {"label":"%", "x":5, "y":1.5},
33 {"label":"^", "x":6, "y":1.5},
34 {"label":"&", "x":7, "y":1.5},
35 {"label":"*", "x":8, "y":1.5},
36 {"label":"(", "x":9, "y":1.5},
37 {"label":")", "x":10, "y":1.5},
38 {"label":"_", "x":11, "y":1.5},
39 {"label":"+", "x":12, "y":1.5},
40 {"label":"Bksp", "x":13, "y":1.5, "w":2},
41 {"label":"Insert", "x":15.25, "y":1.5},
42 {"label":"Home", "x":16.25, "y":1.5},
43 {"label":"PgUp", "x":17.25, "y":1.5},
44
45 {"label":"Tab", "x":0, "y":2.5, "w":1.5},
46 {"label":"Q", "x":1.5, "y":2.5},
47 {"label":"W", "x":2.5, "y":2.5},
48 {"label":"E", "x":3.5, "y":2.5},
49 {"label":"R", "x":4.5, "y":2.5},
50 {"label":"T", "x":5.5, "y":2.5},
51 {"label":"Y", "x":6.5, "y":2.5},
52 {"label":"U", "x":7.5, "y":2.5},
53 {"label":"I", "x":8.5, "y":2.5},
54 {"label":"O", "x":9.5, "y":2.5},
55 {"label":"P", "x":10.5, "y":2.5},
56 {"label":"{", "x":11.5, "y":2.5},
57 {"label":"}", "x":12.5, "y":2.5},
58 {"label":"|", "x":13.5, "y":2.5, "w":1.5},
59 {"label":"Delete", "x":15.25, "y":2.5},
60 {"label":"End", "x":16.25, "y":2.5},
61 {"label":"PgDn", "x":17.25, "y":2.5},
62
63 {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75},
64 {"label":"A", "x":1.75, "y":3.5},
65 {"label":"S", "x":2.75, "y":3.5},
66 {"label":"D", "x":3.75, "y":3.5},
67 {"label":"F", "x":4.75, "y":3.5},
68 {"label":"G", "x":5.75, "y":3.5},
69 {"label":"H", "x":6.75, "y":3.5},
70 {"label":"J", "x":7.75, "y":3.5},
71 {"label":"K", "x":8.75, "y":3.5},
72 {"label":"L", "x":9.75, "y":3.5},
73 {"label":":", "x":10.75, "y":3.5},
74 {"label":"\"", "x":11.75, "y":3.5},
75 {"label":"Enter", "x":12.75, "y":3.5, "w":2.25},
76
77 {"label":"Shift", "x":0, "y":4.5, "w":2.25},
78 {"label":"Z", "x":2.25, "y":4.5},
79 {"label":"X", "x":3.25, "y":4.5},
80 {"label":"C", "x":4.25, "y":4.5},
81 {"label":"V", "x":5.25, "y":4.5},
82 {"label":"B", "x":6.25, "y":4.5},
83 {"label":"N", "x":7.25, "y":4.5},
84 {"label":"M", "x":8.25, "y":4.5},
85 {"label":"<", "x":9.25, "y":4.5},
86 {"label":">", "x":10.25, "y":4.5},
87 {"label":"?", "x":11.25, "y":4.5},
88 {"label":"Shift", "x":12.25, "y":4.5, "w":2.75},
89 {"label":"Up", "x":16.25, "y":4.5},
90
91 {"label":"Ctrl", "x":0, "y":5.5, "w":1.25},
92 {"label":"Win", "x":1.25, "y":5.5, "w":1.25},
93 {"label":"Alt", "x":2.5, "y":5.5, "w":1.25},
94 {"label":"Space", "x":3.75, "y":5.5, "w":6.25},
95 {"label":"Alt", "x":10, "y":5.5, "w":1.25},
96 {"label":"Fn", "x":11.25, "y":5.5, "w":1.25},
97 {"label":"Menu", "x":12.5, "y":5.5, "w":1.25},
98 {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25},
99 {"label":"Left", "x":15.25, "y":5.5},
100 {"label":"Down", "x":16.25, "y":5.5},
101 {"label":"Right", "x":17.25, "y":5.5}
102 ]
103 }
104 }
105}
diff --git a/keyboards/xbows/ranger/keymaps/default/config.h b/keyboards/xbows/ranger/keymaps/default/config.h
new file mode 100644
index 000000000..8e1b68f97
--- /dev/null
+++ b/keyboards/xbows/ranger/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/ranger/keymaps/default/keymap.c b/keyboards/xbows/ranger/keymaps/default/keymap.c
new file mode 100644
index 000000000..63987bf76
--- /dev/null
+++ b/keyboards/xbows/ranger/keymaps/default/keymap.c
@@ -0,0 +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 */
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 | Print |S-Lock|Pause
23 * |---------------------------------------------------------------------------------------------------------------------------------------------------------------|
24 * | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace| Insert| Home |PgUp
25 * |---------------------------------------------------------------------------------------------------------------------------------------------------------------|
26 * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Delete| End |PgDn
27 * |---------------------------------------------------------------------------------------------------------------------------------------------------------------|
28 * | Caps | A | S | D | F | G | H | J | K | L | ; | '" | Enter |
29 * |---------------------------------------------------------------------------------------------------------------------------------------------------------------|
30 * | Shift | Z | X | C | V | B | N | M | , | . | /? | Shift | | Up |
31 * |---------------------------------------------------------------------------------------------------------------------------------------------------------------|
32 * | Ctrl | GUI |Alter| Space | Alter| Fn | menu | Ctrl | Left | Down |Right
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_PSCR, KC_SLCK, KC_PAUS,
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 , KC_INS, KC_HOME, KC_PGUP,
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_DEL, KC_END, KC_PGDN,
39 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 ,
40 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,
41 KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT, MO(1) , KC_APP, 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, KC_NLCK,
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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
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_TRNS, KC_TRNS, KC_TRNS,
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,
47 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_MPLY, KC_MPRV, KC_VOLD, KC_MNXT)
49};
diff --git a/keyboards/xbows/ranger/keymaps/via/config.h b/keyboards/xbows/ranger/keymaps/via/config.h
new file mode 100644
index 000000000..aa5e4c1cd
--- /dev/null
+++ b/keyboards/xbows/ranger/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/ranger/keymaps/via/keymap.c b/keyboards/xbows/ranger/keymaps/via/keymap.c
new file mode 100644
index 000000000..b99574d57
--- /dev/null
+++ b/keyboards/xbows/ranger/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 | Print |S-Lock|Pause
23 * |---------------------------------------------------------------------------------------------------------------------------------------------------------------|
24 * | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace| Insert| Home |PgUp
25 * |---------------------------------------------------------------------------------------------------------------------------------------------------------------|
26 * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Delete| End |PgDn
27 * |---------------------------------------------------------------------------------------------------------------------------------------------------------------|
28 * | Caps | A | S | D | F | G | H | J | K | L | ; | '" | Enter |
29 * |---------------------------------------------------------------------------------------------------------------------------------------------------------------|
30 * | Shift | Z | X | C | V | B | N | M | , | . | /? | Shift | | Up |
31 * |---------------------------------------------------------------------------------------------------------------------------------------------------------------|
32 * | Ctrl | GUI |Alter| Space | Alter | Fn | menu | Ctrl | Left | Down |Right
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_PSCR, KC_SLCK, KC_PAUS,
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 , KC_INS, KC_HOME, KC_PGUP,
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_DEL, KC_END, KC_PGDN,
39 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 ,
40 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,
41 KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT, MO(1) , KC_APP, 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, KC_NLCK,
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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
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_TRNS, KC_TRNS, KC_TRNS,
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,
47 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_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, 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, 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, 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,
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,
55 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, 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, 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, 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,
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,
62 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/ranger/keymaps/via/rules.mk b/keyboards/xbows/ranger/keymaps/via/rules.mk
new file mode 100644
index 000000000..69de2e4c5
--- /dev/null
+++ b/keyboards/xbows/ranger/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes
diff --git a/keyboards/xbows/ranger/ranger.c b/keyboards/xbows/ranger/ranger.c
new file mode 100644
index 000000000..f6ec79f7f
--- /dev/null
+++ b/keyboards/xbows/ranger/ranger.c
@@ -0,0 +1,145 @@
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 "ranger.h"
17 #ifdef RGB_MATRIX_ENABLE
18 const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
19
20 {0, C3_3, C2_3, C1_3}, // L01
21 {0, C3_4, C2_4, C1_4}, // L02
22 {0, C3_5, C2_5, C1_5}, // L03
23 {0, C3_6, C2_6, C1_6}, // L04
24 {0, C3_7, C2_7, C1_7}, // L05
25 {0, C3_8, C2_8, C1_8}, // L06
26 {1, C3_3, C2_3, C1_3}, // L07
27 {1, C3_4, C2_4, C1_4}, // L08
28 {1, C3_5, C2_5, C1_5}, // L09
29 {1, C3_6, C2_6, C1_6}, // L10
30 {1, C3_7, C2_7, C1_7}, // L11
31 {1, C3_8, C2_8, C1_8}, // L12
32 {2, C3_4, C2_4, C1_4}, // L13
33 {2, C3_5, C2_5, C1_5}, // L14
34 {2, C3_6, C2_6, C1_6}, // L15
35 {2, C3_7, C2_7, C1_7}, // L16
36
37 {0, C6_1, C5_1, C4_1}, // L17
38 {0, C6_2, C5_2, C4_2}, // L18
39 {0, C6_3, C5_3, C4_3}, // L19
40 {0, C6_6, C5_6, C4_6}, // L20
41 {0, C6_7, C5_7, C4_7}, // L21
42 {0, C6_8, C5_8, C4_8}, // L22
43 {1, C6_1, C5_1, C4_1}, // L23
44 {1, C6_2, C5_2, C4_2}, // L24
45 {1, C6_3, C5_3, C4_3}, // L25
46 {1, C6_6, C5_6, C4_6}, // L26
47 {1, C6_7, C5_7, C4_7}, // L27
48 {1, C6_8, C5_8, C4_8}, // L28
49 {2, C6_1, C5_1, C4_1}, // L29
50 {2, C6_3, C5_3, C4_3}, // L31
51 {2, C6_6, C5_6, C4_6}, // L32
52 {2, C6_7, C5_7, C4_7}, // L33
53
54 {0, C9_1, C8_1, C7_1}, // L34
55 {0, C9_2, C8_2, C7_2}, // L35
56 {0, C9_3, C8_3, C7_3}, // L36
57 {0, C9_4, C8_4, C7_4}, // L37
58 {0, C9_5, C8_5, C7_5}, // L38
59 {0, C9_6, C8_6, C7_6}, // L39
60 {1, C9_1, C8_1, C7_1}, // L40
61 {1, C9_2, C8_2, C7_2}, // L41
62 {1, C9_3, C8_3, C7_3}, // L42
63 {1, C9_4, C8_4, C7_4}, // L43
64 {1, C9_5, C8_5, C7_5}, // L44
65 {1, C9_6, C8_6, C7_6}, // L45
66 {2, C9_1, C8_1, C7_1}, // L46
67 {2, C9_3, C8_3, C7_3}, // L48
68 {2, C9_4, C8_4, C7_4}, // L49
69 {2, C9_6, C8_6, C7_6}, // L50
70
71 {0, C3_11, C2_11, C1_11}, // L51
72 {0, C3_12, C2_12, C1_12}, // L52
73 {0, C3_13, C2_13, C1_13}, // L53
74 {0, C3_14, C2_14, C1_14}, // L54
75 {0, C3_15, C2_15, C1_15}, // L55
76 {0, C3_16, C2_16, C1_16}, // L56
77 {1, C3_11, C2_11, C1_11}, // L57
78 {1, C3_12, C2_12, C1_12}, // L58
79 {1, C3_13, C2_13, C1_13}, // L59
80 {1, C3_14, C2_14, C1_14}, // L60
81 {1, C3_15, C2_15, C1_15}, // L61
82 {1, C3_16, C2_16, C1_16}, // L62
83 {2, C3_14, C2_14, C1_14}, // L63
84 {2, C6_2, C5_2, C4_2 }, // L30
85
86 {0, C6_9, C5_9, C4_9}, // L64
87 {0, C6_10, C5_10, C4_10}, // L65
88 {0, C6_11, C5_11, C4_11}, // L66
89 {0, C6_14, C5_14, C4_14}, // L67
90 {0, C6_15, C5_15, C4_15}, // L68
91 {0, C6_16, C5_16, C4_16}, // L69
92 {1, C6_10, C5_10, C4_10}, // L70
93 {1, C6_11, C5_11, C4_11}, // L71
94 {1, C6_14, C5_14, C4_14}, // L72
95 {1, C6_15, C5_15, C4_15}, // L73
96 {1, C6_16, C5_16, C4_16}, // L74
97 {2, C3_15, C2_15, C1_15}, // L75
98 {2, C9_2, C8_2, C7_2 }, // L47
99 {2, C9_14, C8_14, C7_14}, // L76
100
101 {0, C9_9, C8_9, C7_9}, // L77
102 {0, C9_10, C8_10, C7_10}, // L78
103 {0, C9_11, C8_11, C7_11}, // L79
104 {1, C6_9, C5_9, C4_9}, // L80
105 {1, C9_13, C8_13, C7_13}, // L81
106 {1, C9_14, C8_14, C7_14}, // L82
107 {2, C9_9, C8_9, C7_9}, // L83
108 {2, C9_10, C8_10, C7_10}, // L84
109 {2, C9_11, C8_11, C7_11}, // L85
110 {2, C9_12, C8_12, C7_12}, // L86
111 {2, C9_13, C8_13, C7_13}, // L87
112
113 };
114
115 led_config_t g_led_config = { {
116 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
117 { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 },
118 { 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47 },
119 { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, NO_LED, NO_LED },
120 { 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, NO_LED, 73, 74, 75, NO_LED },
121 { 76, 77, 78, NO_LED, NO_LED, 79, NO_LED, NO_LED, NO_LED, 80, 81, 82, 83, 84, 85, 86 }
122 }, {
123 {0,0}, {24,0}, {36,0}, {48,0}, {60,0}, {78,0}, {90,0}, {102,0}, {114,0}, {132,0}, {144,0}, {156,0}, {168,0}, {182,0}, {194,0}, {206,0},
124 {0,15}, {12,15}, {24,15}, {36,15}, {48,15}, {60,15}, {72,15}, {84,15}, {96,15}, {108,15}, {120,15}, {132,15}, {144,15}, {182,15}, {194,15},{206,15},
125 {3,27}, {18,27}, {30,27}, {42,27}, {54,27}, {66,27}, {78,27}, {90,27}, {102,27}, {114,27}, {126,27}, {138,27}, {150,27}, {182,27}, {194,27},{206,27},
126 {4,39}, {20,39}, {32,39}, {44,39}, {56,39}, {68,39}, {80,39}, {92,39}, {104,39}, {116,39}, {128,39}, {140,39}, {162,39}, {162,15},
127 {6,51}, {26,51}, {38,51}, {50,51}, {62,51}, {74,51}, {86,51}, {98,51}, {110,51}, {122,51}, {134,51}, {155,51}, {165,27}, {210,51},
128 {1,63}, {16,63}, {31,63}, {64,63}, {121,63},{136,63}, {151,63}, {166,63},{182,63}, {194,63}, {206,63}
129 }, {
130 4, 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, 4, 4,
134 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
135 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
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(48, 0xFF, 0xFF, 0xFF);
142 }
143}
144
145#endif
diff --git a/keyboards/xbows/ranger/ranger.h b/keyboards/xbows/ranger/ranger.h
new file mode 100644
index 000000000..28da14646
--- /dev/null
+++ b/keyboards/xbows/ranger/ranger.h
@@ -0,0 +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 */
16#pragma once
17#include "quantum.h"
18#define LAYOUT( \
19 K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
20 K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K313, K113, K114, K115, \
21 K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K413, K213, K214, K215, \
22 K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \
23 K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K412, K414, \
24 K500, K501, K502, K505, K509, K510, K511, K512, K513, K514, K515 \
25) \
26 { \
27 { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \
28 { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \
29 { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \
30 { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO,KC_NO}, \
31 { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410,KC_NO, K412, K413, K414, KC_NO}, \
32 { K500, K501, K502, KC_NO,KC_NO,K505, KC_NO,KC_NO,KC_NO,K509, K510, K511, K512, K513, K514, K515 } \
33}
diff --git a/keyboards/xbows/ranger/readme.md b/keyboards/xbows/ranger/readme.md
new file mode 100644
index 000000000..61b9955b4
--- /dev/null
+++ b/keyboards/xbows/ranger/readme.md
@@ -0,0 +1,29 @@
1# Ranger
2![Ranger](https://img.alicdn.com/i3/16731204/O1CN015gRK1R1KlTSHEuHDo_!!16731204.jpg)
3
4Ranger, A 87 keys keyboard with RGB backlight.
5
6* Keyboard Maintainer: X-BOWS
7* Hardware Supported: X-BOWS Ranger
8* Hardware Availability: [X-BOWS](https://x-bows.com/)
9
10Enter the bootloader in 3 ways:
11* Software reset on Fn + ESC
12* Bootmagic reset: hold down the top left key (usually escape) and plugin the keyboard
13* Physical reset button: There is a button on the back of the PCB, please press it briefly.
14
15Flash new firmware in 2 ways:
16* Use the QMK toolbox:https://github.com/qmk/qmk_toolbox/releases
17* Use the QMK MSYS:https://msys.qmk.fm/
18
19Make example for this keyboard (after setting up your build environment):
20
21 make xbows/ranger:default
22 make xbows/ranger:via
23
24Flashing example for this keyboard:
25
26 make xbows/ranger:default:flash
27 make xbows/ranger:via:flash
28
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/ranger/rules.mk b/keyboards/xbows/ranger/rules.mk
new file mode 100644
index 000000000..5707fdc1d
--- /dev/null
+++ b/keyboards/xbows/ranger/rules.mk
@@ -0,0 +1,24 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = atmel-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
11MOUSEKEY_ENABLE = yes # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration
15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18NKRO_ENABLE = yes # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_ENABLE = no # Audio output
23RGB_MATRIX_ENABLE = yes
24RGB_MATRIX_DRIVER = IS31FL3731