summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--keyboards/gopolar/gg86/gg86.c63
-rw-r--r--keyboards/gopolar/gg86/keymaps/bongocat/keymap.c111
-rw-r--r--keyboards/gopolar/gg86/keymaps/bongocat/readme.md2
-rw-r--r--keyboards/gopolar/gg86/keymaps/default/keymap.c111
-rw-r--r--keyboards/gopolar/gg86/keymaps/horrortroll/config.h52
-rw-r--r--keyboards/gopolar/gg86/keymaps/horrortroll/keymap.c5
-rw-r--r--keyboards/gopolar/gg86/keymaps/horrortroll/keymap_stuff.h305
-rw-r--r--keyboards/gopolar/gg86/keymaps/horrortroll/led/cool_diagonal.c22
-rw-r--r--keyboards/gopolar/gg86/keymaps/horrortroll/led/custom_gradient.c74
-rw-r--r--keyboards/gopolar/gg86/keymaps/horrortroll/led/flower_blooming/flower_blooming.h20
-rw-r--r--keyboards/gopolar/gg86/keymaps/horrortroll/led/kitt.c68
-rw-r--r--keyboards/gopolar/gg86/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.h45
-rw-r--r--keyboards/gopolar/gg86/keymaps/horrortroll/led/random_breath_rainbow.c55
-rw-r--r--keyboards/gopolar/gg86/keymaps/horrortroll/readme.md12
-rw-r--r--keyboards/gopolar/gg86/keymaps/horrortroll/rgb_matrix_user.inc17
-rw-r--r--keyboards/gopolar/gg86/keymaps/horrortroll/rules.mk3
-rw-r--r--keyboards/gopolar/gg86/keymaps/via/keymap.c111
-rw-r--r--keyboards/phage_studio/pila87/keymaps/default/keymap.c26
-rw-r--r--keyboards/phage_studio/pila87/keymaps/horrortroll/config.h26
-rw-r--r--keyboards/phage_studio/pila87/keymaps/horrortroll/keymap.c33
-rw-r--r--keyboards/phage_studio/pila87/keymaps/horrortroll/led/flower_blooming/flower_blooming.c27
-rw-r--r--keyboards/phage_studio/pila87/keymaps/horrortroll/led/kitt.c68
-rw-r--r--keyboards/phage_studio/pila87/keymaps/horrortroll/readme.md9
-rw-r--r--keyboards/phage_studio/pila87/keymaps/horrortroll/rules.mk3
-rw-r--r--keyboards/phage_studio/pila87/keymaps/via/keymap.c26
-rw-r--r--keyboards/phage_studio/pila87/pila87.c31
-rw-r--r--users/horrortroll/config.h64
-rw-r--r--users/horrortroll/horrortroll.c (renamed from keyboards/phage_studio/pila87/keymaps/horrortroll/keymap_stuff.h)77
-rw-r--r--users/horrortroll/horrortroll.h49
-rw-r--r--users/horrortroll/led/cool_diagonal.c (renamed from keyboards/phage_studio/pila87/keymaps/horrortroll/led/cool_diagonal.c)0
-rw-r--r--users/horrortroll/led/custom_gradient.c (renamed from keyboards/phage_studio/pila87/keymaps/horrortroll/led/custom_gradient.c)0
-rw-r--r--users/horrortroll/led/flower_blooming/flower_blooming.c (renamed from keyboards/gopolar/gg86/keymaps/horrortroll/led/flower_blooming/flower_blooming.c)0
-rw-r--r--users/horrortroll/led/flower_blooming/flower_blooming.h (renamed from keyboards/phage_studio/pila87/keymaps/horrortroll/led/flower_blooming/flower_blooming.h)0
-rw-r--r--users/horrortroll/led/random_breath_rainbow.c (renamed from keyboards/phage_studio/pila87/keymaps/horrortroll/led/random_breath_rainbow.c)0
-rw-r--r--users/horrortroll/readme.md (renamed from keyboards/gopolar/gg86/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.c)15
-rw-r--r--users/horrortroll/rgb_matrix_user.inc (renamed from keyboards/phage_studio/pila87/keymaps/horrortroll/rgb_matrix_user.inc)2
-rw-r--r--users/horrortroll/rules.mk6
37 files changed, 258 insertions, 1280 deletions
diff --git a/keyboards/gopolar/gg86/gg86.c b/keyboards/gopolar/gg86/gg86.c
index 3e790cd61e..814ee5ec3e 100644
--- a/keyboards/gopolar/gg86/gg86.c
+++ b/keyboards/gopolar/gg86/gg86.c
@@ -1,4 +1,4 @@
-/* Copyright 2021 Gopolar
+/* Copyright 2023 Gopolar
*
* 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
@@ -20,6 +20,11 @@
#include "lib/logo.h"
#ifdef RGB_MATRIX_ENABLE
+
+#include <string.h>
+#include <math.h>
+#include <lib/lib8tion/lib8tion.h>
+
led_config_t g_led_config = { {
{ 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, NO_LED, 74, 73, 72 },
{ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71 },
@@ -50,6 +55,62 @@ led_config_t g_led_config = { {
// Underglow (88 -> 99)
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
} };
+
+bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case RGB_TOG:
+ if (record->event.pressed) {
+ switch (rgb_matrix_get_flags()) {
+ case LED_FLAG_ALL: {
+ rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR);
+ rgb_matrix_set_color_all(0, 0, 0);
+ }
+ break;
+ case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): {
+ rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
+ rgb_matrix_set_color_all(0, 0, 0);
+ }
+ break;
+ case (LED_FLAG_UNDERGLOW): {
+ rgb_matrix_set_flags(LED_FLAG_NONE);
+ rgb_matrix_set_color_all(0, 0, 0);
+ }
+ break;
+ default: {
+ rgb_matrix_set_flags(LED_FLAG_ALL);
+ rgb_matrix_enable_noeeprom();
+ }
+ break;
+ }
+ }
+ return false;
+ }
+ return process_record_user(keycode, record);
+}
+
+bool rgb_matrix_indicators_kb(void) {
+ if (!rgb_matrix_indicators_user()) {
+ return false;
+ }
+
+ HSV hsv = rgb_matrix_config.hsv;
+ uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1));
+ hsv.h = time;
+ RGB rgb = hsv_to_rgb(hsv);
+
+ if (host_keyboard_led_state().caps_lock) {
+ rgb_matrix_set_color(25, rgb.r, rgb.g, rgb.b);
+ } else if (!(rgb_matrix_get_flags() & LED_FLAG_INDICATOR)) {
+ rgb_matrix_set_color(25, 0, 0, 0);
+ }
+
+ if (host_keyboard_led_state().scroll_lock) {
+ rgb_matrix_set_color(73, rgb.r, rgb.g, rgb.b);
+ } else if (!(rgb_matrix_get_flags() & LED_FLAG_INDICATOR)) {
+ rgb_matrix_set_color(73, 0, 0, 0);
+ }
+ return true;
+}
#endif
#ifdef OLED_ENABLE
diff --git a/keyboards/gopolar/gg86/keymaps/bongocat/keymap.c b/keyboards/gopolar/gg86/keymaps/bongocat/keymap.c
index 454d346f18..e0c17f868a 100644
--- a/keyboards/gopolar/gg86/keymaps/bongocat/keymap.c
+++ b/keyboards/gopolar/gg86/keymaps/bongocat/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2021 HorrorTroll <https://github.com/HorrorTroll>
+/* Copyright 2023 HorrorTroll <https://github.com/HorrorTroll>
*
* 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
@@ -19,11 +19,6 @@
// OLED animation
#include "oled/bongocat.h"
-#include <string.h>
-#include <math.h>
-
-#include <lib/lib8tion/lib8tion.h>
-
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
@@ -34,22 +29,6 @@ enum layer_names {
_FN,
};
-enum user_rgb_mode {
- RGB_MODE_ALL,
- RGB_MODE_KEYLIGHT,
- RGB_MODE_UNDERGLOW,
- RGB_MODE_NONE,
-};
-
-typedef union {
- uint32_t raw;
- struct {
- uint8_t rgb_mode :8;
- };
-} user_config_t;
-
-user_config_t user_config;
-
// enum layer_keycodes { };
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -121,94 +100,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
};
-void keyboard_post_init_user(void) {
- user_config.raw = eeconfig_read_user();
- switch (user_config.rgb_mode) {
- case RGB_MODE_ALL:
- rgb_matrix_set_flags(LED_FLAG_ALL);
- rgb_matrix_enable_noeeprom();
- break;
- case RGB_MODE_KEYLIGHT:
- rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR);
- rgb_matrix_set_color_all(0, 0, 0);
- break;
- case RGB_MODE_UNDERGLOW:
- rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
- rgb_matrix_set_color_all(0, 0, 0);
- break;
- case RGB_MODE_NONE:
- rgb_matrix_set_flags(LED_FLAG_NONE);
- rgb_matrix_set_color_all(0, 0, 0);
- break;
- }
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case RGB_TOG:
- if (record->event.pressed) {
- switch (rgb_matrix_get_flags()) {
- case LED_FLAG_ALL: {
- rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR);
- rgb_matrix_set_color_all(0, 0, 0);
- user_config.rgb_mode = RGB_MODE_KEYLIGHT;
- }
- break;
- case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): {
- rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
- rgb_matrix_set_color_all(0, 0, 0);
- user_config.rgb_mode = RGB_MODE_UNDERGLOW;
- }
- break;
- case (LED_FLAG_UNDERGLOW): {
- rgb_matrix_set_flags(LED_FLAG_NONE);
- rgb_matrix_set_color_all(0, 0, 0);
- user_config.rgb_mode = RGB_MODE_NONE;
- }
- break;
- default: {
- rgb_matrix_set_flags(LED_FLAG_ALL);
- rgb_matrix_enable_noeeprom();
- user_config.rgb_mode = RGB_MODE_ALL;
- }
- break;
- }
- eeconfig_update_user(user_config.raw);
- }
- return false;
- }
-
- return true;
-}
-
-bool rgb_matrix_indicators_user(void) {
- HSV hsv = rgb_matrix_config.hsv;
- uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1));
- hsv.h = time;
- RGB rgb = hsv_to_rgb(hsv);
-
- if ((rgb_matrix_get_flags() & LED_FLAG_KEYLIGHT)) {
- if (host_keyboard_led_state().caps_lock) {
- rgb_matrix_set_color(25, rgb.r, rgb.g, rgb.b);
- }
- if (host_keyboard_led_state().scroll_lock) {
- rgb_matrix_set_color(73, rgb.r, rgb.g, rgb.b);
- }
- } else {
- if (host_keyboard_led_state().caps_lock) {
- rgb_matrix_set_color(25, rgb.r, rgb.g, rgb.b);
- } else {
- rgb_matrix_set_color(25, 0, 0, 0);
- }
- if (host_keyboard_led_state().scroll_lock) {
- rgb_matrix_set_color(73, rgb.r, rgb.g, rgb.b);
- } else {
- rgb_matrix_set_color(73, 0, 0, 0);
- }
- }
- return false;
-}
-
#ifdef OLED_ENABLE
bool oled_task_user(void) {
led_t led_usb_state = host_keyboard_led_state();
diff --git a/keyboards/gopolar/gg86/keymaps/bongocat/readme.md b/keyboards/gopolar/gg86/keymaps/bongocat/readme.md
index 632f9c67e2..9e02220c4c 100644
--- a/keyboards/gopolar/gg86/keymaps/bongocat/readme.md
+++ b/keyboards/gopolar/gg86/keymaps/bongocat/readme.md
@@ -1,3 +1 @@
# Keymap with VIA and Bongo Cat on OLED
-
-Keymap is default 87 qwerty, with TKL 7u-spacebar layout
diff --git a/keyboards/gopolar/gg86/keymaps/default/keymap.c b/keyboards/gopolar/gg86/keymaps/default/keymap.c
index 1d043a95d8..e192d46a80 100644
--- a/keyboards/gopolar/gg86/keymaps/default/keymap.c
+++ b/keyboards/gopolar/gg86/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2021 Gopolar
+/* Copyright 2023 Gopolar
*
* 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
@@ -19,11 +19,6 @@
// OLED animation
#include "lib/wave.h"
-#include <string.h>
-#include <math.h>
-
-#include <lib/lib8tion/lib8tion.h>
-
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
@@ -31,22 +26,6 @@
// enum layer_names { };
-enum user_rgb_mode {
- RGB_MODE_ALL,
- RGB_MODE_KEYLIGHT,
- RGB_MODE_UNDERGLOW,
- RGB_MODE_NONE,
-};
-
-typedef union {
- uint32_t raw;
- struct {
- uint8_t rgb_mode :8;
- };
-} user_config_t;
-
-user_config_t user_config;
-
// enum layer_keycodes { };
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -170,94 +149,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
};
-void keyboard_post_init_user(void) {
- user_config.raw = eeconfig_read_user();
- switch (user_config.rgb_mode) {
- case RGB_MODE_ALL:
- rgb_matrix_set_flags(LED_FLAG_ALL);
- rgb_matrix_enable_noeeprom();
- break;
- case RGB_MODE_KEYLIGHT:
- rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR);
- rgb_matrix_set_color_all(0, 0, 0);
- break;
- case RGB_MODE_UNDERGLOW:
- rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
- rgb_matrix_set_color_all(0, 0, 0);
- break;
- case RGB_MODE_NONE:
- rgb_matrix_set_flags(LED_FLAG_NONE);
- rgb_matrix_set_color_all(0, 0, 0);
- break;
- }
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case RGB_TOG:
- if (record->event.pressed) {
- switch (rgb_matrix_get_flags()) {
- case LED_FLAG_ALL: {
- rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR);
- rgb_matrix_set_color_all(0, 0, 0);
- user_config.rgb_mode = RGB_MODE_KEYLIGHT;
- }
- break;
- case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): {
- rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
- rgb_matrix_set_color_all(0, 0, 0);
- user_config.rgb_mode = RGB_MODE_UNDERGLOW;
- }
- break;
- case (LED_FLAG_UNDERGLOW): {
- rgb_matrix_set_flags(LED_FLAG_NONE);
- rgb_matrix_set_color_all(0, 0, 0);
- user_config.rgb_mode = RGB_MODE_NONE;
- }
- break;
- default: {
- rgb_matrix_set_flags(LED_FLAG_ALL);
- rgb_matrix_enable_noeeprom();
- user_config.rgb_mode = RGB_MODE_ALL;
- }
- break;
- }
- eeconfig_update_user(user_config.raw);
- }
- return false;
- }
-
- return true;
-}
-
-bool rgb_matrix_indicators_user(void) {
- HSV hsv = rgb_matrix_config.hsv;
- uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1));
- hsv.h = time;
- RGB rgb = hsv_to_rgb(hsv);
-
- if ((rgb_matrix_get_flags() & LED_FLAG_KEYLIGHT)) {
- if (host_keyboard_led_state().caps_lock) {
- rgb_matrix_set_color(25, rgb.r, rgb.g, rgb.b);
- }
- if (host_keyboard_led_state().scroll_lock) {
- rgb_matrix_set_color(73, rgb.r, rgb.g, rgb.b);
- }
- } else {
- if (host_keyboard_led_state().caps_lock) {
- rgb_matrix_set_color(25, rgb.r, rgb.g, rgb.b);
- } else {
- rgb_matrix_set_color(25, 0, 0, 0);
- }
- if (host_keyboard_led_state().scroll_lock) {
- rgb_matrix_set_color(73, rgb.r, rgb.g, rgb.b);
- } else {
- rgb_matrix_set_color(73, 0, 0, 0);
- }
- }
- return false;
-}
-
#ifdef OLED_ENABLE
static void render_layer_info(void) {
switch (get_highest_layer(layer_state)) {
diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/config.h b/keyboards/gopolar/gg86/keymaps/horrortroll/config.h
deleted file mode 100644
index 246f36bb94..0000000000
--- a/keyboards/gopolar/gg86/keymaps/horrortroll/config.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright 2021 HorrorTroll <https://github.com/HorrorTroll>
- *
- * 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
-
-#define DYNAMIC_KEYMAP_LAYER_COUNT 2
-#define NO_ACTION_ONESHOT
-
-#ifdef RGB_MATRIX_ENABLE
- /* RGB Matrix effect */
- #undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
- #undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
- #undef ENABLE_RGB_MATRIX_BAND_SAT
- #undef ENABLE_RGB_MATRIX_BAND_VAL
- #undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
- #undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
- #undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
- #undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
- #undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
- #undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
- #undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
- #undef ENABLE_RGB_MATRIX_DUAL_BEACON
- #undef ENABLE_RGB_MATRIX_RAINBOW_BEACON
- #undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
- #undef ENABLE_RGB_MATRIX_RAINDROPS
- #undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
- #undef ENABLE_RGB_MATRIX_HUE_WAVE
- #undef ENABLE_RGB_MATRIX_PIXEL_RAIN
-
- #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE
- #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
- #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
- #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
- #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
- #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
- #undef ENABLE_RGB_MATRIX_SPLASH
- #undef ENABLE_RGB_MATRIX_SOLID_SPLASH
- #undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-#endif
diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/keymap.c b/keyboards/gopolar/gg86/keymaps/horrortroll/keymap.c
index 65d473639d..fc725ad3f0 100644
--- a/keyboards/gopolar/gg86/keymaps/horrortroll/keymap.c
+++ b/keyboards/gopolar/gg86/keymaps/horrortroll/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2021 HorrorTroll <https://github.com/HorrorTroll>
+/* Copyright 2023 HorrorTroll <https://github.com/HorrorTroll>
*
* 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
@@ -16,7 +16,8 @@
#include QMK_KEYBOARD_H
-#include "keymap_stuff.h"
+#include "horrortroll.h"
+#include "oled/oled_stuff.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/keymap_stuff.h b/keyboards/gopolar/gg86/keymaps/horrortroll/keymap_stuff.h
deleted file mode 100644
index 9003cd5e6b..0000000000
--- a/keyboards/gopolar/gg86/keymaps/horrortroll/keymap_stuff.h
+++ /dev/null
@@ -1,305 +0,0 @@
-/* Copyright 2021 HorrorTroll <https://github.com/HorrorTroll>
- *
- * 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 "oled/oled_stuff.h"
-#include <string.h>
-#include <math.h>
-
-#include <lib/lib8tion/lib8tion.h>
-
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
-
-enum layer_names {
- _BASE,
- _FN,
-};
-
-// For CUSTOM_GRADIENT
-HSV gradient_0 = {205, 250, 255};
-HSV gradient_100 = {140, 215, 125};
-bool reflected_gradient = false;
-uint8_t gp_i = 0;
-
-typedef struct {
- HSV gradient_0;
- HSV gradient_1;
- bool reflected;
-} CUSTOM_PRESETS;
-
-enum user_rgb_mode {
- RGB_MODE_ALL,
- RGB_MODE_KEYLIGHT,
- RGB_MODE_UNDERGLOW,
- RGB_MODE_NONE,
-};
-
-typedef union {
- uint32_t raw;
- struct {
- uint8_t rgb_mode :8;
- };
-} user_config_t;
-
-user_config_t user_config;
-
-enum layer_keycodes {
- //Custom Gradient control keycode
- G1_HUI = SAFE_RANGE, //Custom gradient color 1 hue increase
- G1_HUD, //Custom gradient color 1 hue decrease
- G1_SAI, //Custom gradient color 1 saturation increase
- G1_SAD, //Custom gradient color 1 saturation decrease
- G1_VAI, //Custom gradient color 1 value increase
- G1_VAD, //Custom gradient color 1 value decrease
- G2_HUI, //Custom gradient color 2 hue increase
- G2_HUD, //Custom gradient color 2 hue decrease
- G2_SAI, //Custom gradient color 2 saturation increase
- G2_SAD, //Custom gradient color 2 saturation decrease
- G2_VAI, //Custom gradient color 2 value increase
- G2_VAD, //Custom gradient color 2 value decrease
- G_PRE, //Gradient presets
- REF_G, //Toggle between linear and reflected gradient
- G_FLIP, //Flip the gradient colors
-
- //Custom led effect keycode
- RGB_C_E, //Cycle user effect
-};
-
-void keyboard_post_init_user(void) {
- user_config.raw = eeconfig_read_user();
- switch (user_config.rgb_mode) {
- case RGB_MODE_ALL:
- rgb_matrix_set_flags(LED_FLAG_ALL);
- rgb_matrix_enable_noeeprom();
- break;
- case RGB_MODE_KEYLIGHT:
- rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR);
- rgb_matrix_set_color_all(0, 0, 0);
- break;
- case RGB_MODE_UNDERGLOW:
- rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
- rgb_matrix_set_color_all(0, 0, 0);
- break;
- case RGB_MODE_NONE:
- rgb_matrix_set_flags(LED_FLAG_NONE);
- rgb_matrix_set_color_all(0, 0, 0);
- break;
- }
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- process_record_user_oled(keycode, record);
-
- uint8_t color_adj_step = 5;
-
- CUSTOM_PRESETS gradient_presets[] = {
- {{41 , 255, 255}, {233, 245, 255}, false },
- {{45 , 245, 155}, {160, 255, 80}, false },
- {{173, 245, 40}, {41 , 255, 205}, true },
- {{32 , 255, 165}, {217, 185, 70}, false },
- {{240, 255, 145}, {115, 255, 245}, true },
- {{118, 255, 255}, {242, 255, 255}, false },
- {{212, 0 , 0}, {223, 235, 165}, true },
- {{205, 250, 255}, {140, 215, 125}, false },
- };
-
- uint8_t gp_length = ARRAY_SIZE(gradient_presets);
-
- switch (keycode) {
- case G1_HUI:
- if (record->event.pressed) {
- gradient_0.h += color_adj_step;
- dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v);
- }
- return false;
- case G1_HUD:
- if (record->event.pressed) {
- gradient_0.h -= color_adj_step;
- dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v);
- }
- return false;
- case G1_SAI:
- if (record->event.pressed) {
- gradient_0.s = (gradient_0.s + color_adj_step * 2 <= 255) ? gradient_0.s + color_adj_step * 2 : 255;
- dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v);
- }
- return false;
- case G1_SAD:
- if (record->event.pressed) {
- gradient_0.s = (gradient_0.s - color_adj_step * 2 >= 0) ? gradient_0.s - color_adj_step * 2 : 0;
- dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v);
- }
- return false;
- case G1_VAI:
- if (record->event.pressed) {
- gradient_0.v = (gradient_0.v + color_adj_step * 2 <= 255) ? gradient_0.v + color_adj_step * 2 : 255;
- dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v);
- }
- return false;
- case G1_VAD:
- if (record->event.pressed) {
- gradient_0.v = (gradient_0.v - color_adj_step * 2 >= 0) ? gradient_0.v - color_adj_step * 2 : 0;
- dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v);
- }
- return false;
- case G2_HUI:
- if (record->event.pressed) {
- gradient_100.h += color_adj_step;
- dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v);
- }
- return false;
- case G2_HUD:
- if (record->event.pressed) {
- gradient_100.h -= color_adj_step;
- dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v);
- }
- return false;
- case G2_SAI:
- if (record->event.pressed) {
- gradient_100.s = (gradient_100.s + color_adj_step * 2 <= 255) ? gradient_100.s + color_adj_step * 2 : 255;
- dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v);
- }
- return false;
- case G2_SAD:
- if (record->event.pressed) {
- gradient_100.s = (gradient_100.s - color_adj_step * 2 >= 0) ? gradient_100.s - color_adj_step * 2 : 0;
- dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v);
- }
- return false;
- case G2_VAI:
- if (record->event.pressed) {
- gradient_100.v = (gradient_100.v + color_adj_step * 2 <= 255) ? gradient_100.v + color_adj_step * 2 : 255;
- dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v);
- }
- return false;
- case G2_VAD:
- if (record->event.pressed) {
- gradient_100.v = (gradient_100.v - color_adj_step * 2 >= 0) ? gradient_100.v - color_adj_step * 2 : 0;
- dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v);
- }
- return false;
- case G_PRE:
- if (record->event.pressed) {
- gp_i = (gp_i + gp_length ) % gp_length;
-
- gradient_0 = gradient_presets[gp_i].gradient_0;
- gradient_100 = gradient_presets[gp_i].gradient_1;
- reflected_gradient = gradient_presets[gp_i].reflected;
-
- gp_i += 1;
- }
- return false;
- case REF_G:
- if (record->event.pressed) {
- reflected_gradient = !reflected_gradient;
- }
- return false;
- case G_FLIP:
- if (record->event.pressed) {
- HSV temp_color = gradient_0;
- gradient_0 = gradient_100;