From 48834a8ae5c592c8f93a4cd69764dde2d4a6dc04 Mon Sep 17 00:00:00 2001
From: Michael Grote <michael.grote@posteo.de>
Date: Mon, 18 Mar 2024 10:36:42 +0100
Subject: [PATCH] skeletyl: rgb layer colors

---
 .../skeletyl/keymaps/quotengrote/config.h     |  1 +
 .../skeletyl/keymaps/quotengrote/keymap.c     | 36 ++++++++++++++++---
 2 files changed, 32 insertions(+), 5 deletions(-)

diff --git a/keyboards/bastardkb/skeletyl/keymaps/quotengrote/config.h b/keyboards/bastardkb/skeletyl/keymaps/quotengrote/config.h
index 57c924a425..cc432380af 100644
--- a/keyboards/bastardkb/skeletyl/keymaps/quotengrote/config.h
+++ b/keyboards/bastardkb/skeletyl/keymaps/quotengrote/config.h
@@ -13,3 +13,4 @@
 #define RGB_DISABLE_WHEN_USB_SUSPENDED false
 #undef RGB_MATRIX_MAXIMUM_BRIGHTNESS
 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255
+#define SPLIT_LAYER_STATE_ENABLE // for layer indicators
diff --git a/keyboards/bastardkb/skeletyl/keymaps/quotengrote/keymap.c b/keyboards/bastardkb/skeletyl/keymaps/quotengrote/keymap.c
index 9d67c39b4f..d97e51cadd 100644
--- a/keyboards/bastardkb/skeletyl/keymaps/quotengrote/keymap.c
+++ b/keyboards/bastardkb/skeletyl/keymaps/quotengrote/keymap.c
@@ -7,6 +7,32 @@ void keyboard_post_init_user(void) {
   rgblight_sethsv(4, 75, 150); // warmweiß (werte = farbton, sättigung, helligkeit)
   rgblight_mode_noeeprom(RGB_MATRIX_SOLID_COLOR);
 }
+// Layer indicator on all keys
+bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
+    for (uint8_t i = led_min; i < led_max; i++) {
+        switch(get_highest_layer(layer_state|default_layer_state)) {
+            case 5:
+                rgb_matrix_set_color(i, RGB_TURQUOISE);
+                break;
+            case 4:
+                rgb_matrix_set_color(i, RGB_GREEN);
+                break;
+            case 3:
+                rgb_matrix_set_color(i, RGB_BLUE);
+                break;
+            case 2:
+                rgb_matrix_set_color(i, RGB_RED);
+                break;
+            case 1:
+                rgb_matrix_set_color(i, RGB_WHITE);
+                break;
+            default:
+                rgblight_sethsv(4, 75, 150);
+                break;
+        }
+    }
+    return false;
+}
 
 // combos; https://github.com/qmk/qmk_firmware/blob/master/docs/feature_combo.md
 enum combos {
@@ -48,35 +74,35 @@ combo_t key_combos[] = {
 
 // keymap
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-  // Buchstaben
+  // Buchstaben - white
   [0] = LAYOUT_split_3x5_3(
       LT(0,KC_Q), LT(0,KC_W),     LT(0,KC_F),     KC_P,            KC_B,           KC_J,    KC_L,            KC_U,         DE_Z,         KC_BSPC,
       LT(0,KC_A), LALT_T(KC_R),   LCTL_T(KC_S),   LSFT_T(KC_T),    KC_G,           KC_M,    LSFT_T(KC_N),    LCTL_T(KC_E), LALT_T(KC_I), KC_O,
       DE_Y,       LT(0,KC_X),     LT(0,KC_C),     LSFT_T(KC_D),    LT(0,KC_V),     KC_K,    LSFT_T(KC_H),    DE_COMM,      DE_DOT,       DE_MINS,
                                   XXXXXXX,        LT(3, KC_DEL),   LT(2, KC_ENT),  LT(1, KC_SPC),   OSL(3),  XXXXXXX
   ),
-  // Zahlen
+  // Zahlen - red
   [1] = LAYOUT_split_3x5_3(
       KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,              KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_BSPC,
       KC_1,    KC_2,    KC_3,    KC_4,    KC_5,               KC_6,    KC_7,    KC_8,    KC_9,    KC_0,
       XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,            KC_F10,  KC_F11,  XXXXXXX, XXXXXXX, KC_F12,
                         XXXXXXX, _______, _______,            _______, _______, XXXXXXX
   ),
-  // Sym
+  // Sym - blue
   [2] = LAYOUT_split_3x5_3(
       DE_CIRC, DE_LBRC, DE_LPRN,          DE_LPRN, DE_SECT,         DE_PERC,     DE_RCBR, DE_RPRN, DE_RBRC, KC_BSPC,
       DE_EXLM, DE_DQUO, LSFT(DE_ACUT ),   DE_QUOT, DE_SLSH,         RALT(DE_SS), DE_DLR,  DE_AMPR, DE_AMPR, DE_QUES,
       DE_TILD, XXXXXXX, DE_ACUT ,         XXXXXXX, DE_LABK ,        DE_RABK ,    XXXXXXX, DE_PLUS, DE_EQL,  DE_HASH,
                         XXXXXXX, _______, _______,                  _______, _______, XXXXXXX
   ),
-  // Move
+  // Move - green
   [3] = LAYOUT_split_3x5_3(
       XXXXXXX, KC_HOME, KC_UP,   KC_PGUP,  XXXXXXX,          XXXXXXX, KC_PGUP, KC_UP,   KC_HOME,  KC_BSPC,
       KC_TAB,  KC_LEFT, KC_DOWN, KC_RIGHT, XXXXXXX,          XXXXXXX, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL,
       XXXXXXX, KC_END,  KC_PGDN, XXXXXXX,  XXXXXXX,          XXXXXXX, KC_PGDN, XXXXXXX, KC_END,   XXXXXXX,
                         XXXXXXX, _______, _______,            _______, _______, XXXXXXX
   ),
-  // Media
+  // Media - turkis/TURQUOISE
   [4] = LAYOUT_split_3x5_3(
       RGB_TOG, RGB_HUI, RGB_HUD, KC_PSCR, KC_VOLU,            KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, QK_CAPS_WORD_TOGGLE,
       RGB_MOD, RGB_SAI, RGB_SAD, XXXXXXX, KC_MUTE,            KC_MUTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,