summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Baptist <rpbaptist@users.noreply.github.com>2020-03-10 07:40:27 +0100
committerGitHub <noreply@github.com>2020-03-09 23:40:27 -0700
commita4fd5e2491aa7213d15ef2ff3615b8eb75660e93 (patch)
tree1da00bb7b00f8e9df612ac87aac48b44caaa3751
parent5e3951b361e6d173b705bd3b2b6df0c543258d98 (diff)
[Keymap] Update personal keymap (#8354)
-rw-r--r--keyboards/crkbd/keymaps/rpbaptist/config.h159
-rw-r--r--keyboards/crkbd/keymaps/rpbaptist/glcdfont_godspeed.c231
-rw-r--r--keyboards/crkbd/keymaps/rpbaptist/glcdfont_laser.c231
-rw-r--r--keyboards/crkbd/keymaps/rpbaptist/glcdfont_pulse.c231
-rw-r--r--keyboards/crkbd/keymaps/rpbaptist/keymap.c573
-rw-r--r--keyboards/crkbd/keymaps/rpbaptist/readme.md47
-rw-r--r--keyboards/crkbd/keymaps/rpbaptist/rules.mk29
7 files changed, 1292 insertions, 209 deletions
diff --git a/keyboards/crkbd/keymaps/rpbaptist/config.h b/keyboards/crkbd/keymaps/rpbaptist/config.h
index da47524a89..6bd16725f5 100644
--- a/keyboards/crkbd/keymaps/rpbaptist/config.h
+++ b/keyboards/crkbd/keymaps/rpbaptist/config.h
@@ -25,88 +25,115 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Select hand configuration */
#define EE_HANDS
-#undef SSD1306OLED
+#ifdef OLED_DRIVER_ENABLE
+# undef SSD1306OLED
+# define OLED_TIMEOUT 600000
+#endif
+#undef USE_I2C
#define USE_SERIAL_PD2
-#define FORCE_NKRO
+// #define FORCE_NKRO
-#define QMK_ESC_OUTPUT F4 // usually COL
-#define QMK_ESC_INPUT D4 // usually ROW
+#define QMK_ESC_OUTPUT F4 // usually COL
+#define QMK_ESC_INPUT D4 // usually ROW
#define QMK_LED B0
+#define NO_ACTION_ONESHOT
+
#ifdef RGB_MATRIX_ENABLE
- #define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
- #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150
-
- #define RGB_MATRIX_HUE_STEP 10
- #define RGB_MATRIX_SAT_STEP 15
- #define RGB_MATRIX_VAL_STEP 16
- #define RGB_MATRIX_SPD_STEP 10
-
- #define DISABLE_RGB_MATRIX_ALPHAS_MODS
- #define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
- #define DISABLE_RGB_MATRIX_BREATHING
- #define DISABLE_RGB_MATRIX_BAND_SAT
- #define DISABLE_RGB_MATRIX_BAND_VAL
- #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
- #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
- #define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT
- #define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL
- // #define DISABLE_RGB_MATRIX_CYCLE_ALL
- #define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
- #define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN
- #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN
- #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
- #define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
- #define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL
- #define DISABLE_RGB_MATRIX_CYCLE_SPIRAL
- // #define DISABLE_RGB_MATRIX_DUAL_BEACON
- #define DISABLE_RGB_MATRIX_RAINBOW_BEACON
- #define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
- #define DISABLE_RGB_MATRIX_RAINDROPS
- #define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-
- #define RGB_MATRIX_FRAMEBUFFER_EFFECTS
- // #define DISABLE_RGB_MATRIX_TYPING_HEATMAP
- #define DISABLE_RGB_MATRIX_DIGITAL_RAIN
-
- #define RGB_MATRIX_KEYPRESSES // reacts to keypresses
-
- #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
- #define DISABLE_RGB_MATRIX_SOLID_REACTIVE
- #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
- #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
- #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
- #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
- #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
- // #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-
- // #define DISABLE_RGB_MATRIX_SPLASH
- #define DISABLE_RGB_MATRIX_MULTISPLASH
- #define DISABLE_RGB_MATRIX_SOLID_SPLASH
- #define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
-
- #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_TYPING_HEATMAP
+# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
+# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150
+
+# define RGB_MATRIX_HUE_STEP 8
+# define RGB_MATRIX_SAT_STEP 12
+# define RGB_MATRIX_VAL_STEP 10
+# define RGB_MATRIX_SPD_STEP 10
+
+# define DISABLE_RGB_MATRIX_ALPHAS_MODS
+# define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
+# define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
+# define DISABLE_RGB_MATRIX_BREATHING
+# define DISABLE_RGB_MATRIX_BAND_SAT
+# define DISABLE_RGB_MATRIX_BAND_VAL
+# define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
+# define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
+# define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT
+# define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL
+
+// #define DISABLE_RGB_MATRIX_CYCLE_ALL
+// # define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
+# define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN
+# define DISABLE_RGB_MATRIX_CYCLE_OUT_IN
+# define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
+# define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
+# define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL
+# define DISABLE_RGB_MATRIX_CYCLE_SPIRAL
+# define DISABLE_RGB_MATRIX_DUAL_BEACON
+# define DISABLE_RGB_MATRIX_RAINBOW_BEACON
+// #define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
+# define DISABLE_RGB_MATRIX_RAINDROPS
+# define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
+
+# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
+// #define DISABLE_RGB_MATRIX_TYPING_HEATMAP
+# define DISABLE_RGB_MATRIX_DIGITAL_RAIN
+
+# define RGB_MATRIX_KEYPRESSES // reacts to keypresses
+
+# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
+# define DISABLE_RGB_MATRIX_SOLID_REACTIVE
+# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
+# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
+# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
+# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
+# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
+// # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
+
+# define DISABLE_RGB_MATRIX_SPLASH
+# define DISABLE_RGB_MATRIX_MULTISPLASH
+# define DISABLE_RGB_MATRIX_SOLID_SPLASH
+# define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
+
+# define RGB_MATRIX_ANIMATION_SPEED_DEFAULT UINT8_MAX / 2
+# define RGB_MATRIX_ANIMATION_SPEED_SLOW RGB_MATRIX_ANIMATION_SPEED_DEFAULT / 4
+# define RGB_MATRIX_ANIMATION_SPEED_SLOWER RGB_MATRIX_ANIMATION_SPEED_SLOW / 3
#endif
-#define TAPPING_TERM 150
-// #define PERMISSIVE_HOLD
+#define TAPPING_TERM 140
+#define PERMISSIVE_HOLD
#define IGNORE_MOD_TAP_INTERRUPT
-// #define RETRO_TAPPING
#define TAPPING_TOGGLE 2
-#define MOUSEKEY_DELAY 0
-#define MOUSEKEY_INTERVAL 16
-#define MOUSEKEY_MAX_SPEED 6
-#define MOUSEKEY_TIME_TO_MAX 32
-#define MOUSEKEY_WHEEL_MAX_SPEED 4
-#define MOUSEKEY_WHEEL_TIME_TO_MAX 40
+#ifdef MOUSEKEY_ENABLE
+# define MOUSEKEY_DELAY 0
+# define MOUSEKEY_INTERVAL 16
+# define MOUSEKEY_MAX_SPEED 6
+# define MOUSEKEY_TIME_TO_MAX 36
+# define MOUSEKEY_WHEEL_MAX_SPEED 4
+# define MOUSEKEY_WHEEL_TIME_TO_MAX 100
+#endif
+
+#ifdef THEME_GODSPEED
+# define OLED_FONT_H "keyboards/crkbd/keymaps/rpbaptist/glcdfont_godspeed.c"
+# define THEME_HSV 132, 255, 125
+#endif
-#define OLED_FONT_H "keyboards/crkbd/keymaps/rpbaptist/glcdfont.c"
+#ifdef THEME_PULSE
+# define OLED_FONT_H "keyboards/crkbd/keymaps/rpbaptist/glcdfont_pulse.c"
+# define THEME_HSV 123, 255, 125
+#endif
+
+#ifdef THEME_LASER
+# define OLED_FONT_H "keyboards/crkbd/keymaps/rpbaptist/glcdfont_laser.c"
+# define THEME_HSV HSV_MAGENTA
+#endif
#define NO_ACTION_ONESHOT
#undef PRODUCT
#define PRODUCT Corne Keyboard
+
+#define LCPC_KEYS KC_LCTL, KC_LSFT, KC_9
+#define RCPC_KEYS KC_RCTL, KC_RSFT, KC_0
diff --git a/keyboards/crkbd/keymaps/rpbaptist/glcdfont_godspeed.c b/keyboards/crkbd/keymaps/rpbaptist/glcdfont_godspeed.c
new file mode 100644
index 0000000000..ac1f11dbbe
--- /dev/null
+++ b/keyboards/crkbd/keymaps/rpbaptist/glcdfont_godspeed.c
@@ -0,0 +1,231 @@
+#include "progmem.h"
+
+// Helidox 8x6 font with QMK Firmware Logo
+// Online editor: http://teripom.x0.com/
+
+const unsigned char font[] PROGMEM = {
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
+0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
+0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
+0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
+0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
+0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
+0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
+0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
+0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
+0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
+0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
+0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
+0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
+0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
+0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
+0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
+0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
+0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
+0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
+0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
+0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
+0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
+0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
+0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
+0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
+0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
+0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
+0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
+0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
+0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
+0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
+0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
+0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
+0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
+0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
+0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
+0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
+0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
+0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
+0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
+0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
+0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
+0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
+0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
+0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
+0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
+0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
+0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
+0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
+0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
+0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
+0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
+0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
+0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
+0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
+0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
+0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
+0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
+0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
+0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
+0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
+0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
+0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
+0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
+0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
+0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
+0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
+0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
+0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
+0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
+0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
+0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
+0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
+0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
+0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
+0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
+0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
+0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
+0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
+0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
+0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
+0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
+0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
+0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
+0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
+0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
+0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
+0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
+0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
+0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
+0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
+0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
+0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
+0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
+0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
+0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
+0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
+0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
+0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
+0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
+0x18, 0x24, 0x24, 0x1C, 0x78, 0x00,
+0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
+0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
+0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
+0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
+0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
+0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
+0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
+0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
+0x7C, 0x18, 0x24, 0x24, 0x18, 0x00,
+0x18, 0x24, 0x24, 0x18, 0x7C, 0x00,
+0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
+0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
+0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
+0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
+0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
+0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
+0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
+0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
+0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
+0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
+0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
+0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
+0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
+0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0xE0,
+0x38, 0x1C, 0x0C, 0x06, 0x03, 0x03,
+0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+0x03, 0x03, 0x82, 0x86, 0xCC, 0xF8,
+0xF0, 0xF0, 0x38, 0x1C, 0x0C, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0xC0, 0x70,
+0xF8, 0x0C, 0x04, 0xC6, 0xA2, 0xB3,
+0x9F, 0x87, 0x01, 0x01, 0x1F, 0x66,
+0x66, 0x44, 0x4C, 0x58, 0x70, 0xE0,
+0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0xC0,
+0xE0, 0x78, 0x18, 0x8C, 0xC6, 0xE6,
+0xE3, 0xE3, 0xC3, 0x83, 0x03, 0x03,
+0x73, 0x76, 0x76, 0x0C, 0x18, 0xF8,
+0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC,
+0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00,
+0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E,
+0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00,
+0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B,
+0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00,
+0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE,
+0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x80, 0xC0, 0x40, 0x7F, 0xF3,
+0x60, 0x20, 0x30, 0x30, 0x38, 0x18,
+0x9C, 0xCC, 0x6C, 0x6E, 0x3E, 0x3E,
+0x1F, 0x0F, 0x0F, 0x03, 0x03, 0x01,
+0xC0, 0xFF, 0x3E, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x7F, 0xC1, 0x00,
+0x1D, 0x67, 0xC0, 0x80, 0x01, 0x00,
+0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00,
+0x0C, 0x1A, 0x32, 0xC2, 0x01, 0xC1,
+0xFF, 0x3E, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x7E, 0xFF,
+0x80, 0x00, 0x00, 0xC3, 0xC7, 0xC7,
+0x8F, 0x0F, 0x07, 0x03, 0x80, 0xC0,
+0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x07,
+0x0F, 0xFF, 0x7F, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
+0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00,
+0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F,
+0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00,
+0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20,
+0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00,
+0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F,
+0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x01, 0x01, 0x00, 0x40, 0x60, 0x31,
+0x3B, 0x1E, 0x0C, 0x1E, 0x36, 0x23,
+0x61, 0x60, 0x60, 0x60, 0x60, 0x60,
+0x60, 0x30, 0x1C, 0x3E, 0x3E, 0x3F,
+0x1D, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x01, 0x07,
+0x0C, 0x18, 0x10, 0x33, 0x3E, 0x38,
+0x6E, 0x67, 0x60, 0x60, 0x60, 0x20,
+0x30, 0x18, 0x08, 0x0F, 0x06, 0x03,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+0x03, 0x06, 0x0C, 0x19, 0x31, 0x21,
+0x60, 0x60, 0x60, 0x60, 0x61, 0x63,
+0x67, 0x67, 0x33, 0x39, 0x18, 0x0E,
+0x07, 0x03, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
diff --git a/keyboards/crkbd/keymaps/rpbaptist/glcdfont_laser.c b/keyboards/crkbd/keymaps/rpbaptist/glcdfont_laser.c
new file mode 100644
index 0000000000..612b7123b0
--- /dev/null
+++ b/keyboards/crkbd/keymaps/rpbaptist/glcdfont_laser.c
@@ -0,0 +1,231 @@
+#include "progmem.h"
+
+// Helidox 8x6 font with QMK Firmware Logo
+// Online editor: http://teripom.x0.com/
+
+const unsigned char font[] PROGMEM = {
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
+0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
+0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
+0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
+0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
+0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
+0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
+0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
+0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
+0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
+0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
+0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
+0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
+0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
+0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
+0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
+0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
+0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
+0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
+0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
+0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
+0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
+0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
+0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
+0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
+0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
+0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
+0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
+0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
+0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
+0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
+0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
+0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
+0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
+0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
+0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
+0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
+0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
+0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
+0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
+0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
+0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
+0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
+0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
+0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
+0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
+0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
+0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
+0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
+0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
+0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
+0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
+0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
+0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
+0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
+0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
+0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
+0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
+0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
+0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
+0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
+0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
+0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
+0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
+0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
+0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
+0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
+0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
+0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
+0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
+0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
+0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
+0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
+0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
+0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
+0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
+0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
+0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
+0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
+0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
+0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
+0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
+0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
+0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
+0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
+0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
+0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
+0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
+0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
+0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
+0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
+0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
+0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
+0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
+0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
+0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
+0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
+0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
+0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
+0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
+0x18, 0x24, 0x24, 0x1C, 0x78, 0x00,
+0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
+0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
+0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
+0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
+0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
+0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
+0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
+0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
+0x7C, 0x18, 0x24, 0x24, 0x18, 0x00,
+0x18, 0x24, 0x24, 0x18, 0x7C, 0x00,
+0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
+0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
+0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
+0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
+0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
+0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
+0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
+0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
+0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
+0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
+0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
+0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
+0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
+0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
+0xE0, 0xF8, 0x3E, 0x0F, 0x03, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x80, 0xC0,
+0xE0, 0xF0, 0xF8, 0xFC, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0xE0, 0xF0, 0x7C,
+0x3F, 0x0F, 0x03, 0x03, 0x03, 0x03,
+0x03, 0x03, 0x1B, 0x1F, 0x1F, 0x07,
+0x03, 0xC0, 0xE0, 0xFC, 0x1C, 0x0F,
+0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
+0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
+0xE7, 0xFF, 0xFF, 0x0F, 0x03, 0x03,
+0x03, 0x03, 0x83, 0x83, 0xE3, 0xE7,
+0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC,
+0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00,
+0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E,
+0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00,
+0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B,
+0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00,
+0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE,
+0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x80, 0xC0, 0xF0, 0x7C, 0x1F, 0x07,
+0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
+0x80, 0x90, 0x98, 0x9C, 0x8C, 0x80,
+0x80, 0x80, 0x9C, 0x9C, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
+0x10, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
+0x1C, 0x1C, 0x9C, 0x9C, 0x1C, 0x1C,
+0x0C, 0x0C, 0x80, 0x90, 0x90, 0x10,
+0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
+0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x0C,
+0x00, 0x00, 0x90, 0x90, 0x9C, 0x9C,
+0x1C, 0x1C, 0x1C, 0x1C, 0x9C, 0x9C,
+0x9C, 0x0C, 0x0C, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
+0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00,
+0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F,
+0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00,
+0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20,
+0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00,
+0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F,
+0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x70, 0x7C, 0x7E,
+0x6F, 0x63, 0x60, 0x60, 0x60, 0x60,
+0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
+0x60, 0x70, 0x78, 0x3C, 0x1E, 0x0F,
+0x07, 0x03, 0x01, 0x01, 0x01, 0x01,
+0x01, 0x01, 0x7F, 0x7F, 0x00, 0x00,
+0x60, 0x70, 0x7C, 0x7C, 0x6C, 0x60,
+0x60, 0x60, 0x60, 0x60, 0x60, 0x78,
+0x3E, 0x0F, 0x03, 0x01, 0x00, 0x60,
+0x78, 0x7E, 0x67, 0x61, 0x60, 0x60,
+0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
+0x70, 0x00, 0x00, 0x00, 0x00, 0x60,
+0x78, 0x7E, 0x0F, 0x07, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x03, 0x0F,
+0x7F, 0x70, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
diff --git a/keyboards/crkbd/keymaps/rpbaptist/glcdfont_pulse.c b/keyboards/crkbd/keymaps/rpbaptist/glcdfont_pulse.c
new file mode 100644
index 0000000000..3699f4500b
--- /dev/null
+++ b/keyboards/crkbd/keymaps/rpbaptist/glcdfont_pulse.c
@@ -0,0 +1,231 @@
+#include "progmem.h"
+
+// Helidox 8x6 font with QMK Firmware Logo
+// Online editor: http://teripom.x0.com/
+
+const unsigned char font[] PROGMEM = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
+ 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
+ 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
+ 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
+ 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
+ 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
+ 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
+ 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
+ 0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
+ 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
+ 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
+ 0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
+ 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
+ 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
+ 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
+ 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
+ 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
+ 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
+ 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
+ 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
+ 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
+ 0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
+ 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
+ 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
+ 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
+ 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
+ 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
+ 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
+ 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
+ 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
+ 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
+ 0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
+ 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
+ 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
+ 0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
+ 0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
+ 0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
+ 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
+ 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
+ 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
+ 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
+ 0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
+ 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
+ 0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
+ 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
+ 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
+ 0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
+ 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
+ 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
+ 0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
+ 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
+ 0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
+ 0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
+ 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
+ 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
+ 0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
+ 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
+ 0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
+ 0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
+ 0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
+ 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
+ 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
+ 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
+ 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
+ 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
+ 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
+ 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
+ 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
+ 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
+ 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
+ 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
+ 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
+ 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
+ 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
+ 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
+ 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
+ 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
+ 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
+ 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
+ 0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
+ 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
+ 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
+ 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
+ 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
+ 0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
+ 0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
+ 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
+ 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
+ 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
+ 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
+ 0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
+ 0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
+ 0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
+ 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
+ 0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
+ 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
+ 0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
+ 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
+ 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00,
+ 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
+ 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
+ 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
+ 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
+ 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
+ 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
+ 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
+ 0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
+ 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00,
+ 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00,
+ 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
+ 0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
+ 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
+ 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
+ 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
+ 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
+ 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
+ 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
+ 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
+ 0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
+ 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
+ 0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
+ 0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
+ 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x80, 0xF0, 0xF8, 0xF8, 0xF0,
+ 0x80, 0x00, 0x00, 0x00, 0x00, 0x80,
+ 0xF0, 0xFE, 0x7F, 0x7F, 0xFE, 0xF0,
+ 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC,
+ 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00,
+ 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E,
+ 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00,
+ 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B,
+ 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00,
+ 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE,
+ 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
+ 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
+ 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
+ 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
+ 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
+ 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
+ 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
+ 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
+ 0x1C, 0x1F, 0x0F, 0x03, 0x03, 0x1F,
+ 0xFF, 0xFC, 0xE0, 0xE0, 0xFC, 0xFF,
+ 0x1F, 0x03, 0x00, 0x00, 0x03, 0x1F,
+ 0xFF, 0xFC, 0xE0, 0xE0, 0xF8, 0xFC,
+ 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
+ 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
+ 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
+ 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
+ 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
+ 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
+ 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
+ 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
+ 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
+ 0x1F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
+ 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00,
+ 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F,
+ 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00,
+ 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20,
+ 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00,
+ 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F,
+ 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x07, 0x0F, 0x0F, 0x07, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x07, 0x0F, 0x0F, 0x07, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
diff --git a/keyboards/crkbd/keymaps/rpbaptist/keymap.c b/keyboards/crkbd/keymaps/rpbaptist/keymap.c
index 932641a9f8..0296749d09 100644
--- a/keyboards/crkbd/keymaps/rpbaptist/keymap.c
+++ b/keyboards/crkbd/keymaps/rpbaptist/keymap.c
@@ -1,46 +1,84 @@
#include QMK_KEYBOARD_H
-extern uint8_t is_master;
+extern uint8_t is_master;
+static uint32_t oled_timer = 0;
+
+#ifdef RGB_MATRIX_ENABLE
+ static uint32_t hypno_timer;
+#endif
enum layer_names {
_COLEMAKDHM,
_GAMING,
_GAMING_EXT,
- _NUM,
- _FN,
+ _NUMPAD,
+ _SYM,
_NAV,
_UTIL
};
+enum custom_keycodes {
+ BSP_DEL = SAFE_RANGE,
+ RGB_RST, // Reset RGB
+ RGB_UND, // Toggle RGB underglow as layer indicator
+ RGB_IDL, // RGB Idling animations
+ RGB_MAP, // RGB_MATRIX_TYPING_HEATMAP
+ RGB_NXS, // RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
+ RGB_SOL, // RGB_MATRIX_SOLID_COLOR
+ RGB_CYC, // RGB_MATRIX_CYCLE_ALL
+ RGB_DUO, // RGB_MATRIX_RAINBOW_PINWHEELS
+ RGB_SCR // RGB_MATRIX_CYCLE_LEFT_RIGHT
+};
+
+typedef union {
+ uint32_t raw;
+ struct {
+ bool rgb_layer_change : 1;
+ bool rgb_matrix_idle_anim : 1;
+ uint8_t rgb_matrix_active_mode : 4;
+ uint8_t rgb_matrix_idle_mode : 4;
+ uint8_t rgb_matrix_active_speed : 8;
+ uint8_t rgb_matrix_idle_speed : 8;
+ uint16_t rgb_matrix_idle_timeout : 16;
+ };
+} user_config_t;
+
+user_config_t user_config;
+
// Base layers
#define COLEMAK DF(_COLEMAKDHM)
-#define GAMING DF(_GAMING)
+#define GAMING DF(_GAMING)
// Layer toggle and switch
#define T_NAV TT(_NAV)
#define S_NAV MO(_NAV)
-#define T_NUM TT(_NUM)
-#define S_NUM MO(_NUM)
+#define T_SYM TT(_SYM)
+#define S_SYM MO(_SYM)
// Layer keys with functionality on tap
-#define FN_TAB LT(_FN, KC_TAB)
#define NAV_0 LT(_NAV, KC_0)
+#define TAB_NUM LT(_NUMPAD, KC_TAB)
+
#define EXT_SF LT(_GAMING_EXT, KC_LSHIFT)
// Tap/mod keys
-#define RCTBR RCTL_T(KC_RBRACKET)
-#define LCTBR LCTL_T(KC_LBRACKET)
+#define RCTL_BR RCTL_T(KC_RBRACKET)
+#define LCTL_BR LCTL_T(KC_LBRACKET)
-#define SFSPC LSFT_T(KC_SPACE)
-#define SFENT LSFT_T(KC_ENTER)
+#define SFT_SPC LSFT_T(KC_SPACE)
+#define SFT_ENT RSFT_T(KC_ENTER)
// Global tab forward and backward
-#define TBFWD LCTL(KC_TAB)
-#define TBBCK LCTL(LSFT(KC_TAB))
+#define TAB_FWD LCTL(KC_TAB)
+#define TAB_BCK LCTL(LSFT(KC_TAB))
+#define TAB_CLS LCTL(KC_W)
+
+#define WIN_CLS LALT(KC_F4)
-// Custom key for NUM layer
-#define CTEQL RCTL_T(KC_EQL)
+// CTRL become parens keys on NAV and NUM layers
+#define LCT_PRN KC_LCPO
+#define RCT_PRN KC_RCPC
// €
#define KC_EUR ALGR(KC_5)
@@ -48,19 +86,19 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_COLEMAKDHM] = LAYOUT( \
//,-----------------------------------------------------. ,-----------------------------------------------------.
- KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,\
+ KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, BSP_DEL,\
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- FN_TAB, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT,\
+ TAB_NUM, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT,\
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- LCTBR, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, RCTBR,\
+ LCTL_BR, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, RCTL_BR,\
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- KC_LALT, T_NUM, SFSPC, SFENT, T_NAV, KC_RGUI \
+ KC_LALT, T_SYM, SFT_SPC, SFT_ENT, T_NAV, KC_RGUI \
//`--------------------------' `--------------------------'
),
[_GAMING] = LAYOUT( \
//,-----------------------------------------------------. ,-----------------------------------------------------.
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSPC,\
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_TAB, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
@@ -72,59 +110,59 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_GAMING_EXT] = LAYOUT( \
//,-----------------------------------------------------. ,-----------------------------------------------------.
- KC_GRV, KC_1, KC_2, _______, KC_3, KC_4, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_DEL,\
+ KC_GRV, KC_1, KC_2, _______, KC_3, KC_4, _______, _______, _______, _______, _______, KC_DEL,\
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_LBRC, KC_RBRC, _______, _______, _______, KC_BSLS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,\
+ KC_LBRC, KC_RBRC, _______, _______, _______, KC_BSLS, _______, _______, _______, _______, _______, _______,\
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F11, KC_F12, KC_MINS, KC_EQL, _______, _______,\
+ KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, _______, _______, _______,\
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, KC_ENT, _______, _______ \
//`--------------------------' `--------------------------'
),
- [_FN] = LAYOUT( \
+ [_NUMPAD] = LAYOUT( \
//,-----------------------------------------------------. ,-----------------------------------------------------.
- KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,\
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_EUR, KC_P7, KC_P8, KC_P9, XXXXXXX, _______,\
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- _______, XXXXXXX, XXXXXXX, XXXXXXX, KC_CAPS, KC_NLCK, XXXXXXX, KC_MINS, KC_PIPE, KC_BSLS, KC_PLUS, XXXXXXX,\
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PPLS,\
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- _______, XXXXXXX, KC_PAUS, KC_SLCK, KC_PSCR, KC_INS, XXXXXXX, KC_UNDS, KC_LT, KC_GT, KC_EQL, _______,\
+ KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NLCK, KC_EQL, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_PAST,\
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- _______, _______, _______, _______, _______, _______ \
+ _______, _______, _______, _______, KC_P0, KC_DOT \
//`--------------------------' `--------------------------'
),
- [_NUM] = LAYOUT( \
+ [_SYM] = LAYOUT( \
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,\
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_SLSH, KC_4, KC_5, KC_6, KC_MINS, KC_PLUS,\
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_UNDS, KC_MINS, KC_PLUS,\
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- _______, KC_CIRC, KC_AMPR, KC_EUR, KC_LPRN, KC_RPRN, KC_ASTR, KC_1, KC_2, KC_3, KC_UNDS, CTEQL,\
+ LCT_PRN, XXXXXXX, XXXXXXX, XXXXXXX, KC_EUR, XXXXXXX, KC_EQL, KC_PIPE, KC_LT, KC_GT, KC_BSLS, RCT_PRN,\
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- _______, S_NUM, _______, _______, NAV_0, KC_DOT \
+ _______, S_SYM, _______, _______, _______, _______ \
//`--------------------------' `--------------------------'
),
[_NAV] = LAYOUT( \
//,-----------------------------------------------------. ,-----------------------------------------------------.
- _______, KC_WH_U, TBBCK, KC_MS_U, TBFWD, KC_BTN2, KC_PGUP, KC_HOME, KC_UP, KC_END, XXXXXXX, KC_DEL,\
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_PGUP, KC_HOME, KC_UP, KC_END, XXXXXXX, KC_BSPC,\
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_TAB, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN1, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX,\
+ KC_TILD, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX,\
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- _______, XXXXXXX, KC_WH_L, XXXXXXX, KC_WH_R, XXXXXXX, XXXXXXX, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, _______,\
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+-------+---------|
- _______, _______, _______, _______, S_NAV, _______ \
+ LCT_PRN, KC_F11, KC_F12, KC_INS, KC_PSCR, KC_CAPS, WIN_CLS, TAB_BCK, TAB_CLS, TAB_FWD, XXXXXXX, RCT_PRN,\
+ //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+---------|
+ _______, _______, _______, _______, S_NAV, _______ \
//`--------------------------' `--------------------------'
),
[_UTIL] = LAYOUT( \
//,-----------------------------------------------------. ,-----------------------------------------------------.
- RESET, XXXXXXX, KC_MSTP, KC_VOLU, KC_MNXT, XXXXXXX, COLEMAK, GAMING, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\
+ RESET, XXXXXXX, KC_MPRV, KC_VOLU, KC_MNXT, COLEMAK, RGB_IDL, RGB_MAP, RGB_NXS, XXXXXXX, RGB_HUD, RGB_HUI,\
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- XXXXXXX, XXXXXXX, KC_MPRV, KC_VOLD, KC_MPLY, XXXXXXX, XXXXXXX, RGB_MOD, RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI,\
+ RGB_RST, XXXXXXX, KC_MSTP, KC_VOLD, KC_MPLY, GAMING, RGB_UND, RGB_DUO, RGB_SCR, RGB_SPI, RGB_SAD, RGB_SAI,\
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- XXXXXXX, KC_SLEP, XXXXXXX, KC_MUTE, XXXXXXX, XXXXXXX, RGB_TOG,RGB_RMOD, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD,\
+ EEP_RST, KC_SLEP, XXXXXXX, KC_MUTE, XXXXXXX, XXXXXXX, RGB_TOG, RGB_SOL, RGB_CYC, RGB_SPD, RGB_VAD, RGB_VAI,\
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
_______, _______, _______, _______, _______, _______ \
//`--------------------------' `--------------------------'
@@ -132,103 +170,404 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
layer_state_t layer_state_set_user(layer_state_t state) {
- switch (get_highest_layer(default_layer_state)) {
- case _COLEMAKDHM:
- state = update_tri_layer_state(state, _NUM, _NAV, _UTIL);
- break;
- case _GAMING:
- state = update_tri_layer_state(state, _GAMING_EXT, _NAV, _UTIL);
- break;
- }
- return state;
+ switch (get_highest_layer(default_layer_state)) {
+ case _COLEMAKDHM:
+ state = update_tri_layer_state(state, _SYM, _NAV, _UTIL);
+ break;
+ case _GAMING:
+ state = update_tri_layer_state(state, _GAMING_EXT, _NAV, _UTIL);
+ break;
+ }
+ return state;
}
#ifdef OLED_DRIVER_ENABLE
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- if (is_master) {
- return OLED_ROTATION_270;
- } else {
- return OLED_ROTATION_180;
- }
+ if (is_master) {
+ return OLED_ROTATION_270;
+ } else {
+ return OLED_ROTATION_180;
+ }
}
void render_crkbd_logo(void) {
- static const char PROGMEM crkbd_logo[] = {
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
- 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
- 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
- 0};
- oled_write_P(crkbd_logo, false);
+ static const char PROGMEM crkbd_logo[] = {
+ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
+ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
+ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
+ 0};
+ oled_write_P(crkbd_logo, false);
+}
+
+# ifdef RGB_MATRIX_ENABLE
+const char *rgb_matrix_anim_oled_text(uint8_t mode) {
+ switch (mode) {
+ case RGB_MATRIX_TYPING_HEATMAP:
+ return PSTR("Heat ");
+ case RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS:
+ return PSTR("Nexus");
+ case RGB_MATRIX_SOLID_COLOR:
+ return PSTR("Solid");
+ case RGB_MATRIX_CYCLE_ALL:
+ return PSTR("Cycle");
+ case RGB_MATRIX_RAINBOW_PINWHEELS:
+ return PSTR("Wheel");
+ case RGB_MATRIX_CYCLE_LEFT_RIGHT:
+ return PSTR("Wave ");
+ default:
+ return PSTR("");
+ }
}
+# endif
void render_status(void) {
- // oled_write_P(PSTR("Layout: "), false);
- switch (get_highest_layer(default_layer_state)) {
- case _COLEMAKDHM:
- oled_write_P(PSTR("CLMK "), false);
- break;
- case _GAMING:
- oled_write_P(PSTR("GAME "), false);
- break;
- }
-
- oled_write_P(PSTR("\n"), false);
-
- switch (get_highest_layer(layer_state)) {
- case 0:
- oled_write_P(PSTR(" "), false);
- break;
- case _NUM:
- oled_write_P(PSTR("Comm "), false);
- break;
- case _FN:
- oled_write_P(PSTR("Stage"), false);
- break;
- case _NAV:
- oled_write_P(PSTR("Fuel "), false);
- break;
- case _GAMING_EXT:
- oled_write_P(PSTR("Ext "), false);
- break;
- case _UTIL:
- oled_write_P(PSTR("Util "), false);
- break;
- default:
- oled_write_P(PSTR("Unkn "), false);
- break;
- }
- oled_write_P(PSTR("\n"), false);
-
- uint8_t modifiers = get_mods();
-
- oled_write_P( (modifiers & MOD_MASK_CTRL) ? PSTR("PROG ") : PSTR(" "), false);
- oled_write_P( (modifiers & MOD_MASK_SHIFT) ? PSTR("PULSE") : PSTR(" "), false);
- oled_write_P( (modifiers & MOD_MASK_ALT) ? PSTR("STBY ") : PSTR(" "), false);
- oled_write_P( (modifiers & MOD_MASK_GUI) ? PSTR("GYRO ") : PSTR(" "), false);
-
- oled_write_P(PSTR("\n"), false);
-
- uint8_t led_usb_state = host_keyboard_leds();
- oled_write_P(PSTR("Mode:\n"), false);
- oled_write_P(IS_LED_ON(led_usb_state, USB_LED_NUM_LOCK) ? PSTR(" NUM ") : PSTR(" "), false);
- oled_write_P(IS_LED_ON(led_usb_state, USB_LED_CAPS_LOCK) ? PSTR(" CAPS") : PSTR(" "), false);
- oled_write_P(IS_LED_ON(led_usb_state, USB_LED_SCROLL_LOCK) ? PSTR(" SCRL") : PSTR(" "), false);
+ // oled_write_P(PSTR("Layout: "), false);
+ switch (get_highest_layer(default_layer_state)) {
+ case _COLEMAKDHM:
+ oled_write_P(PSTR("TYPE "), false);
+ break;
+ case _GAMING:
+ oled_write_P(PSTR("GAME "), false);
+ break;
+ }
+
+ oled_write_P(PSTR("\n"), false);
+
+ switch (get_highest_layer(layer_state)) {
+ case 0:
+ oled_write_P(PSTR(" "), false);
+ break;
+ case _SYM:
+ oled_write_P(PSTR("Sym "), false);
+ break;
+ case _NAV:
+ oled_write_P(PSTR("Nav "), false);
+ break;
+ case _GAMING_EXT:
+ oled_write_P(PSTR("Ext "), false);
+ break;
+ case _NUMPAD:
+ oled_write_P(PSTR("Num "), false);
+ break;
+ case _UTIL:
+ oled_write_P(PSTR("Util "), false);
+ break;
+ default:
+ oled_write_P(PSTR("Unkn "), false);
+ break;
+ }
+ oled_write_P(PSTR("\n"), false);
+
+ uint8_t modifiers = get_mods();
+
+ oled_write_P((modifiers & MOD_MASK_SHIFT) ? PSTR("SHIFT") : PSTR("\n"), false);
+ oled_write_P((modifiers & MOD_MASK_CTRL) ? PSTR("CTRL ") : PSTR("\n"), false);
+ oled_write_P((modifiers & MOD_MASK_ALT) ? PSTR("ALT ") : PSTR("\n"), false);
+ oled_write_P((modifiers & MOD_MASK_GUI) ? PSTR("SUPER") : PSTR("\n"), false);
+
+ oled_write_P(PSTR("\n"), false);
+
+ uint8_t led_usb_state = host_keyboard_leds();
+ oled_write_P(PSTR("Mode:"), false);
+ oled_write_P(IS_LED_ON(led_usb_state, USB_LED_NUM_LOCK) ? PSTR(" NUM ") : PSTR("\n"), false);
+ oled_write_P(IS_LED_ON(led_usb_state, USB_LED_CAPS_LOCK) ? PSTR(" CAPS") : PSTR("\n"), false);
+
+# ifdef RGB_MATRIX_ENABLE
+ oled_write_P(PSTR("\n"), false);
+ oled_write_P(PSTR("\n"), false);
+
+ if (rgb_matrix_config.enable) {
+ if (user_config.rgb_matrix_idle_anim) {
+ oled_write_P(rgb_matrix_anim_oled_text(user_config.rgb_matrix_active_mode), false);
+ oled_write_P(rgb_matrix_anim_oled_text(user_config.rgb_matrix_idle_mode), false);
+ } else {
+ oled_write_P(PSTR("\n"), false);
+ oled_write_P(rgb_matrix_anim_oled_text(rgb_matrix_get_mode()), false);
+ }
+ } else {
+ oled_write_P(PSTR("\n"), false);
+ oled_write_P(PSTR("\n"), false);
+ }
+# endif
}
void oled_task_user(void) {
- if (is_master) {
- render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
- } else {
- render_crkbd_logo();
- // oled_scroll_left(); // Turns on scrolling
- }
+ if (timer_elapsed32(oled_timer) > OLED_TIMEOUT) {
+ oled_off();
+ return;
+ } else {
+ oled_on();
+ }
+
+ if (is_master) {
+ render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
+ } else {
+ render_crkbd_logo();
+ #ifdef RGB_MATRIX_ENABLE
+ if (user_config.rgb_matrix_idle_anim && rgb_matrix_get_mode() == user_config.rgb_matrix_idle_mode) {
+ oled_scroll_left(); // Turns on scrolling
+ } else {
+ oled_scroll_off();
+ }
+ #endif
+ }
+}
+#endif
+
+#ifdef RGB_MATRIX_ENABLE
+
+extern led_config_t g_led_config;
+void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t led_type) {
+ HSV hsv = {hue, sat, val};
+ if (hsv.v > rgb_matrix_config.hsv.v) {
+ hsv.v = rgb_matrix_config.hsv.v;
+ }
+
+ RGB rgb = hsv_to_rgb(hsv);
+ for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) {
+ if (HAS_FLAGS(g_led_config.flags[i], led_type)) {
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ }
+}
+
+void check_default_layer(uint8_t type) {
+ switch (get_highest_layer(default_layer_state)) {
+ case _COLEMAKDHM:
+ rgb_matrix_layer_helper(THEME_HSV, type);
+ break;
+ case _GAMING:
+ rgb_matrix_layer_helper(HSV_RED, type);
+ break;
+ }
+}
+
+void rgb_matrix_indicators_user(void) {
+ if (
+ user_config.rgb_layer_change && !g_suspend_state && rgb_matrix_config.enable &&
+ (!user_config.rgb_matrix_idle_anim || rgb_matrix_get_mode() != user_config.rgb_matrix_idle_mode)
+ )
+ {
+ switch (get_highest_layer(layer_state)) {
+ case _GAMING_EXT:
+ rgb_matrix_layer_helper(HSV_PURPLE, LED_FLAG_UNDERGLOW);
+ break;
+ case _SYM:
+ rgb_matrix_layer_helper(HSV_GOLDENROD, LED_FLAG_UNDERGLOW);
+ break;
+ case _NAV:
+ rgb_matrix_layer_helper(HSV_SPRINGGREEN, LED_FLAG_UNDERGLOW);
+ break;
+ case _UTIL:
+ rgb_matrix_layer_helper(HSV_PINK, LED_FLAG_UNDERGLOW);
+ break;
+ case _NUMPAD:
+ rgb_matrix_layer_helper(HSV_CORAL, LED_FLAG_UNDERGLOW);
+ break;
+ default: {
+ check_default_layer(LED_FLAG_UNDERGLOW);
+ break;
+ }
+ }
+ }
+}
+
+void rgb_matrix_update_current_mode(uint8_t mode, uint8_t speed) {
+ rgb_matrix_config.speed = speed;
+ rgb_matrix_mode_noeeprom(mode);
+ eeconfig_update_user(user_config.raw);
+}
+
+void rgb_matrix_update_dynamic_mode(uint8_t mode, uint8_t speed, bool active) {
+ if (active) {
+ user_config.rgb_matrix_active_speed = speed;
+ user_config.rgb_matrix_active_mode = mode;
+ } else {
+ user_config.rgb_matrix_idle_speed = speed;
+ user_config.rgb_matrix_idle_mode = mode;
+ }
+}
+
+void rgb_matrix_update_mode(uint8_t mode, uint8_t speed, bool active) {
+ if (user_config.rgb_matrix_idle_anim) {
+ rgb_matrix_update_dynamic_mode(mode, speed, active);
+ }
+ if (active || !user_config.rgb_matrix_idle_anim) {
+ rgb_matrix_update_current_mode(mode, speed);
+ }
+}
+
+void rgb_matrix_set_defaults(void) {
+ rgb_matrix_config.enable = 1;
+ rgb_matrix_sethsv_noeeprom(THEME_HSV);
+
+ user_config.rgb_layer_change = false;
+ user_config.rgb_matrix_idle_anim = true;
+ user_config.rgb_matrix_idle_timeout = 60000;
+
+ rgb_matrix_update_dynamic_mode(RGB_MATRIX_CYCLE_ALL, RGB_MATRIX_ANIMATION_SPEED_SLOWER, false);
+ rgb_matrix_update_dynamic_mode(RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS, RGB_MATRIX_ANIMATION_SPEED_DEFAULT, true);
+
+ eeprom_update_block(&rgb_matrix_config, EECONFIG_RGB_MATRIX, sizeof(rgb_matrix_config));
+}
+
+void matrix_scan_rgb(void) {
+ if (user_config.rgb_matrix_idle_anim && rgb_matrix_get_mode() == user_config.rgb_matrix_active_mode && timer_elapsed32(hypno_timer) > user_config.rgb_matrix_idle_timeout) {
+ if (user_config.rgb_layer_change) {
+ rgb_matrix_layer_helper(0, 0, 0, LED_FLAG_UNDERGLOW);
+ }
+ rgb_matrix_update_current_mode(user_config.rgb_matrix_idle_mode, user_config.rgb_matrix_idle_speed);
+ }
+}
+
+void matrix_scan_user(void) {
+ static bool has_ran_yet;
+ if (!has_ran_yet) {
+ has_ran_yet = true;
+ startup_user();
+ }
+ matrix_scan_rgb();
+}
+
+void eeconfig_init_user(void) {
+ user_config.raw = 0;
+ rgb_matrix_mode_noeeprom(user_config.rgb_matrix_active_mode);
+ keyboard_init();
+}
+
+void keyboard_post_init_user(void) {
+ user_config.raw = eeconfig_read_user();
+ rgb_matrix_set_defaults();
+ rgb_matrix_enable_noeeprom();
}
#endif
void suspend_power_down_keymap(void) {
+ oled_off();
rgb_matrix_set_suspend_state(true);
}
void suspend_wakeup_init_keymap(void) {
+ oled_on();
rgb_matrix_set_suspend_state(false);
}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ static uint8_t saved_mods = 0;
+ uint16_t temp_keycode = keycode;
+
+ oled_timer = timer_read32();
+
+#ifdef RGB_MATRIX_ENABLE
+ if (user_config.rgb_matrix_idle_anim) {
+ hypno_timer = timer_read32();
+ if (rgb_matrix_get_mode() == user_config.rgb_matrix_idle_mode) {
+ rgb_matrix_update_current_mode(user_config.rgb_matrix_active_mode, user_config.rgb_matrix_active_speed);
+ if (!user_config.rgb_layer_change) {
+ rgb_matrix_layer_helper(0, 0, 0, LED_FLAG_UNDERGLOW);
+ }
+ }
+ }
+#endif
+
+ // Filter out the actual keycode from MT and LT keys.
+ if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) {
+ temp_keycode &= 0xFF;
+ }
+
+ switch (temp_keycode) {
+ case BSP_DEL:
+ if (record->event.pressed) {
+ saved_mods = get_mods() & MOD_MASK_SHIFT;
+
+ if (saved_mods == MOD_MASK_SHIFT) { // Both shifts pressed
+ register_code(KC_DEL);
+ } else if (saved_mods) { // One shift pressed
+ del_mods(saved_mods); // Remove any Shifts present
+ register_code(KC_DEL);
+ add_mods(saved_mods); // Add shifts again
+ } else {
+ register_code(KC_BSPC);
+ }
+ } else {
+ unregister_code(KC_DEL);
+ unregister_code(KC_BSPC);
+ }
+ return false;
+#ifdef RGB_MATRIX_ENABLE
+ case COLEMAK:
+ if (record->event.pressed) {
+ user_config.rgb_matrix_idle_timeout = 60000;
+ rgb_matrix_update_mode(RGB_MATRIX_CYCLE_ALL, RGB_MATRIX_ANIMATION_SPEED_SLOWER, false);
+ }
+ return true;
+ case GAMING:
+ if (record->event.pressed) {
+ if (!user_config.rgb_layer_change) {
+ user_config.rgb_layer_change = true;
+ }
+ user_config.rgb_matrix_idle_timeout = 10000;
+ rgb_matrix_update_mode(RGB_MATRIX_RAINBOW_PINWHEELS, RGB_MATRIX_ANIMATION_SPEED_SLOW, false);
+ }
+ return true;
+ case RGB_RST:
+ if (record->event.pressed) {
+ rgb_matrix_set_defaults();
+ rgb_matrix_enable();
+ }
+ break;
+ case RGB_UND: // Toggle separate underglow status
+ if (record->event.pressed) {
+ user_config.rgb_layer_change ^= 1;
+ eeconfig_update_user(user_config.raw);
+ if (user_config.rgb_layer_change) {
+ layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better)
+ } else {
+ rgb_matrix_layer_helper(0, 0, 0, LED_FLAG_UNDERGLOW);
+ }
+ }
+ break;
+ case RGB_IDL: // Toggle idle/heatmap animation
+ if (record->event.pressed) {
+ user_config.rgb_matrix_idle_anim ^= 1;
+ if (user_config.rgb_matrix_idle_anim) {
+ rgb_matrix_update_mode(user_config.rgb_matrix_active_mode, user_config.rgb_matrix_active_speed, true);
+ } else {
+ rgb_matrix_update_current_mode(user_config.rgb_matrix_idle_mode, user_config.rgb_matrix_idle_speed);
+ }
+ }
+ break;
+ case RGB_MAP:
+ if (record->event.pressed) {
+ rgb_matrix_update_mode(RGB_MATRIX_TYPING_HEATMAP, rgb_matrix_config.speed, true);
+ }
+ break;
+ case RGB_NXS:
+ if (record->event.pressed) {
+ rgb_matrix_update_mode(RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS, RGB_MATRIX_ANIMATION_SPEED_DEFAULT, true);
+ }
+ break;
+ case RGB_SOL:
+ if (record->event.pressed) {
+ rgb_matrix_update_mode(RGB_MATRIX_SOLID_COLOR, rgb_matrix_config.speed, false);
+ }
+ break;
+ case RGB_CYC:
+ if (record->event.pressed) {
+ rgb_matrix_update_mode(RGB_MATRIX_CYCLE_ALL, RGB_MATRIX_ANIMATION_SPEED_SLOWER, false);
+ }
+ break;
+ case RGB_DUO:
+ if (record->event.pressed) {
+ rgb_matrix_update_mode(RGB_MATRIX_RAINBOW_PINWHEELS, RGB_MATRIX_ANIMATION_SPEED_SLOW, false);
+ }
+ break;
+ case RGB_SCR:
+ if (record->event.pressed) {
+ rgb_matrix_update_mode(RGB_MATRIX_CYCLE_LEFT_RIGHT, RGB_MATRIX_ANIMATION_SPEED_SLOW, false);
+ }
+ break;
+#endif
+ }
+ return true;
+}
diff --git a/keyboards/crkbd/keymaps/rpbaptist/readme.md b/keyboards/crkbd/keymaps/rpbaptist/readme.md
index cb53e75f2d..b9e749b5c6 100644
--- a/keyboards/crkbd/keymaps/rpbaptist/readme.md
+++ b/keyboards/crkbd/keymaps/rpbaptist/readme.md
@@ -10,27 +10,29 @@ Many thanks to foostan for the keyboard, all QMK contributors and drashna specif
### COLEMAKDHM
-Main typing layer. I really love having SHIFT available on thumbs. I am a left thumb space bar person, so I put SPACE there and ENTER on right. I use CTRL key combos lot in my text editor and desktop environment. That's why I have two of them. I also found them to be a great position for the square brackets. (`[` and `]`)
+Main typing layer. I really love having SHIFT available on thumbs. I am a left thumb space bar person, so I put SPACE there and ENTER on right. I use CTRL key combos lot in my text editor and desktop environment. That's why I have two of them. I also found them to be a great position for the square brackets. (`[` and `]`). These become parenthesis (`(` and `)`) on either of the layers.
-I don't know about you but "lower" and "raise" don't mean that much to me. I named my layers `NUM`, short for numbers and `NAV`, short for navigation. Holding the key will activate the layer for as long as it is held, double tapping it will switch to it. Single tapping it once will switch to main layer again.
+Holding SHIFT while tapping BACKSPACE will output DEL. Holding both SHIFT keys will output SHIFT+DEL.
-Everything else is pretty standard I'd say.
+I don't know about you but "lower" and "raise" don't mean that much to me. I named my layers `SYM`, short for symbols and `NAV`, short for navigation. Holding the key will activate the layer for as long as it is held, double tapping it will switch to it. Single tapping it once will switch to main layer again.
-### NUM
+Holding TAB will access `NUM` layer which features a numpad.
+
+### SYM
Includes a number row, the symbols normally on SHIFT and numbers, as well as a numpad under right side homing keys.
### NAV
-This is where I access arrow keys, page up, down, home, end and mouse control. I also added general tab forward and backward keys. I use these in my browser, terminal and text editor.
+This is where I access arrow keys, page up, down, home, end and F keys. I also added general tab forward and backward keys. Tab close and window close. I primarily use these in my browser, terminal and text editor.
-## FN
+### UTIL
-Short for function. This gives access to the function keys, as well as rarely used keys on the left side and often used symbols (for me) on the right side. It is accessed by holding TAB.
+Short for utility. This is accessed by pressing both `SYM` and `NAV` at the same time. It has a software `RESET` key, media keys, RGB control and switches main layer between Colemak and a gaming layer.
-### UTIL
+### NUMPAD
-Short for utility. This is accessed by pressing both `NUM` and `NAV` at the same time. It has a software `RESET` key, media keys, RGB control and switches main layer between Colemak and a gaming layer.
+This gives access to a numpad on the right half with some additional symbols I find useful when using the numpad.
### GAMING
@@ -38,20 +40,33 @@ Sometimes I switch to type in Discord, Steam, or in game chat, so I think it's m
I put movement on FRST (would be ESDF on QWERTY), because it lines up more comfortably with the columnar staggered layout of the Corne. It also gives more easy access to all keys on left half.
-Most notable here is that there are no tap and hold differences anymore on left hand side besides the new layer key. This is a different layer than `NUM`.
+Most notable here is that there are no tap and hold differences anymore on left hand side besides the new layer key. This is a different layer than `SYM`.
### GAMING_EXT
-This is the gaming extended layer where movement keys remain the same. This means I can keep moving while accessing second layer keys. All other keys are keys on which I can easily rebind something. Besides that it gives me the function keys and an ENTER key which does not change. This is good when a game requires you to hold ENTER.
+This is the gaming extended layer where movement keys remain the same. This means I can keep moving while accessing second layer keys. All other keys are keys on which I can easily rebind something. Besides that it gives me an ENTER key which does not switch. This is good when a game requires you to hold ENTER.
-## Notes
+## RGB
+
+I took a big inspiration from Drashna's RGB configuration and tweaked it.
-I use MT3 Godspeed caps and thought it would be fun to theme the OLED output towards it. The slave side has the icon and two planets. The left side refers to modifiers by matching the novelty mod legends.
+- `RGB_UND`: Toggles underglow indicators on and off. Each layer has its own color.
+- `RGB_IDL`: This will enable/disable idle mode. By default, when typing, the `DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS` will be used. When the idle timeout has exceeded the secondary animation will be activated, which is `RGB_MATRIX_CYCLE_ALL` by default. When switching to `GAMING` layer the timeout will be reduced and the idle animation changed to `RGB_MATRIX_RAINBOW_PINWHEELS`.
+ When idle mode is enabled, `RGB_MATRIX_TYPING_HEATMAP` and `RGB_MATRIX_MULTISPLASH` will be used for active animation. All others for idle animation. When disabling idle mode, the current idle animation will be activated. Additionally, on idling, the underglow layer indication will be deactivated.
+- There are no RGB mode cycle keys, but instead several keys to use a specific RGB directly. Each has their own default speed, although this can be changed.
## Building
-I am using DFU and have to flash both halves individually.
+`make crkbd/rev1:rpbaptist:dfu`
+
+## Notes
+
+I use several OLED slave side images, depending on the keycaps I am using. These also determine the default LED color and underglow.
+
+`make crkbd/rev1:rpbaptist:dfu THEME=pulse`
-Left half: `make crkbd/rev1:rpbaptist:dfu-split-left`
+Current supported themes are:
-Right half: `make crkbd/rev1:rpbaptist:dfu-split-right RGB_MATRIX_SPLIT_RIGHT=yes`
+- godspeed
+- laser
+- pulse
diff --git a/keyboards/crkbd/keymaps/rpbaptist/rules.mk b/keyboards/crkbd/keymaps/rpbaptist/rules.mk
index 0eed4f997c..d9e8b701e2 100644
--- a/keyboards/crkbd/keymaps/rpbaptist/rules.mk
+++ b/keyboards/crkbd/keymaps/rpbaptist/rules.mk
@@ -1,15 +1,16 @@
-# This enables Link Time Optimization. This can save a good chunk of space (several KB for me), but the macro and function ... functions cause it to error out.
+#This enables Link Time Optimization.This can save a good chunk of space(several KB for me), but the macro and function... functions cause it to error out.
LINK_TIME_OPTIMIZATION_ENABLE = yes
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
+#Build Options
+#change to "no" to disable the options, or define them in the Makefile in
+#the appropriate keymap folder that will get included automatically
#
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+# DYNAMIC_MACRO_ENABLE = yes
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
+MOUSEKEY_ENABLE = no # Mouse keys(+4700)
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = no # Commands for debug and configuration
@@ -22,13 +23,21 @@ SWAP_HANDS_ENABLE = no # Enable one-hand typing
RGB_MATRIX_ENABLE = WS2812
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+#Do not enable SLEEP_LED_ENABLE.it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
BOOTLOADER = qmk-dfu
OLED_DRIVER_ENABLE = yes
-# ifneq ($(strip $(OLED_DRIVER_ENABLE)), yes)
-# RGB_MATRIX_SPLIT_RIGHT=yes
-# endif
+ifeq ($(strip $(THEME)), godspeed)
+ OPT_DEFS += -DTHEME_GODSPEED
+endif
+
+ifeq ($(strip $(THEME)), pulse)
+ OPT_DEFS += -DTHEME_PULSE
+endif
+
+ifeq ($(strip $(THEME)), laser)
+ OPT_DEFS += -DTHEME_LASER
+endif