aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorX-Bows Tech <41098278+XBowsTech@users.noreply.github.com>2020-11-20 03:32:57 +0800
committerGitHub <noreply@github.com>2020-11-19 19:32:57 +0000
commit9454f9809928602f0fbff262dd21e2c56c06e67d (patch)
tree95b2fddc97c973df66500354b902049234e92255
parent64572b5c4bbbda84ba8c8122d354613800f2653d (diff)
downloadqmk_firmware-9454f9809928602f0fbff262dd21e2c56c06e67d.tar.gz
qmk_firmware-9454f9809928602f0fbff262dd21e2c56c06e67d.zip
[Keyboard]Add X-Bows Nature Keyboard (#10869)
Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: Erovia <Erovia@users.noreply.github.com> Co-authored-by: Ryan <fauxpark@gmail.com>
-rw-r--r--keyboards/xbows/nature/config.h64
-rw-r--r--keyboards/xbows/nature/info.json105
-rw-r--r--keyboards/xbows/nature/keymaps/default/keymap.c49
-rw-r--r--keyboards/xbows/nature/nature.c155
-rw-r--r--keyboards/xbows/nature/nature.h33
-rw-r--r--keyboards/xbows/nature/readme.md27
-rw-r--r--keyboards/xbows/nature/rules.mk23
7 files changed, 456 insertions, 0 deletions
diff --git a/keyboards/xbows/nature/config.h b/keyboards/xbows/nature/config.h
new file mode 100644
index 000000000..84b8a2af3
--- /dev/null
+++ b/keyboards/xbows/nature/config.h
@@ -0,0 +1,64 @@
1/* Copyright 2020 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 0x1226
22#define DEVICE_VER 0x0001
23#define MANUFACTURER X-BOWS
24#define PRODUCT NATURE
25
26#define MATRIX_ROWS 6
27#define MATRIX_COLS 15
28#define MATRIX_ROW_PINS { F7, F6, F5, F4, F1, F0 }
29#define MATRIX_COL_PINS { B0, B1, B2, B3, B7, D2, D3, D5, D4, D6, D7, B4, B5, B6, C6 }
30#define DIODE_DIRECTION COL2ROW
31
32#ifdef RGB_MATRIX_ENABLE
33# define RGB_MATRIX_LED_PROCESS_LIMIT 18
34# define RGB_MATRIX_LED_FLUSH_LIMIT 16
35# define DEBOUNCE 3
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_MAXIMUM_BRIGHTNESS 200
40# define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
41# define DISABLE_RGB_MATRIX_BAND_SAT
42# define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
43# define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT
44# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
45# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
46# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
47# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
48# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
49# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
50# define DISABLE_RGB_MATRIX_SPLASH
51# define DISABLE_RGB_MATRIX_MULTISPLASH
52# define DISABLE_RGB_MATRIX_SOLID_SPLASH
53# define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
54# define DISABLE_RGB_MATRIX_DIGITAL_RAIN
55
56# define DRIVER_ADDR_1 0b1110100
57# define DRIVER_ADDR_2 0b1110110
58# define DRIVER_ADDR_3 0b1110101
59# define DRIVER_COUNT 3
60# define DRIVER_1_LED_TOTAL 36
61# define DRIVER_2_LED_TOTAL 36
62# define DRIVER_3_LED_TOTAL 15
63# define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL + DRIVER_3_LED_TOTAL)
64#endif
diff --git a/keyboards/xbows/nature/info.json b/keyboards/xbows/nature/info.json
new file mode 100644
index 000000000..a9d4c4c7b
--- /dev/null
+++ b/keyboards/xbows/nature/info.json
@@ -0,0 +1,105 @@
1{
2 "keyboard_name": "NATURE",
3 "url": "",
4 "maintainer": "xbows-qmk",
5 "width": 18,
6 "height": 6.5,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [
10 {"label":"Esc", "x":0, "y":0},
11 {"label":"F1", "x":1.25, "y":0},
12 {"label":"F2", "x":2.25, "y":0},
13 {"label":"F3", "x":3.25, "y":0},
14 {"label":"F4", "x":4.25, "y":0},
15 {"label":"F5", "x":5.5, "y":0},
16 {"label":"F6", "x":6.5, "y":0},
17 {"label":"F7", "x":7.5, "y":0},
18 {"label":"F8", "x":8.5, "y":0},
19 {"label":"F9", "x":9.75, "y":0},
20 {"label":"F10", "x":10.75, "y":0},
21 {"label":"F11", "x":11.75, "y":0},
22 {"label":"F12", "x":12.75, "y":0},
23 {"label":"Delete", "x":14, "y":0, "w":2},
24 {"label":"Print Screen", "x":16, "y":0, "w":2},
25
26 {"label":"~", "x":0, "y":1.5},
27 {"label":"!", "x":1, "y":1.5},
28 {"label":"@", "x":2, "y":1.5},
29 {"label":"#", "x":3, "y":1.5},
30 {"label":"$", "x":4, "y":1.5},
31 {"label":"%", "x":5, "y":1.5},
32 {"label":"^", "x":9, "y":1.5},
33 {"label":"&", "x":10, "y":1.5},
34 {"label":"*", "x":11, "y":1.5},
35 {"label":"(", "x":12, "y":1.5},
36 {"label":")", "x":13, "y":1.5},
37 {"label":"_", "x":14, "y":1.5},
38 {"label":"+", "x":15, "y":1.5},
39 {"label":"Backspace", "x":16, "y":1.5, "w":2},
40
41 {"label":"Tab", "x":0, "y":2.5},
42 {"label":"Q", "x":1, "y":2.5},
43 {"label":"W", "x":2, "y":2.5},
44 {"label":"E", "x":3, "y":2.5},
45 {"label":"R", "x":4, "y":2.5},
46 {"label":"T", "x":5, "y":2.5},
47 {"label":"Y", "x":9, "y":2.5},
48 {"label":"U", "x":10, "y":2.5},
49 {"label":"I", "x":11, "y":2.5},
50 {"label":"O", "x":12, "y":2.5},
51 {"label":"P", "x":13, "y":2.5},
52 {"label":"{", "x":14, "y":2.5},
53 {"label":"}", "x":15, "y":2.5},
54 {"label":"|", "x":16, "y":2.5},
55 {"label":"Page Up", "x":17, "y":2.5},
56
57 {"label":"Caps Lock", "x":0, "y":3.5},
58 {"label":"A", "x":1, "y":3.5},
59 {"label":"S", "x":2, "y":3.5},
60 {"label":"D", "x":3, "y":3.5},
61 {"label":"F", "x":4, "y":3.5},
62 {"label":"G", "x":5, "y":3.5},
63 {"label":"Backspace", "x":6, "y":3.5, "w":3},
64 {"label":"H", "x":9, "y":3.5},
65 {"label":"J", "x":10, "y":3.5},
66 {"label":"K", "x":11, "y":3.5},
67 {"label":"L", "x":12, "y":3.5},
68 {"label":":", "x":13, "y":3.5},
69 {"label":"\"", "x":14, "y":3.5},
70 {"label":"Enter", "x":15, "y":3.5, "w":2},
71 {"label":"Page Down", "x":17, "y":3.5},
72
73 {"label":"Shift", "x":0, "y":4.5},
74 {"label":"Z", "x":1, "y":4.5},
75 {"label":"X", "x":2, "y":4.5},
76 {"label":"C", "x":3, "y":4.5},
77 {"label":"V", "x":4, "y":4.5},
78 {"label":"B", "x":5, "y":4.5},
79 {"label":"Enter", "x":6, "y":4.5, "w":3},
80 {"label":"N", "x":9, "y":4.5},
81 {"label":"M", "x":10, "y":4.5},
82 {"label":"<", "x":11, "y":4.5},
83 {"label":">", "x":12, "y":4.5},
84 {"label":"?", "x":13, "y":4.5},
85 {"label":"Shift", "x":14, "y":4.5},
86 {"label":"Up", "x":16, "y":4.5},
87
88 {"label":"Ctrl", "x":0, "y":5.5},
89 {"label":"Win", "x":1, "y":5.5},
90 {"label":"Alt", "x":2, "y":5.5, "w":2},
91 {"label":"Space", "x":4, "y":5.5, "w":2},
92 {"label":"Ctrl", "x":6, "y":5.5, "w":1.5},
93 {"label":"Shift", "x":7.5, "y":5.5, "w":1.5},
94 {"label":"Space", "x":9, "y":5.5, "w":2},
95 {"label":"Alt", "x":11, "y":5.5, "w":2},
96 {"label":"Fn", "x":13, "y":5.5},
97 {"label":"Ctrl", "x":14, "y":5.5},
98 {"label":"Left", "x":15, "y":5.5},
99 {"label":"Down", "x":16, "y":5.5},
100 {"label":"Right", "x":17, "y":5.5}
101
102 ]
103 }
104 }
105}
diff --git a/keyboards/xbows/nature/keymaps/default/keymap.c b/keyboards/xbows/nature/keymaps/default/keymap.c
new file mode 100644
index 000000000..b707311fa
--- /dev/null
+++ b/keyboards/xbows/nature/keymaps/default/keymap.c
@@ -0,0 +1,49 @@
1/* Copyright 2020 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, NK_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST,
44 AG_TOGG, KC_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 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS, 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, UC_M_WI, UC_M_MA, UC_M_LN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
48 KC_TRNS, GUI_OFF, GUI_ON, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, KC_VOLD, RGB_SPI)
49};
diff --git a/keyboards/xbows/nature/nature.c b/keyboards/xbows/nature/nature.c
new file mode 100644
index 000000000..64b1c0dd6
--- /dev/null
+++ b/keyboards/xbows/nature/nature.c
@@ -0,0 +1,155 @@
1/* Copyright 2020 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 "nature.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_3, C2_3, C1_3}, // L13
33 {2, C3_4, C2_4, C1_4}, // L14
34 {2, C3_5, C2_5, C1_5}, // L15
35
36 {0, C4_1, C5_1, C6_1}, // L16
37 {0, C4_2, C5_2, C6_2}, // L17
38 {0, C4_3, C5_3, C6_3}, // L18
39 {0, C4_6, C5_6, C6_6}, // L19
40 {0, C4_7, C5_7, C6_7}, // L20
41 {0, C4_8, C5_8, C6_8}, // L21
42 {1, C4_1, C5_1, C6_1}, // L87
43 {1, C4_2, C5_2, C6_2}, // L22
44 {1, C4_3, C5_3, C6_3}, // L23
45 {1, C4_6, C5_6, C6_6}, // L24
46 {1, C4_7, C5_7, C6_7}, // L25
47 {1, C4_8, C5_8, C6_8}, // L26
48 {2, C4_1, C5_1, C6_1}, // L27
49 {2, C4_2, C5_2, C6_2}, // L28
50 {2, C4_3, C5_3, C6_3}, // L29
51
52 {0, C7_1, C8_1, C9_1}, // L30
53 {0, C7_2, C8_2, C9_2}, // L31
54 {0, C7_3, C8_3, C9_3}, // L32
55 {0, C7_4, C8_4, C9_4}, // L33
56 {0, C7_5, C8_5, C9_5}, // L34
57 {0, C7_6, C8_6, C9_6}, // L35
58 {2, C4_8, C5_8, C6_8}, // L44
59 {1, C7_1, C8_1, C9_1}, // L36
60 {1, C7_2, C8_2, C9_2}, // L37
61 {1, C7_3, C8_3, C9_3}, // L38
62 {1, C7_4, C8_4, C9_4}, // L39
63 {1, C7_5, C8_5, C9_5}, // L40
64 {1, C7_6, C8_6, C9_6}, // L41
65 {2, C4_6, C5_6, C6_6}, // L42
66 {2, C4_7, C5_7, C6_7}, // L43
67
68
69 {0, C3_11, C2_11, C1_11}, // L45
70 {0, C3_12, C2_12, C1_12}, // L46
71 {0, C3_13, C2_13, C1_13}, // L47
72 {0, C3_14, C2_14, C1_14}, // L48
73 {0, C3_15, C2_15, C1_15}, // L49
74 {0, C3_16, C2_16, C1_16}, // L50
75 {1, C7_9, C8_9, C9_9}, // L51
76 {1, C3_11, C2_11, C1_11}, // L52
77 {1, C3_12, C2_12, C1_12}, // L53
78 {1, C3_13, C2_13, C1_13}, // L54
79 {1, C3_14, C2_14, C1_14}, // L55
80 {1, C3_15, C2_15, C1_15}, // L56
81 {1, C3_16, C2_16, C1_16}, // L57
82 {2, C7_4, C8_4, C9_4}, // L58
83 {2, C7_5, C8_5, C9_5}, // L59
84
85 {0, C4_9, C5_9, C6_9}, // L60
86 {0, C4_10, C5_10, C6_10}, // L61
87 {0, C4_11, C5_11, C6_11}, // L62
88 {0, C4_14, C5_14, C6_14}, // L63
89 {0, C4_15, C5_15, C6_15}, // L64
90 {0, C4_16, C5_16, C6_16}, // L65
91 {1, C7_10, C8_10, C9_10}, // L66
92 {1, C4_9, C5_9, C6_9}, // L67
93 {1, C4_10, C5_10, C6_10}, // L68
94 {1, C4_11, C5_11, C6_11}, // L69
95 {1, C4_14, C5_14, C6_14}, // L70
96 {1, C4_15, C5_15, C6_15}, // L71
97 {1, C4_16, C5_16, C6_16}, // L72
98 {2, C7_6, C8_6, C9_6}, // L73
99
100 {0, C7_9, C8_9, C9_9}, // L74
101 {0, C7_10, C8_10, C9_10}, // L75
102 {0, C7_11, C8_11, C9_11}, // L76
103 {0, C7_12, C8_12, C9_12}, // L77
104 {0, C7_13, C8_13, C9_13}, // L78
105 {0, C7_14, C8_14, C9_14}, // L79
106 {1, C7_11, C8_11, C9_11}, // L80
107 {1, C7_12, C8_12, C9_12}, // L81
108 {1, C7_13, C8_13, C9_13}, // L82
109 {1, C7_14, C8_14, C9_14}, // L83
110 {2, C3_6, C2_6, C1_6}, // L84
111 {2, C3_7, C2_7, C1_7}, // L85
112 {2, C3_8, C2_8, C1_8}, // L86
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 },
117 { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
118 { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44 },
119 { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59 },
120 { 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, NO_LED },
121 { 74, 75, 76, NO_LED, 77, 78, 79, 80, NO_LED, 81, 82, 83, 84, 85, 86 }
122 }, {
123 {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},
124 {0,13}, {16,13}, {32,12}, {49,14}, {66,16}, {82,20}, {92,26}, {102,20}, {118,16}, {134,14}, {150,12}, {167,13}, {184,13}, {197,13}, {216,13},
125 {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},
126 {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},
127 {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},
128 {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}
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#endif
139
140
141void suspend_power_down_kb(void) {
142 rgb_matrix_set_suspend_state(true);
143 suspend_power_down_user();
144}
145
146void suspend_wakeup_init_kb(void) {
147 rgb_matrix_set_suspend_state(false);
148 suspend_wakeup_init_user();
149}
150
151 __attribute__ ((weak)) void rgb_matrix_indicators_user(void) {
152 if (host_keyboard_led_state().caps_lock) {
153 rgb_matrix_set_color(45, 0xFF, 0x00, 0x00);
154 }
155}
diff --git a/keyboards/xbows/nature/nature.h b/keyboards/xbows/nature/nature.h
new file mode 100644
index 000000000..02e1af520
--- /dev/null
+++ b/keyboards/xbows/nature/nature.h
@@ -0,0 +1,33 @@
1/* Copyright 2020 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, \
20 K100, K101, K102, K103, K104, K105, K107, K108, K109, K110, K111, K112, K113, K114, \
21 K200, K201, K202, K203, K204, K205, K207, K208, K209, K210, K211, K212, K213, K214, K206, \
22 K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \
23 K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, \
24 K500, K501, K502, K504, K505, K506, K507, K509, K510, K511, K512, K513, K514 \
25) \
26 { \
27 { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
28 { K100, K101, K102, K103, K104, K105, KC_NO,K107, K108, K109, K110, K111, K112, K113, K114 }, \
29 { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \
30 { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \
31 { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, KC_NO}, \
32 { K500, K501, K502, KC_NO,K504, K505, K506, K507, KC_NO,K509, K510, K511, K512, K513, K514 } \
33}
diff --git a/keyboards/xbows/nature/readme.md b/keyboards/xbows/nature/readme.md
new file mode 100644
index 000000000..18db496d3
--- /dev/null
+++ b/keyboards/xbows/nature/readme.md
@@ -0,0 +1,27 @@
1# NATURE
2![NATURE](https://cdn.shopify.com/s/files/1/0014/7623/1237/files/xbows_1_720x_99574cc7-a547-4c1d-b847-482ec282f45b_540x.png)
3
4Nature, A 86 Keys Ergonomic Mechanical Keyboard with RGB backlight.
5
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.
7
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 Nature
17* Hardware Availability: [X-BOWS](https://x-bows.com/)
18
19Make example for this keyboard (after setting up your build environment):
20
21 make xbows/nature:default
22
23Flashing example for this keyboard:
24
25 make xbows/nature:default:flash
26
27See 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/nature/rules.mk b/keyboards/xbows/nature/rules.mk
new file mode 100644
index 000000000..62359d9aa
--- /dev/null
+++ b/keyboards/xbows/nature/rules.mk
@@ -0,0 +1,23 @@
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 = no # 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 = IS31FL3731