From 2af5d493e32dffe89d8b4908905d57a42aa47e53 Mon Sep 17 00:00:00 2001
From: X-Bows Tech <41098278+XBowsTech@users.noreply.github.com>
Date: Sat, 3 Jul 2021 15:57:27 +0800
Subject: [Keyboard] Add X-Bows Knight_Plus Keyboard (#13221)

Co-authored-by: Drashna Jaelre <drashna@live.com>
---
 keyboards/xbows/numpad/keymaps/default/config.h | 43 +++++++++++++++++
 keyboards/xbows/numpad/keymaps/default/keymap.c | 49 +++++++++++++++++++
 keyboards/xbows/numpad/keymaps/via/config.h     | 64 +++++++++++++++++++++++++
 keyboards/xbows/numpad/keymaps/via/keymap.c     | 63 ++++++++++++++++++++++++
 keyboards/xbows/numpad/keymaps/via/rules.mk     |  1 +
 5 files changed, 220 insertions(+)
 create mode 100644 keyboards/xbows/numpad/keymaps/default/config.h
 create mode 100644 keyboards/xbows/numpad/keymaps/default/keymap.c
 create mode 100644 keyboards/xbows/numpad/keymaps/via/config.h
 create mode 100644 keyboards/xbows/numpad/keymaps/via/keymap.c
 create mode 100644 keyboards/xbows/numpad/keymaps/via/rules.mk

(limited to 'keyboards/xbows/numpad/keymaps')

diff --git a/keyboards/xbows/numpad/keymaps/default/config.h b/keyboards/xbows/numpad/keymaps/default/config.h
new file mode 100644
index 0000000000..c8235f5161
--- /dev/null
+++ b/keyboards/xbows/numpad/keymaps/default/config.h
@@ -0,0 +1,43 @@
+/* Copyright 2021 Shulin Huang <mumu@x-bows.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+ #pragma once
+
+ #ifdef RGB_MATRIX_ENABLE
+ #    define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT // Sets the default mode, if none has been set
+ #    define DISABLE_RGB_MATRIX_SOLID_COLOR               // Static single hue, no speed support
+ #    define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN          // Static gradient top to bottom, speed controls how much gradient changes
+ #    define DISABLE_RGB_MATRIX_BAND_SAT                  // Single hue band fading saturation scrolling left to right
+ #    define DISABLE_RGB_MATRIX_BAND_VAL                  // Single hue band fading brightness scrolling left to right
+ #    define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT         // Single hue 3 blade spinning pinwheel fades saturation
+ #    define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAT           // Single hue spinning spiral fades saturation
+ #    define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL         // Full dual gradients scrolling out to in
+ #    define DISABLE_RGB_MATRIX_CYCLE_SPIRAL              // Full gradient spinning spiral around center of keyboard
+
+ #    define DISABLE_RGB_MATRIX_DIGITAL_RAIN              // That famous computer simulation
+ #    define DISABLE_RGB_MATRIX_TYPING_HEATMAP            // How hot is your WPM!
+
+ #    define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE       // Hue & value pulse near a single key hit then fades value out
+ #    define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE  // Hue & value pulse near multiple key hits then fades value out
+ #    define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS      // Hue & value pulse the same column and row of a single key hit then fades value out
+ #    define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Hue & value pulse the same column and row of multiple key hits then fades value out
+ #    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
+ #    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
+ //#    define DISABLE_RGB_MATRIX_SPLASH                    // Full gradient & value pulse away from a single key hit then fades value out
+ #    define DISABLE_RGB_MATRIX_MULTISPLASH               // Full gradient & value pulse away from multiple key hits then fades value out
+ #    define DISABLE_RGB_MATRIX_SOLID_SPLASH              // Hue & value pulse away from a single key hit then fades value out
+ //#    define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH         // Hue & value pulse away from multiple key hits then fades value out
+
+ #endif
diff --git a/keyboards/xbows/numpad/keymaps/default/keymap.c b/keyboards/xbows/numpad/keymaps/default/keymap.c
new file mode 100644
index 0000000000..b2b4da7fb5
--- /dev/null
+++ b/keyboards/xbows/numpad/keymaps/default/keymap.c
@@ -0,0 +1,49 @@
+/* Copyright 2021 Shulin Huang <mumu@x-bows.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  /* Keymap VANILLA: (Base Layer) Default Layer
+   *
+   * |-------------------------------|
+   * |  Esc  |  Tab  |   BS  |   Fn  |
+   * |-------------------------------|
+   * |  NUM  |   /   |   *   |   =   |
+   * |-------------------------------|
+   * |   7   |  8    |   9   |   -   |
+   * |-------------------------------|
+   * |   4   |   5   |   6   |   +   |
+   * |-------------------------------|
+   * |   1   |  2   |    3   | ENTER |
+   * |-------------------------------|
+   * |        0     |    .   |
+   * |-----------------------|
+   */
+  [0] = LAYOUT(
+    KC_ESC ,  KC_TAB,   KC_BSPC,  MO(1),
+    KC_NLCK,  KC_PSLS,  KC_PAST,  KC_EQL,
+    KC_P7,    KC_P8,    KC_P9,    KC_PMNS,
+    KC_P4,    KC_P5,    KC_P6,    KC_PPLS,
+    KC_P1,    KC_P2,    KC_P3,    KC_PENT,
+         KC_P0,       KC_PDOT),
+  [1] = LAYOUT(
+    RESET,     EEP_RST,   KC_TRNS,   KC_TRNS,
+    KC_CALC,   KC_MYCM,   KC_MSEL,   KC_MAIL,
+    RGB_MOD,   RGB_VAI,   RGB_HUI,   KC_VOLD,
+    RGB_SPD,   RGB_TOG,   RGB_SPI,   KC_VOLU,
+    KC_TRNS,   RGB_VAD,   KC_TRNS,   KC_TRNS,
+        KC_TRNS,          KC_TRNS)
+};
diff --git a/keyboards/xbows/numpad/keymaps/via/config.h b/keyboards/xbows/numpad/keymaps/via/config.h
new file mode 100644
index 0000000000..aa5e4c1cd2
--- /dev/null
+++ b/keyboards/xbows/numpad/keymaps/via/config.h
@@ -0,0 +1,64 @@
+/* Copyright 2021 Shulin Huang <mumu@x-bows.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#ifdef RGB_MATRIX_ENABLE
+#    define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT // Sets the default mode, if none has been set
+#    define DISABLE_RGB_MATRIX_ALPHAS_MODS               // Static dual hue, speed is hue for secondary hue
+#    define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN          // Static gradient top to bottom, speed controls how much gradient changes
+#    define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT       // Static gradient left to right, speed controls how much gradient changes
+//#    define DISABLE_RGB_MATRIX_BREATHING                 // Single hue brightness cycling animation
+#    define DISABLE_RGB_MATRIX_BAND_SAT                  // Single hue band fading saturation scrolling left to right
+#    define DISABLE_RGB_MATRIX_BAND_VAL                  // Single hue band fading brightness scrolling left to right
+#    define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT         // Single hue 3 blade spinning pinwheel fades saturation
+#    define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL         // Single hue 3 blade spinning pinwheel fades brightness
+#    define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT           // Single hue spinning spiral fades saturation
+#    define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL           // Single hue spinning spiral fades brightness
+//#    define DISABLE_RGB_MATRIX_CYCLE_ALL                 // Full keyboard solid hue cycling through full gradient
+//#    define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT          // Full gradient scrolling left to right
+#    define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN             // Full gradient scrolling top to bottom
+//#    define DISABLE_RGB_MATRIX_CYCLE_OUT_IN              // Full gradient scrolling out to in
+#    define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL         // Full dual gradients scrolling out to in
+#    define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON    // Full gradent Chevron shapped scrolling left to right
+#    define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL            // Full gradient spinning pinwheel around center of keyboard
+#    define DISABLE_RGB_MATRIX_CYCLE_SPIRAL              // Full gradient spinning spiral around center of keyboard
+#    define DISABLE_RGB_MATRIX_DUAL_BEACON               // Full gradient spinning around center of keyboard
+//#    define DISABLE_RGB_MATRIX_RAINBOW_BEACON            // Full tighter gradient spinning around center of keyboard
+#    define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS         // Full dual gradients spinning two halfs of keyboard
+#    define DISABLE_RGB_MATRIX_RAINDROPS                 // Randomly changes a single key's hue
+#    define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS       // Randomly changes a single key's hue and saturation
+//#    define DISABLE_RGB_MATRIX_HUE_BREATHING             // Hue shifts up a slight ammount at the same time, then shifts back
+#    define DISABLE_RGB_MATRIX_HUE_PENDULUM              // Hue shifts up a slight ammount in a wave to the right, then back to the left
+//#    define DISABLE_RGB_MATRIX_HUE_WAVE                  // Hue shifts up a slight ammount and then back down in a wave to the right
+
+#    define DISABLE_RGB_MATRIX_DIGITAL_RAIN              // That famous computer simulation
+#    define DISABLE_RGB_MATRIX_TYPING_HEATMAP            // How hot is your WPM!
+
+//#    define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE     // Pulses keys hit to hue & value then fades value out
+//#    define DISABLE_RGB_MATRIX_SOLID_REACTIVE            // Static single hue, pulses keys hit to shifted hue then fades to current hue
+#    define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE       // Hue & value pulse near a single key hit then fades value out
+#    define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE  // Hue & value pulse near multiple key hits then fades value out
+#    define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS      // Hue & value pulse the same column and row of a single key hit then fades value out
+#    define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Hue & value pulse the same column and row of multiple key hits then fades value out
+#    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
+#    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
+//#    define DISABLE_RGB_MATRIX_SPLASH                    // Full gradient & value pulse away from a single key hit then fades value out
+#    define DISABLE_RGB_MATRIX_MULTISPLASH               // Full gradient & value pulse away from multiple key hits then fades value out
+#    define DISABLE_RGB_MATRIX_SOLID_SPLASH              // Hue & value pulse away from a single key hit then fades value out
+//#    define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH         // Hue & value pulse away from multiple key hits then fades value out
+
+
+#endif
diff --git a/keyboards/xbows/numpad/keymaps/via/keymap.c b/keyboards/xbows/numpad/keymaps/via/keymap.c
new file mode 100644
index 0000000000..6b122cc5d0
--- /dev/null
+++ b/keyboards/xbows/numpad/keymaps/via/keymap.c
@@ -0,0 +1,63 @@
+/* Copyright 2021 Shulin Huang <mumu@x-bows.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  /* Keymap VANILLA: (Base Layer) Default Layer
+   *
+   * |-------------------------------|
+   * |  Esc  |  Tab  |   BS  |   Fn  |
+   * |-------------------------------|
+   * |  NUM  |   /   |   *   |   =   |
+   * |-------------------------------|
+   * |   7   |  8    |   9   |   -   |
+   * |-------------------------------|
+   * |   4   |   5   |   6   |   +   |
+   * |-------------------------------|
+   * |   1   |  2   |    3   | ENTER |
+   * |-------------------------------|
+   * |        0     |    .   |
+   * |-----------------------|
+   */
+  [0] = LAYOUT(
+    KC_ESC ,  KC_TAB,   KC_BSPC,  MO(1),
+    KC_NLCK,  KC_PSLS,  KC_PAST,  KC_EQL,
+    KC_P7,    KC_P8,    KC_P9,    KC_PMNS,
+    KC_P4,    KC_P5,    KC_P6,    KC_PPLS,
+    KC_P1,    KC_P2,    KC_P3,    KC_PENT,
+         KC_P0,       KC_PDOT),
+  [1] = LAYOUT(
+    RESET,     EEP_RST,   KC_TRNS,   KC_TRNS,
+    KC_CALC,   KC_MYCM,   KC_MSEL,   KC_MAIL,
+    RGB_MOD,   RGB_VAI,   RGB_HUI,   KC_VOLD,
+    RGB_SPD,   RGB_TOG,   RGB_SPI,   KC_VOLU,
+    KC_TRNS,   RGB_VAD,   KC_TRNS,   KC_TRNS,
+        KC_TRNS,          KC_TRNS),
+  [2] = LAYOUT(
+    KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,
+    KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,
+    KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,
+    KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,
+    KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,
+        KC_TRNS,          KC_TRNS),
+  [3] = LAYOUT(
+    KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,
+    KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,
+    KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,
+    KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,
+    KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,
+        KC_TRNS,          KC_TRNS)
+};
diff --git a/keyboards/xbows/numpad/keymaps/via/rules.mk b/keyboards/xbows/numpad/keymaps/via/rules.mk
new file mode 100644
index 0000000000..1e5b99807c
--- /dev/null
+++ b/keyboards/xbows/numpad/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
-- 
cgit v1.2.3