From 5a727dbc6dc51b2d7d90e5d2a7e99ca3435153be Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Radli=C5=84ski=20Ignacy?= <radlinskiignacy@gmail.com>
Date: Sat, 2 Jul 2022 14:50:31 +0200
Subject: [PATCH] feat(keymap): add keebio/iris/rev6/radlinskii keymap (#17216)

Co-authored-by: ignacy-radlinski <ignacy.radlinski@schibsted.com>
---
 .../keebio/iris/keymaps/radlinskii/config.h   |  37 ++++
 .../keebio/iris/keymaps/radlinskii/keymap.c   | 193 ++++++++++++++++++
 .../iris/keymaps/radlinskii/light_layers.h    | 179 ++++++++++++++++
 .../keebio/iris/keymaps/radlinskii/readme.md  | 137 +++++++++++++
 .../keebio/iris/keymaps/radlinskii/rules.mk   |   3 +
 5 files changed, 549 insertions(+)
 create mode 100644 keyboards/keebio/iris/keymaps/radlinskii/config.h
 create mode 100644 keyboards/keebio/iris/keymaps/radlinskii/keymap.c
 create mode 100644 keyboards/keebio/iris/keymaps/radlinskii/light_layers.h
 create mode 100644 keyboards/keebio/iris/keymaps/radlinskii/readme.md
 create mode 100644 keyboards/keebio/iris/keymaps/radlinskii/rules.mk

diff --git a/keyboards/keebio/iris/keymaps/radlinskii/config.h b/keyboards/keebio/iris/keymaps/radlinskii/config.h
new file mode 100644
index 0000000000..c3d6b34070
--- /dev/null
+++ b/keyboards/keebio/iris/keymaps/radlinskii/config.h
@@ -0,0 +1,37 @@
+// Copyright 2022 Ignacy Radliński (@radlinskii)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+// #define USE_I2C
+#define EE_HANDS
+
+#define TAPPING_TOGGLE 1 // tap just once for TT() to toggle the layer
+#define TAPPING_TERM 200
+#define IGNORE_MOD_TAP_INTERRUPT
+
+#define RGBLIGHT_LAYERS
+
+#define RGBLIGHT_DEFAULT_HUE 85
+#define RGBLIGHT_DEFAULT_SAT 255
+
+#undef RGBLIGHT_DEFAULT_MODE
+#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_STATIC_LIGHT
+
+#undef RGBLIGHT_ANIMATIONS
+#undef RGBLIGHT_EFFECT_BREATHING // fading in and out
+#undef RGBLIGHT_EFFECT_RAINBOW_MOOD // rainbow all keys at the same time
+#undef RGBLIGHT_EFFECT_RAINBOW_SWIRL // rainbow top bottom
+#undef RGBLIGHT_EFFECT_SNAKE
+#undef RGBLIGHT_EFFECT_KNIGHT
+#undef RGBLIGHT_EFFECT_CHRISTMAS
+#undef RGBLIGHT_EFFECT_STATIC_GRADIENT
+#undef RGBLIGHT_EFFECT_RGB_TEST // red -> green -> blue
+#undef RGBLIGHT_EFFECT_ALTERNATING // blinking
+#undef RGBLIGHT_EFFECT_TWINKLE // randomly fading in and out single keys
+
+#define MOUSEKEY_DELAY 20
+#define MOUSEKEY_INTERVAL 20
+#define MOUSEKEY_MAX_SPEED 5
+#define MOUSEKEY_TIME_TO_MAX 40
+#define MOUSEKEY_WHEEL_MAX_SPEED 10
diff --git a/keyboards/keebio/iris/keymaps/radlinskii/keymap.c b/keyboards/keebio/iris/keymaps/radlinskii/keymap.c
new file mode 100644
index 0000000000..380ff82a3c
--- /dev/null
+++ b/keyboards/keebio/iris/keymaps/radlinskii/keymap.c
@@ -0,0 +1,193 @@
+// Copyright 2022 Ignacy Radliński (@radlinskii)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+#include "light_layers.h"
+
+enum my_layers {
+    _COLEMAK,
+    _QWERTY,
+    _NUM_SYM,
+    _NAV,
+    _MOUSE,
+    _MEDIA_MISC,
+};
+
+enum custom_keycodes {
+    COLEMAK = SAFE_RANGE,
+    QWERTY,
+    DEFAULT
+};
+
+#define LALT_KA LALT_T(KC_A)
+#define LCTL_KS LCTL_T(KC_S)
+#define LGUI_KD LGUI_T(KC_D)
+#define LSFT_KF LSFT_T(KC_F)
+#define RSFT_KJ RSFT_T(KC_J)
+#define RGUI_KK RGUI_T(KC_K)
+#define RCTL_KL RCTL_T(KC_L)
+#define RA_SCLN RALT_T(KC_SCLN)
+
+#define LALT_K1 LALT_T(KC_1)
+#define LCTL_K2 LCTL_T(KC_2)
+#define LGUI_K3 LGUI_T(KC_3)
+#define LSFT_K4 LSFT_T(KC_4)
+#define RSFT_K7 RSFT_T(KC_7)
+#define RGUI_K8 RGUI_T(KC_8)
+#define RCTL_K9 RCTL_T(KC_9)
+#define RALT_K0 RALT_T(KC_0)
+
+#define LCTL_KR LCTL_T(KC_R)
+#define LGUI_KS LGUI_T(KC_S)
+#define LSFT_KT LSFT_T(KC_T)
+#define RSFT_KN RSFT_T(KC_N)
+#define RGUI_KE RGUI_T(KC_E)
+#define RCTL_KI RCTL_T(KC_I)
+#define RALT_KO RALT_T(KC_O)
+
+#define LGUI_BS LGUI_T(KC_BSPC)
+#define RALT_TB RALT_T(KC_TAB)
+
+#define TT_N_S TT(_NUM_SYM)
+#define TT_NAV TT(_NAV)
+#define TO_QWRT TO(_QWERTY)
+#define TO_N_S TO(_NUM_SYM)
+#define TO_NAV TO(_NAV)
+#define TO_MOUSE TO(_MOUSE)
+#define TO_M_M TO(_MEDIA_MISC)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    [_COLEMAK] = LAYOUT(
+  //┌────────┬────────┬────────┬────────┬────────┬────────┐                          ┌────────┬────────┬────────┬────────┬────────┬────────┐
+     XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                            XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+  //├────────┼────────┼────────┼────────┼────────┼────────┤                          ├────────┼────────┼────────┼────────┼────────┼────────┤
+     XXXXXXX, KC_Q,    KC_W,    KC_F,    KC_P,    KC_B,                               KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, XXXXXXX,
+  //├────────┼────────┼────────┼────────┼────────┼────────┤                          ├────────┼────────┼────────┼────────┼────────┼────────┤
+     KC_CAPS, LALT_KA, LCTL_KR, LGUI_KS, LSFT_KT, KC_G,                               KC_M,    RSFT_KN, RGUI_KE, RCTL_KI, RALT_KO, KC_QUOT,
+  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐        ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+     XXXXXXX, KC_Z,    KC_X,    KC_C,    KC_D,    KC_V,    KC_DEL,           KC_ESC,  KC_K,    KC_H,    KC_COMM, KC_DOT,  KC_SLSH, XXXXXXX,
+  //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘        └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+                                    KC_BSPC, TT_N_S,  KC_ENT,                     KC_SPC, TT_NAV,  KC_TAB
+                                // └────────┴────────┴────────┘                 └────────┴────────┴────────┘
+  ),
+
+
+    [_QWERTY] = LAYOUT(
+    //┌────────┬────────┬────────┬────────┬────────┬────────┐                          ┌────────┬────────┬────────┬────────┬────────┬────────┐
+       KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,                               KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_GRV,
+    //├────────┼────────┼────────┼────────┼────────┼────────┤                          ├────────┼────────┼────────┼────────┼────────┼────────┤
+       KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,                               KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC,
+    //├────────┼────────┼────────┼────────┼────────┼────────┤                          ├────────┼────────┼────────┼────────┼────────┼────────┤
+       KC_LCTL, LALT_KA, LCTL_KS, LGUI_KD, LSFT_KF, KC_G,                               KC_H,    RSFT_KJ, RGUI_KK, RCTL_KL, RA_SCLN, KC_QUOT,
+    //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐        ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+       KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_DEL,           KC_ESC,  KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT,
+    //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘        └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+                                    LGUI_BS, TT_N_S,  KC_ENT,                     KC_SPC, TT_NAV,  RALT_TB
+                                // └────────┴────────┴────────┘                 └────────┴────────┴────────┘
+    ),
+
+
+    [_NUM_SYM] = 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,
+    //├────────┼────────┼────────┼────────┼────────┼────────┤                          ├────────┼────────┼────────┼────────┼────────┼────────┤
+       _______, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC,                            KC_CIRC, KC_AMPR, KC_ASTR, KC_UNDS, KC_PLUS, _______,
+    //├────────┼────────┼────────┼────────┼────────┼────────┤                          ├────────┼────────┼────────┼────────┼────────┼────────┤
+       _______, LALT_K1, LCTL_K2, LGUI_K3, LSFT_K4, KC_5,                               KC_6,    RSFT_K7, RGUI_K8, RCTL_K9, RALT_K0, KC_PIPE,
+    //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐        ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+       _______, _______, KC_GRV,  KC_LPRN, KC_LCBR, KC_LBRC, _______,          _______, KC_RBRC, KC_RCBR, KC_RPRN,  KC_MINS, KC_EQL, _______,
+    //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘        └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+                                    _______, DEFAULT, _______,                   _______, TO_NAV,  _______
+                                // └────────┴────────┴────────┘                 └────────┴────────┴────────┘
+    ),
+
+    [_NAV] = LAYOUT(
+    //┌────────┬────────┬────────┬────────┬────────┬────────┐                          ┌────────┬────────┬────────┬────────┬────────┬────────┐
+        _______, _______, _______, _______, _______, _______,                            _______, _______, _______, _______, _______, _______,
+    //├────────┼────────┼────────┼────────┼────────┼────────┤                          ├────────┼────────┼────────┼────────┼────────┼────────┤
+        _______, _______, _______, _______, _______, _______,                            _______, KC_PGDN, KC_UP,   KC_PGUP, _______, _______,
+    //├────────┼────────┼────────┼────────┼────────┼────────┤                          ├────────┼────────┼────────┼────────┼────────┼────────┤
+        _______, _______, _______, _______, _______, _______,                            KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, _______,
+    //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐        ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+        _______, _______, _______, _______, _______, _______, _______,          _______, _______, _______, _______, _______, _______, _______,
+    //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘        └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+                                    _______, DEFAULT, _______,                   _______, TO_MOUSE, _______
+                                // └────────┴────────┴────────┘                 └────────┴────────┴────────┘
+    ),
+
+    [_MOUSE] = LAYOUT(
+    //┌────────┬────────┬────────┬────────┬────────┬────────┐                          ┌────────┬────────┬────────┬────────┬────────┬────────┐
+       _______, _______, _______, _______, _______, _______,                            _______, _______, _______, _______, _______, _______,
+    //├────────┼────────┼────────┼────────┼────────┼────────┤                          ├────────┼────────┼────────┼────────┼────────┼────────┤
+       _______, _______, _______, _______, _______, _______,                            _______, KC_WH_U, KC_MS_U, KC_WH_D, _______, _______,
+    //├────────┼────────┼────────┼────────┼────────┼────────┤                          ├────────┼────────┼────────┼────────┼────────┼────────┤
+        _______, _______, _______, _______, _______, _______,                           KC_WH_R, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_L,  TO_M_M,
+    //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐        ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+        _______, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, _______,
+    //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘        └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+                                    _______, DEFAULT, KC_BTN2,                   KC_BTN1, TO_NAV,  _______
+                                // └────────┴────────┴────────┘                 └────────┴────────┴────────┘
+    ),
+
+    [_MEDIA_MISC] = LAYOUT(
+    //┌────────┬────────┬────────┬────────┬────────┬────────┐                          ┌────────┬────────┬────────┬────────┬────────┬────────┐
+       RESET,   _______, _______, _______, _______, QWERTY,                             COLEMAK, _______, _______, _______, _______, _______,
+    //├────────┼────────┼────────┼────────┼────────┼────────┤                          ├────────┼────────┼────────┼────────┼────────┼────────┤
+       _______, _______, _______, KC_MUTE, _______, _______,                            _______, _______, _______, _______, _______, _______,
+    //├────────┼────────┼────────┼────────┼────────┼────────┤                          ├────────┼────────┼────────┼────────┼────────┼────────┤
+       KC_CAPS, KC_MPLY, KC_MNXT, KC_VOLU, KC_BRIU, _______,                            _______, _______, _______, _______, _______, _______,
+    //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐        ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+       _______, KC_MSTP, KC_MPRV, KC_VOLD, KC_BRID, _______, _______,          _______, _______, _______, _______, _______, _______, _______,
+    //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘        └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+                                      _______, DEFAULT, _______,                   _______, DEFAULT, _______
+                                  // └────────┴────────┴────────┘                 └────────┴────────┴────────┘
+    )
+};
+
+void keyboard_post_init_user(void) {
+    rgblight_layers = MY_LIGHT_LAYERS;
+}
+
+layer_state_t default_layer_state_set_user(layer_state_t state) {
+    rgblight_set_layer_state(_COLEMAK, layer_state_cmp(state, _COLEMAK));
+    rgblight_set_layer_state(_QWERTY, layer_state_cmp(state, _QWERTY));
+
+    return state;
+}
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+    rgblight_set_layer_state(_NUM_SYM, layer_state_cmp(state, _NUM_SYM));
+    rgblight_set_layer_state(_NAV, layer_state_cmp(state, _NAV));
+    rgblight_set_layer_state(_MOUSE, layer_state_cmp(state, _MOUSE));
+    rgblight_set_layer_state(_MEDIA_MISC, layer_state_cmp(state, _MEDIA_MISC));
+
+    return state;
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+    switch (keycode) {
+        case COLEMAK:
+            if (record->event.pressed) {
+                set_single_persistent_default_layer(_COLEMAK);
+                layer_move(_COLEMAK);
+            }
+            return false;
+        case QWERTY:
+            if (record->event.pressed) {
+                set_single_persistent_default_layer(_QWERTY);
+                layer_move(_QWERTY);
+            }
+            return false;
+        case DEFAULT:
+            if (record->event.pressed) {
+                if (layer_state_cmp(default_layer_state, _COLEMAK)) {
+                    layer_move(_COLEMAK);
+                } else if (layer_state_cmp(default_layer_state, _QWERTY)) {
+                    layer_move(_QWERTY);
+                }
+            }
+            return false;
+    }
+    return true;
+}
diff --git a/keyboards/keebio/iris/keymaps/radlinskii/light_layers.h b/keyboards/keebio/iris/keymaps/radlinskii/light_layers.h
new file mode 100644
index 0000000000..a1b754545a
--- /dev/null
+++ b/keyboards/keebio/iris/keymaps/radlinskii/light_layers.h
@@ -0,0 +1,179 @@
+// Copyright 2022 Ignacy Radliński (@radlinskii)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+/*
+
+LED index mapping:
+
+          (31)              (32)              (33)                                    (67)              (66)              (65)
+┌────────┬────────┬────────┬────────┬────────┬────────┐                          ┌────────┬────────┬────────┬────────┬────────┬────────┐
+│0       │1       │2       │3       │4       │5       │                          │39      │38      │37      │36      │35      │34      │
+├────────┼────────┼────────┼────────┼────────┼────────┤                          ├────────┼────────┼────────┼────────┼────────┼────────┤
+│11      │10      │9       │8       │7       │6       │                          │40      │41      │42      │43      │44      │45      │
+├────────┼────────┼────────┼────────┼────────┼────────┤                          ├────────┼────────┼────────┼────────┼────────┼────────┤
+│12      │13      │14      │15      │16      │17      │                          │51      │50      │49      │48      │47      │46      │
+├────────┼────────┼────────┼────────┼────────┼────────┼────────┐        ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
+│23      │22      │21      │20      │19      │18      │27      │        │61      │52      │53      │54      │55      │56      │57      │
+└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘        └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
+                               │24      │25      │26      │                 │60      │59      │58      │
+                               └────────┴────────┴────────┘                 └────────┴────────┴────────┘
+          (30)              (29)              (28)                                    (62)              (63)              (64)
+
+*/
+
+const rgblight_segment_t PROGMEM COLEMAK_LIGHT_LAYER[] = RGBLIGHT_LAYER_SEGMENTS(
+    // left side
+    {0, 6, 127, 255, 255},
+    {6, 6, 115, 255, 255},
+    {12, 6, 97, 255, 255},
+    {18, 6, 90, 255, 255},
+    {24, 1, 85, 255, 255},
+    {25, 1, 169, 255, 255}, // TT(_NUM_SYM)
+    {26, 2, 85, 255, 255},
+    {28, 3, 85, 255, 255}, // underglow
+    {31, 3, 127, 255, 255}, // underglow
+    // right side
+    {34, 6, 127, 255, 255},
+    {40, 6, 115, 255, 255},
+    {46, 6, 97, 255, 255},
+    {52, 6, 90, 255, 255},
+    {58, 1, 85, 255, 255},
+    {59, 1, 201, 255, 255}, // TT(_NAV)
+    {60, 2, 85, 255, 255},
+    {62, 3, 85, 255, 255}, // underglow
+    {65, 3, 127, 255, 255} // underglow
+);
+
+const rgblight_segment_t PROGMEM QWERTY_LIGHT_LAYER[] = RGBLIGHT_LAYER_SEGMENTS(
+    // left side
+    {0, 6, 85, 0, 255},
+    {6, 6, 85, 70, 255},
+    {12, 6, 85, 150, 255},
+    {18, 6, 85, 240, 255},
+    {24, 1, 85, 255, 255},
+    {25, 1, 169, 255, 255}, // TT(_NUM_SYM)
+    {26, 2, 85, 255, 255},
+    {28, 3, 85, 255, 255}, // underglow
+    {31, 3, 85, 0, 255}, // underglow
+    // right side
+    {34, 6, 85, 0, 255},
+    {40, 6, 85, 70, 255},
+    {46, 6, 85, 150, 255},
+    {52, 6, 85, 240, 255},
+    {58, 1, 85, 255, 255},
+    {59, 1, 201, 255, 255}, // TT(_NAV)
+    {60, 2, 85, 255, 255},
+    {62, 3, 85, 255, 255}, // underglow
+    {65, 3, 85, 0, 255} // underglow
+);
+
+const rgblight_segment_t PROGMEM NUM_SYM_LIGHT_LAYER[] = RGBLIGHT_LAYER_SEGMENTS(
+    // left side
+    {0, 6, 201, 255, 255},
+    {6, 6, 191, 255, 255},
+    {12, 6, 181, 255, 255},
+    {18, 6, 171, 255, 255},
+    {24, 1, 169, 255, 255},
+    {25, 1, 85, 255, 255}, // TO(DEFAULT)
+    {26, 2, 169, 255, 255},
+    {28, 3, 169, 255, 255}, // underglow
+    {31, 3, 201, 255, 255}, // underglow
+    // right side
+    {34, 6, 201, 255, 255},
+    {40, 6, 191, 255, 255},
+    {46, 6, 181, 255, 255},
+    {52, 6, 171, 255, 255},
+    {58, 1, 169, 255, 255},
+    {59, 1, 201, 255, 255}, // TO(_NAV)
+    {60, 2, 169, 255, 255},
+    {62, 3, 169, 255, 255}, // underglow
+    {65, 3, 201, 255, 255} // underglow
+);
+
+const rgblight_segment_t PROGMEM NAV_LIGHT_LAYER[] = RGBLIGHT_LAYER_SEGMENTS(
+    // left side
+    {0, 6, 248, 255, 255},
+    {6, 6, 240, 255, 255},
+    {12, 6, 225, 255, 255},
+    {18, 6, 210, 255, 255},
+    {24, 1, 201, 255, 255},
+    {25, 1, 85, 255, 255}, // TO(DEFAULT)
+    {26, 2, 201, 255, 255},
+    {28, 3, 201, 255, 255}, // underglow
+    {31, 3, 248, 255, 255}, // underglow
+    // right side
+    {34, 6, 248, 255, 255},
+    {40, 6, 240, 255, 255},
+    {46, 6, 225, 255, 255},
+    {52, 6, 210, 255, 255},
+    {58, 1, 201, 255, 255},
+    {59, 1, 43, 255, 255}, // TO(_MOUSE)
+    {60, 2, 201, 255, 255},
+    {62, 3, 201, 255, 255}, // underglow
+    {65, 3, 248, 255, 255} // underglow
+);
+
+const rgblight_segment_t PROGMEM MOUSE_LIGHT_LAYER[] = RGBLIGHT_LAYER_SEGMENTS(
+    // left side
+    {0, 6, 4, 255, 255},
+    {6, 6, 10, 255, 255},
+    {12, 6, 25, 255, 255},
+    {18, 6, 40, 255, 255},
+    {24, 1, 43, 255, 255},
+    {25, 1, 85, 255, 255}, // TO(DEFAULT)
+    {26, 2, 43, 255, 255},
+    {28, 3, 43, 255, 255}, // underglow
+    {31, 3, 4, 255, 255}, // underglow
+    // right side
+    {34, 6, 4, 255, 255},
+    {40, 6, 10, 255, 255},
+    {46, 1, 0, 255, 255}, // TO(_MEDIA_MISC)
+    {47, 5, 25, 255, 255},
+    {52, 6, 40, 255, 255},
+    {58, 1, 43, 255, 255},
+    {59, 1, 201, 255, 255}, // TO(_NAV)
+    {60, 2, 43, 255, 255},
+    {62, 3, 43, 255, 255}, // underglow
+    {65, 3, 4, 255, 255} // underglow
+);
+
+const rgblight_segment_t PROGMEM MEDIA_MISC_LIGHT_LAYER[] = RGBLIGHT_LAYER_SEGMENTS(
+    // both sides
+    {0, 1, 0, 255, 255}, // RESET
+    {1, 4, 0, 0, 0},
+    {5, 1, 85, 0, 255}, // set QWERTY as default
+    {6, 2, 0, 0, 0},
+    {8, 1, 160, 150, 150}, // MUTE
+    {9, 3, 0, 0, 0},
+    {12, 1, 201, 255, 255}, // CAPS
+    {13, 1, 120, 255, 255}, // PLAY
+    {14, 1, 0, 255, 255}, // NEXT
+    {15, 1, 160, 255, 255}, // VOLUME_UP
+    {16, 1, 43, 255, 255}, // BRIGHTNESS_UP
+    {17, 2, 0, 0, 0},
+    {19, 1, 43, 200, 200}, // BRIGHTNESS_DOWN
+    {20, 1, 160, 220, 200}, // VOLUME_DOWN
+    {21, 1, 0, 220, 200}, // PREV
+    {22, 1, 120, 220, 200}, // STOP
+    {23, 2, 0, 0, 0},
+    {25, 1, 85, 255, 255}, // TO(DEFAULT)
+    {26, 2, 0, 0, 0},
+    {28, 6, 0, 255, 255}, // underglow
+    {34, 5, 0, 0, 0},
+    {39, 1, 127, 255, 255}, // set COLEMAK as default
+    {40, 19, 0, 0, 0},
+    {59, 1, 85, 255, 255}, // TO(DEFAULT)
+    {60, 2, 0, 0, 0},
+    {62, 6, 0, 255, 255} // underglow
+);
+
+const rgblight_segment_t* const PROGMEM MY_LIGHT_LAYERS[] = RGBLIGHT_LAYERS_LIST(
+    COLEMAK_LIGHT_LAYER,
+    QWERTY_LIGHT_LAYER,
+    NUM_SYM_LIGHT_LAYER,
+    NAV_LIGHT_LAYER,
+    MOUSE_LIGHT_LAYER,
+    MEDIA_MISC_LIGHT_LAYER
+);
diff --git a/keyboards/keebio/iris/keymaps/radlinskii/readme.md b/keyboards/keebio/iris/keymaps/radlinskii/readme.md
new file mode 100644
index 0000000000..5a0e929991
--- /dev/null
+++ b/keyboards/keebio/iris/keymaps/radlinskii/readme.md
@@ -0,0 +1,137 @@
+# Iris rev. 6 keymap by radlinskii
+
+![iris rev. 6 by radlinskii lightning demo](https://user-images.githubusercontent.com/26116041/171883033-3c5ababe-88ae-4c9d-8436-3d6ab83dbf4b.gif)
+
+## Features:
+
+-   [RGB Lightning layers](https://docs.qmk.fm/#/feature_rgblight?id=lighting-layers)
+-   [MOUSE KEYS](https://docs.qmk.fm/#/keycodes?id=mouse-keys)
+-   [MOD-TAPS](https://docs.qmk.fm/#/mod_tap)
+
+## Layers:
+
+### colemak - default
+
+> [Colemak DH](https://colemakmods.github.io/mod-dh/) keyboard layout.
+
+<details>
+    <summary>
+        keymap
+    </summary>
+
+<img width="800" alt="colemak layer keymap" src="https://user-images.githubusercontent.com/26116041/173403537-f2222651-c8ea-4c8b-b828-97520a222344.png">
+
+</details>
+<details>
+    <summary>
+        lightning
+    </summary>
+
+
+<img width="800" alt="colemak layer lightning" src="https://user-images.githubusercontent.com/26116041/173681398-cdcff1a5-ae79-4409-950a-1b671c350f07.jpeg">
+
+</details>
+
+### qwerty - alternative default
+
+> Can be set as persistent default layer.
+
+<details>
+    <summary>
+        keymap
+    </summary>
+
+<img width="800" alt="qwerty layer keymap" src="https://user-images.githubusercontent.com/26116041/173403371-1551976a-2f95-4dbd-ba07-96936651871d.png">
+
+</details>
+<details>
+    <summary>
+        lightning
+    </summary>
+
+<img width="800" alt="qwerty layer lightning" src="https://user-images.githubusercontent.com/26116041/173681525-aee3c927-995a-4f83-b688-ed8bfd3f8bb6.jpeg">
+
+</details>
+
+### numeric + symbols
+
+<details>
+    <summary>
+        keymap
+    </summary>
+
+<img width="800" alt="numeric and symbols layer keymap" src="https://user-images.githubusercontent.com/26116041/173403164-b0520501-761b-4567-bf04-57f7b6f7dd4d.png">
+
+</details>
+<details>
+    <summary>
+        lightning
+    </summary>
+
+<img width="800" alt="numeric and symbols layer lightning" src="https://user-images.githubusercontent.com/26116041/173681689-0b864e35-0e02-4204-a469-6e872e704903.jpeg">
+
+</details>
+
+### navigation
+
+> Layer with arrow navigation.
+
+<details>
+    <summary>
+        keymap
+    </summary>
+
+<img width="800" alt="navigation layer keymap" src="https://user-images.githubusercontent.com/26116041/173408142-1e1c297e-57db-42f8-bc18-a04dd4e202c9.png">
+
+</details>
+<details>
+    <summary>
+        lightning
+    </summary>
+
+<img width="800" alt="navigation layer lightning" src="https://user-images.githubusercontent.com/26116041/173681859-fa6f071a-98e9-48f8-a9a0-76d7510b302a.jpeg">
+
+</details>
+
+### mouse
+
+> Layer with mouse navigation on the same keys as arrow navigation.
+
+<details>
+    <summary>
+        keymap
+    </summary>
+
+<img width="800" alt="mouse layer keymap" src="https://user-images.githubusercontent.com/26116041/173402955-050ffd77-7b60-45dc-8e89-54cd43793132.png">
+
+</details>
+<details>
+    <summary>
+        lightning
+    </summary>
+
+<img width="800" alt="mouse layer lightning" src="https://user-images.githubusercontent.com/26116041/173682436-07c32e5e-f415-463d-8c93-d2cbd4e406a1.jpeg">
+
+</details>
+
+### media and miscellaneous
+
+> Used for media keys, switching default layer and keyboard reset.
+
+<details>
+    <summary>
+        keymap
+    </summary>
+
+<img width="800" alt="media and miscellaneous layer keymap" src="https://user-images.githubusercontent.com/26116041/173402837-75ce8ab1-7fbe-454b-b165-b22d171f9ad1.png">
+
+</details>
+<details>
+    <summary>
+        lightning
+    </summary>
+
+<img width="800" alt="media and miscellaneous layer lightning" src="https://user-images.githubusercontent.com/26116041/173682188-3eab9c09-d466-4729-89ac-48e09f55564c.jpeg">
+
+</details>
+
diff --git a/keyboards/keebio/iris/keymaps/radlinskii/rules.mk b/keyboards/keebio/iris/keymaps/radlinskii/rules.mk
new file mode 100644
index 0000000000..f1a0d40690
--- /dev/null
+++ b/keyboards/keebio/iris/keymaps/radlinskii/rules.mk
@@ -0,0 +1,3 @@
+RGBLIGHT_ENABLE = yes # by default this is no, but for the rgb light layers to work it needs to be `yes`
+RGB_MATRIX_ENABLE = no # by default this is yes, but for the rgb light layers to work it needs to be `no`
+MOUSEKEY_ENABLE = yes