]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - keyboards/staryu/keymaps/default/keymap.c
Refactor staryu to current standards and enable support for backlight keycodes (...
[qmk_firmware.git] / keyboards / staryu / keymaps / default / keymap.c
index d68eb42872d9bde7839af600ee1d5c0cb3e79add..8c47ff44abd112b65b6267003a5120a2c75b373c 100755 (executable)
@@ -20,62 +20,85 @@ enum layers {
   _LAYER0,
   _LAYER1,
   _LAYER2,
-  _LAYER3
+  _LAYER3,
+  _LAYER4
 };
 
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+  [_LAYER0] = LAYOUT(
+/* ┌─────────┬─────────┬─────────┐ */
+              KC_UP,    TO(_LAYER1),
+/* ├─────────┼─────────┼─────────┤ */
+    KC_LEFT,  KC_DOWN,  KC_RIGHT
+/* └─────────┴─────────┴─────────┘ */
+  ),
+
+  [_LAYER1] = LAYOUT(
+/* ┌─────────┬─────────┬─────────┐ */
+              KC_PGUP,  TO(_LAYER2),
+/* ├─────────┼─────────┼─────────┤ */
+    KC_HOME,  KC_PGDN,  KC_END
+/* └─────────┴─────────┴─────────┘ */
+  ),
+
+  [_LAYER2] = LAYOUT(
+/* ┌─────────┬─────────┬─────────┐ */
+              KC_MSEL,  TO(_LAYER3),
+/* ├─────────┼─────────┼─────────┤ */
+    KC_MPRV,  KC_MPLY,  KC_MNXT
+/* └─────────┴─────────┴─────────┘ */
+  ),
+
+  [_LAYER3] = LAYOUT(
+/* ┌─────────┬─────────┬─────────┐ */
+              KC_MS_U,  TO(_LAYER4),
+/* ├─────────┼─────────┼─────────┤ */
+    KC_MS_L,  KC_MS_D,  KC_MS_R
+/* └─────────┴─────────┴─────────┘ */
+  ),
+
+  [_LAYER4] = LAYOUT(
+/* ┌─────────┬─────────┬─────────┐ */
+              XXXXXXX,  TO(_LAYER0),
+/* ├─────────┼─────────┼─────────┤ */
+    RGB_TOG,  BL_TOGG,  BL_STEP 
+/* └─────────┴─────────┴─────────┘ */
+  ),
 
-const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
-    /* Keymap 0
-     * ,-----------.
-     * |   |Up |Fn0|
-     * |---+---+---|
-     * |Lef|Dow|Rig|
-     * `-----------'
-     */
-    LAYOUT( KC_UP,  TO(_LAYER1), KC_LEFT,KC_DOWN,KC_RIGHT ),
-    /* Keymap 1
-     * ,-----------.
-     * |   |PgU|Fn1|
-     * |---+---+---|
-     * |Hom|PgD|End|
-     * `-----------'
-     */
-    LAYOUT( KC_PGUP,TO(_LAYER2), KC_HOME,KC_PGDN,KC_END  ),
-    /* Keymap 2
-     * ,-----------.
-     * |   |Sel|Fn2|
-     * |---+---+---|
-     * |Pre|Pla|Nex|
-     * `-----------'
-     */
-    LAYOUT( KC_MSEL,TO(_LAYER3), KC_MPRV,KC_MPLY,KC_MNXT ),
-    /* Keymap 3
-     * ,-----------.
-     * |   |MsU|Fn3|
-     * |---+---+---|
-     * |MsL|MsD|MsR|
-     * `-----------'
-     */
-    LAYOUT( KC_MS_U,TO(_LAYER0), KC_MS_L,KC_MS_D,KC_MS_R ),
-    // /* Keymap 4
-    //  * ,-----------.
-    //  * |   |Fn6|Fn4|
-    //  * |---+---+---|
-    //  * |Fn7|Fn5|Fn8|
-    //  * `-----------'
-    //  */
-    // LAYOUT( FN6, FN4, FN7, FN5, FN8  ),
 };
 
-const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
-  return MACRO_NONE ;
-}
+void eeconfig_init_user(void) {
+  // use the non noeeprom versions, to write these values to EEPROM too
+  rgblight_enable();
+  rgblight_mode(RGBLIGHT_MODE_BREATHING+1);
 
-void matrix_init_user(void) {
+  backlight_enable();
 }
 
-void matrix_scan_user(void) {
+void keyboard_post_init_user(void) {
+  //layer_state_set_user is not called for inital state - set it here
+  rgblight_sethsv_noeeprom_white();
 }
 
-void led_set_user(uint8_t usb_led) {
+uint32_t layer_state_set_user(uint32_t state) {
+  switch (biton32(state)) {
+    case _LAYER1:
+        rgblight_sethsv_noeeprom_cyan();
+        break;
+    case _LAYER2:
+        rgblight_sethsv_noeeprom_magenta();
+        break;
+    case _LAYER3:
+        rgblight_sethsv_noeeprom_red();
+        break;
+    case _LAYER4:
+        rgblight_sethsv_noeeprom_orange();
+        break;
+    case _LAYER0:
+    default: //  for any other layers, or the default layer
+        rgblight_sethsv_noeeprom_white();
+        break;
+    }
+  return state;
 }