Browse Source

Merge remote-tracking branch 'origin/master' into develop

QMK Bot 3 years ago
parent
commit
1be1bebc04

+ 103 - 0
keyboards/linworks/fave87h/config.h

@@ -0,0 +1,103 @@
+/*
+Copyright 2020 <contact@vwolf.be>
+
+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
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID    0x4C58 //"LX"
+#define PRODUCT_ID   0x0003 // FAve 87H
+#define DEVICE_VER   0x0001 // Version 1
+#define MANUFACTURER    Lx3
+#define PRODUCT         FAve 87H
+
+/* key matrix size */
+#define MATRIX_ROWS 6
+#define MATRIX_COLS 17
+
+// Checked with Eagle Schematic
+#define MATRIX_ROW_PINS { B1, B2, B3, D3, D1, D0  }
+#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4, B0, B7, E6}
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+//Led configuration
+#define RGB_DI_PIN D2
+
+#define DRIVER_LED_TOTAL 127
+#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 140
+
+#define RGB_MATRIX_KEYPRESSES
+//#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
+
+#define RGB_DISABLE_WHEN_USB_SUSPENDED
+
+#define ENABLE_RGB_MATRIX_ALPHAS_MODS
+#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
+#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
+#define ENABLE_RGB_MATRIX_BREATHING
+#define ENABLE_RGB_MATRIX_BAND_SAT
+#define ENABLE_RGB_MATRIX_BAND_VAL
+#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
+#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
+#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
+#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
+#define ENABLE_RGB_MATRIX_CYCLE_ALL
+#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
+#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
+#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
+#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
+#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
+#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
+#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
+#define ENABLE_RGB_MATRIX_DUAL_BEACON
+#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
+#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
+#define ENABLE_RGB_MATRIX_RAINDROPS
+#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
+#define ENABLE_RGB_MATRIX_HUE_BREATHING
+#define ENABLE_RGB_MATRIX_HUE_PENDULUM
+#define ENABLE_RGB_MATRIX_HUE_WAVE
+#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
+#define ENABLE_RGB_MATRIX_PIXEL_RAIN
+#ifdef RGB_MATRIX_FRAMEBUFFER_EFFECTS
+    #define ENABLE_RGB_MATRIX_TYPING_HEATMAP
+    #define ENABLE_RGB_MATRIX_DIGITAL_RAIN
+#endif
+#ifdef RGB_MATRIX_KEYPRESSES
+    #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
+    #define ENABLE_RGB_MATRIX_SOLID_REACTIVE
+    #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
+    #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
+    #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
+    #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
+    #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
+    #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
+    #define ENABLE_RGB_MATRIX_SPLASH
+    #define ENABLE_RGB_MATRIX_MULTISPLASH
+    #define ENABLE_RGB_MATRIX_SOLID_SPLASH
+    #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
+#endif
+
+#define NO_ACTION_MACRO
+#define NO_ACTION_FUNCTION

+ 51 - 0
keyboards/linworks/fave87h/fave87h.c

@@ -0,0 +1,51 @@
+/*
+Copyright 2020 <contact@vwolf.be>
+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 "fave87h.h"
+
+
+#ifdef RGB_MATRIX_ENABLE
+led_config_t g_led_config = {
+    {
+        // Key Matrix to LED Index
+        { 47, NO_LED, 48,     49,     50, 51,     52,     53,     54, 55, 56,     57,     58,     59,     60,     61,     62 },
+        { 46,     45, 44,     43,     42, 41,     40,     39,     38, 37, 36,     35,     34,     33,     32,     31,     30 },
+        { 13,     14, 15,     16,     17, 18,     19,     20,     21, 22, 23,     24,     25,     26,     27,     28,     29 },
+        { 12,     11, 10,      9,      8,  7,      6,      5,      4,  3,  2,      1, NO_LED,      0, NO_LED, NO_LED, NO_LED },
+        { 74,     75, 76,     77,     78, 79,     80,     81,     82, 83, 84, NO_LED,     85, NO_LED, NO_LED,     86, NO_LED },
+        { 73,     72, 71, NO_LED, NO_LED, 70, NO_LED, NO_LED, NO_LED, 69, 68, NO_LED,     67,     66,     65,     64,     63 },
+    }, {
+        // LED Index to Physical Position
+        {190, 40},  {167, 40},  {153, 40},  {139, 40},  {125, 40},  {111, 40},  {97, 40},   {83, 40},   {69, 40},   {55, 40}, 
+        {40, 40},   {26, 40},   {0, 41},    {5, 27},    {23, 27},   {37, 27},   {51, 27},   {65, 27},   {79, 27},   {93, 27}, 
+        {107, 27},  {121, 27},  {135, 27},  {149, 27},  {163, 27},  {177, 27},  {195, 27},  {216, 27},  {230, 27},  {244, 27}, 
+        {244, 15},  {230, 15},  {216, 15},  {191, 17},  {170, 15},  {156, 15},  {142, 15},  {128, 15},  {114, 15},  {100, 15}, 
+        {86, 15},   {72, 15},   {58, 15},   {44, 15},   {30, 15},   {16, 15},   {2, 15},    {2, 0},     {30, 0},    {44, 0}, 
+        {58, 0},    {72, 0},    {93, 0},    {107, 0},   {121, 0},   {135, 0},   {156, 0},   {170, 0},   {184, 0},   {198, 0}, 
+        {216, 0},   {230, 0},   {244, 0},   {244, 64},  {230, 64},  {216, 64},  {197, 64},  {179, 64},  {162, 64},  {144, 64}, 
+        {91, 64},   {39, 64},   {21, 64},   {4, 64},    {11, 52},   {33, 52},   {47, 52},   {62, 52},   {76, 52},   {90, 52}, 
+        {104, 52},  {118, 52},  {132, 52},  {146, 52},  {160, 52},  {186, 52},  {230, 52}
+    }, {
+        // LED Index to Flag
+        1,    4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1, 
+        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 
+        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 
+        8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1, 
+        1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    1,       4,
+        1, 1, 1,       4,          1, 1,    1, 1, 1, 1, 1,
+
+        2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+        2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
+    }
+};
+#endif

+ 34 - 0
keyboards/linworks/fave87h/fave87h.h

@@ -0,0 +1,34 @@
+/*
+Copyright 2020 <contact@vwolf.be>
+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
+
+#include "quantum.h"
+
+/* FAve 87H Keymap Definitions */
+#define LAYOUT( \
+    K00,      K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D,  K0E, K0F, K0G, \
+    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,  K1E, K1F, K1G, \
+    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D,  K2E, K2F, K2G, \
+    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D,                 \
+    K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A,      K4C,            K4F,      \
+    K50, K51, K52,           K55,                K59, K5A,      K5C, K5D,  K5E, K5F, K5G  \
+) { \
+    { K00, KC_NO, K02, K03,   K04,   K05, K06,   K07,   K08,   K09, K0A, K0B,   K0C, K0D,   K0E,   K0F,   K0G   }, \
+    { K10, K11,   K12, K13,   K14,   K15, K16,   K17,   K18,   K19, K1A, K1B,   K1C, K1D,   K1E,   K1F,   K1G   }, \
+    { K20, K21,   K22, K23,   K24,   K25, K26,   K27,   K28,   K29, K2A, K2B,   K2C, K2D,   K2E,   K2F,   K2G   }, \
+    { K30, K31,   K32, K33,   K34,   K35, K36,   K37,   K38,   K39, K3A, K3B,   K3C, K3D,   KC_NO, KC_NO, KC_NO }, \
+    { K40, K41,   K42, K43,   K44,   K45, K46,   K47,   K48,   K49, K4A, KC_NO, K4C, KC_NO, KC_NO, K4F,   KC_NO }, \
+    { K50, K51,   K52, KC_NO, KC_NO, K55, KC_NO, KC_NO, KC_NO, K59, K5A, KC_NO, K5C, K5D,   K5E,   K5F,   K5G   }  \
+}

File diff suppressed because it is too large
+ 6 - 0
keyboards/linworks/fave87h/info.json


+ 49 - 0
keyboards/linworks/fave87h/keymaps/default/keymap.c

@@ -0,0 +1,49 @@
+/*
+Copyright 2020 <contact@vwolf.be>
+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
+
+enum layers {
+    _LAYER0,
+    _LAYER1,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+    [_LAYER0] = LAYOUT(
+        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,
+        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,
+        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,
+        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_DEL,  KC_ENT,        
+        KC_LSFT, KC_Z,    KC_X,    KC_C,  KC_V,  KC_B,   KC_N,  KC_M,  KC_COMM, KC_DOT,  KC_SLSH,          KC_RSFT,                      KC_UP,
+        KC_LCTL, KC_LGUI, KC_LALT,               KC_SPC,                        KC_RALT, KC_RGUI,          MO(1),   KC_RCTL,    KC_LEFT, KC_DOWN, KC_RGHT
+    ),
+
+    [_LAYER1] = 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS,
+        KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS,
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST,        
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET,   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,                      KC_AUDIO_VOL_UP,
+        KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS,                            KC_TRNS, KC_TRNS,          KC_TRNS, KC_TRNS,    KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK
+    )
+    };
+};
+
+void rgb_matrix_indicators_user(void) {
+    led_t host_leds = host_keyboard_led_state();
+    if (host_leds.caps_lock) {
+        rgb_matrix_set_color(12, 254, 189, 41); // set caps lock led color first number is index, R G B
+    }
+}

+ 68 - 0
keyboards/linworks/fave87h/keymaps/via/keymap.c

@@ -0,0 +1,68 @@
+/*
+Copyright 2020 <contact@vwolf.be>
+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
+
+enum layers {
+    _LAYER0,
+    _LAYER1,
+    _LAYER2,
+    _LAYER3,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+    [_LAYER0] = LAYOUT(
+        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,
+        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,
+        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,
+        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_DEL,  KC_ENT,        
+        KC_LSFT, KC_Z,    KC_X,    KC_C,  KC_V,  KC_B,   KC_N,  KC_M,  KC_COMM, KC_DOT,  KC_SLSH,          KC_RSFT,                      KC_UP,
+        KC_LCTL, KC_LGUI, KC_LALT,               KC_SPC,                        KC_RALT, KC_RGUI,          MO(1),   KC_RCTL,    KC_LEFT, KC_DOWN, KC_RGHT
+    ),
+
+    [_LAYER1] = 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS,
+        KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS,
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST,        
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET,   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,                      KC_AUDIO_VOL_UP,
+        KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS,                            KC_TRNS, KC_TRNS,          KC_TRNS, KC_TRNS,    KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK
+    ),
+
+    [_LAYER2] = 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS,
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS,
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,        
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,                      KC_TRNS,
+        KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS,                            KC_TRNS, KC_TRNS,          KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS
+    ),
+
+    [_LAYER3] = 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS,
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS,
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,        
+        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,                      KC_TRNS,
+        KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS,                            KC_TRNS, KC_TRNS,          KC_TRNS, KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS
+    )
+};
+
+void rgb_matrix_indicators_user(void) {
+    led_t host_leds = host_keyboard_led_state();
+    if (host_leds.caps_lock) {
+        rgb_matrix_set_color(12, 254, 189, 41); // set caps lock led color first number is index, R G B
+    }
+}

+ 1 - 0
keyboards/linworks/fave87h/keymaps/via/rules.mk

@@ -0,0 +1 @@
+VIA_ENABLE = yes

+ 22 - 0
keyboards/linworks/fave87h/readme.md

@@ -0,0 +1,22 @@
+# FAve 87H
+
+The following is the QMK Firmware for the FAve 87H Hotswap PCB.
+
+The PCB features:
+* QMK & VIA compatibility
+* Hotswap
+
+---
+
+* Keyboard Maintainer: [ToastyStoemp](https://github.com/ToastyStoemp)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make linworks/fave87h:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+## Bootloader Enter the bootloader in 3 ways: 
+* **Bootmagic reset**: Hold down the key ESC key and plug in the keyboard (Top Left most switch)
+* **Physical reset button**: Briefly press the button on the back of the PCB
+* **Keycode in layout**: Press the B key on layer 1 which is mapped to `RESET`

+ 23 - 0
keyboards/linworks/fave87h/rules.mk

@@ -0,0 +1,23 @@
+# MCU name
+MCU = atmega32u4
+
+# Processor frequency
+F_CPU = 8000000
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+#   change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes     # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = no       # Mouse keys
+EXTRAKEY_ENABLE = yes       # Audio control and System control
+CONSOLE_ENABLE = no         # Console for debug
+COMMAND_ENABLE = no        # Commands for debug and configuration
+NKRO_ENABLE = yes           # Enable N-key Rollover
+BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
+AUDIO_ENABLE = no           # Audio output
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812

Some files were not shown because too many files changed in this diff