summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--keyboards/keycapsss/kimiko/keymaps/default/keymap.c83
-rw-r--r--keyboards/keycapsss/kimiko/keymaps/default/rules.mk2
-rw-r--r--keyboards/keycapsss/kimiko/keymaps/oriaj3/config.h75
-rw-r--r--keyboards/keycapsss/kimiko/keymaps/oriaj3/glcdfont.c251
-rw-r--r--keyboards/keycapsss/kimiko/keymaps/oriaj3/keymap.c413
-rw-r--r--keyboards/keycapsss/kimiko/keymaps/oriaj3/rules.mk21
-rw-r--r--keyboards/keycapsss/kimiko/kimiko.c61
7 files changed, 832 insertions, 74 deletions
diff --git a/keyboards/keycapsss/kimiko/keymaps/default/keymap.c b/keyboards/keycapsss/kimiko/keymaps/default/keymap.c
index 7e767852f6..613041e858 100644
--- a/keyboards/keycapsss/kimiko/keymaps/default/keymap.c
+++ b/keyboards/keycapsss/kimiko/keymaps/default/keymap.c
@@ -332,78 +332,13 @@ bool oled_task_user(void) {
 
 #endif
 
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+    [_QWERTY] =   { ENCODER_CCW_CW(KC_UP, KC_DOWN), ENCODER_CCW_CW(KC_RGHT, KC_LEFT)  },
+    [_LOWER] =  { ENCODER_CCW_CW(KC_TAB, RGB_HUI),           ENCODER_CCW_CW(KC_VOLU, KC_VOLD)  },
+    [_RAISE] =  { ENCODER_CCW_CW(RGB_VAD, RGB_VAI),           ENCODER_CCW_CW(RGB_SPD, RGB_SPI)  },
+    [_ADJUST] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD),          ENCODER_CCW_CW(RGB_HUI, RGB_HUD) },
+};
+#endif // ENCODER_MAP_ENABLE 
+
 
-#ifdef ENCODER_ENABLE
-bool encoder_update_user(uint8_t index, bool clockwise) {
-    // Encoder on master side
-    if (index == 0) {
-        switch (get_highest_layer(layer_state)) {
-            // If the Default (QWERTY) layer is active
-            case _QWERTY:
-                // Arrow Up/Down
-                if (clockwise) {
-                    tap_code(KC_DOWN);
-                } else {
-                    tap_code(KC_UP);
-                }
-                break;
-
-            // If the RAISE layer is active
-            case _RAISE:
-                // Switch browser tabs
-                if (clockwise) {
-                    tap_code16(LCTL(KC_TAB));
-                } else {
-                    tap_code16(RCS(KC_TAB));
-                }
-                break;
-            // If the ADJUST layer is active
-            case _ADJUST:
-                // RGB brightness up/down
-                if (clockwise) {
-                    rgblight_decrease_val(); // tap_code(RGB_VAD);
-                } else {
-                    rgblight_increase_val(); // tap_code(RGB_VAI);
-                }
-                break;
-        }
-    }
-    // Encoder on slave side
-    else if (index == 1) {
-        switch (get_highest_layer(layer_state)) {
-            // If the Default (QWERTY) layer is active
-            case _QWERTY:
-                // Scroll by Word
-                if (clockwise) {
-                    tap_code16(LCTL(KC_RGHT));
-                } else {
-                    tap_code16(LCTL(KC_LEFT));
-                }
-                break;
-
-            // If the LOWER layer is active
-            case _LOWER:
-                // Volume up/down
-                if (clockwise) {
-                    tap_code(KC_VOLU);
-                } else {
-                    tap_code(KC_VOLD);
-                }
-                break;
-
-            // If the ADJUST layer is active
-            case _ADJUST:
-                // RGB hue up/down
-                if (clockwise) {
-                    // tap_code(RGB_HUI);
-                    rgblight_increase_hue();
-                } else {
-                    // tap_code(RGB_HUD);
-                    rgblight_decrease_hue();
-                }
-                break;
-        }
-    }
-    return true;
-}
-#endif // ENCODER_ENABLE
diff --git a/keyboards/keycapsss/kimiko/keymaps/default/rules.mk b/keyboards/keycapsss/kimiko/keymaps/default/rules.mk
index 5dc0c64072..75655f2bd5 100644
--- a/keyboards/keycapsss/kimiko/keymaps/default/rules.mk
+++ b/keyboards/keycapsss/kimiko/keymaps/default/rules.mk
@@ -7,3 +7,5 @@ RGBLIGHT_ENABLE = yes      # Enable keyboard RGB underglow
 # Reduce compiled size, but will automatically disable the legacy TMK Macros and Functions features.
 # This does not affect QMK Macros and Layers
 LTO_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
+
diff --git a/keyboards/keycapsss/kimiko/keymaps/oriaj3/config.h b/keyboards/keycapsss/kimiko/keymaps/oriaj3/config.h
new file mode 100644
index 0000000000..5e91a21c73
--- /dev/null
+++ b/keyboards/keycapsss/kimiko/keymaps/oriaj3/config.h
@@ -0,0 +1,75 @@
+/* Copyright 2019 MechMerlin
+ * Copyright 2020 @ben_roe (keycapsss.com)
+ * Copyright 2022 @oriaj3
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+/* Select hand configuration */
+#define MASTER_LEFT
+// #define MASTER_RIGHT
+// #define EE_HANDS
+
+#define OLED_FONT_H "keyboards/keycapsss/kimiko/keymaps/rgb_matrix/glcdfont.c"
+// #define OLED_FONT_WIDTH 5
+// #define OLED_FONT_HEIGHT 7
+
+
+#ifdef RGB_MATRIX_ENABLE
+
+// The pin connected to the data pin of the LEDs
+#define RGB_DI_PIN D3
+// The number of LEDs connected
+#define DRIVER_LED_TOTAL 60
+#define RGBLED_NUM 60
+#define RGB_MATRIX_SPLIT {30,30}
+#define SPLIT_LAYER_STATE_ENABLE
+#define SPLIT_TRANSPORT_MIRROR
+
+
+#   define RGB_MATRIX_KEYPRESSES // reacts to keypresses
+// #   define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
+// #   define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
+#   define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
+#   define RGB_MATRIX_FRAMEBUFFER_EFFECTS
+// #   define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
+// #   define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
+#    define RGB_MATRIX_MAXIMUM_BRIGHTNESS 80 // limits maximum brightness of LEDs to 80 out of 255. Higher may cause the controller to crash.
+#    define RGB_MATRIX_HUE_STEP 8
+#    define RGB_MATRIX_SAT_STEP 8
+#    define RGB_MATRIX_VAL_STEP 8
+#    define RGB_MATRIX_SPD_STEP 10
+
+
+
+//  ENABLES EFFECTS. See alls the effects -> https://github.com/samhocevar-forks/qmk-firmware/blob/master/docs/feature_rgb_matrix.md#rgb-matrix-effects
+#   define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 50
+#   define ENABLE_RGB_MATRIX_BAND_SPLIT
+#   define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
+#   define ENABLE_RGB_MATRIX_TYPING_HEATMAP
+#   define ENABLE_RGB_MATRIX_DIGITAL_RAIN
+#   define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
+//#   define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
+//#   define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
+//#   define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
+//#   define ENABLE_RGB_MATRIX_MULTISPLASH
+//#   define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
+#  define ENABLE_RGB_MATRIX_SPLASH
+#endif
+
+// If you are using an Elite C rev3 on the slave side, uncomment the lines below:
+// #define SPLIT_USB_DETECT
+// #define NO_USB_STARTUP_CHECK
diff --git a/keyboards/keycapsss/kimiko/keymaps/oriaj3/glcdfont.c b/keyboards/keycapsss/kimiko/keymaps/oriaj3/glcdfont.c
new file mode 100644
index 0000000000..ff2f3bdcd5
--- /dev/null
+++ b/keyboards/keycapsss/kimiko/keymaps/oriaj3/glcdfont.c
@@ -0,0 +1,251 @@
+/* Copyright 2019 MechMerlin
+ * Copyright 2020 @ben_roe (keycapsss.com)
+ * Copyright 2022 @oriaj3
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "progmem.h"
+
+// Corne 8x6 font
+// Online editor: https://helixfonteditor.netlify.com
+// or https://joric.github.io/qle/
+// See also: https://github.com/soundmonster/glcdfont_converter
+
+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, 0x13, 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, 0xF8, 0x04, 0x22, 0x52, 0xE2,
+    0x42, 0x42, 0x42, 0xE2, 0x52, 0x22,
+    0x22, 0x22, 0x42, 0x82, 0x02, 0x02,
+    0x22, 0x22, 0x02, 0x04, 0xF8, 0x00,
+    0x00, 0xF8, 0x04, 0x02, 0x02, 0x82,
+    0x42, 0x22, 0x42, 0x82, 0x02, 0x02,
+    0x02, 0x82, 0x42, 0x22, 0x12, 0x22,
+    0x42, 0x82, 0x02, 0x04, 0xF8, 0x00,
+    0x00, 0xF8, 0xFC, 0xDE, 0xAE, 0x1E,
+    0xBE, 0xBE, 0xBE, 0x1E, 0xAE, 0xDE,
+    0xDE, 0xDE, 0xBE, 0x7E, 0xFE, 0xFE,
+    0xDE, 0xDE, 0xFE, 0xFC, 0xF8, 0x00,
+    0x00, 0xF8, 0xFC, 0xFE, 0xFE, 0x7E,
+    0xBE, 0xDE, 0xBE, 0x7E, 0xFE, 0xFE,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x80, 0x80, 0x40, 0x40, 0x20, 0x20,
+    0x10, 0x10, 0x08, 0x08, 0x10, 0x10,
+    0x20, 0x20, 0x40, 0x40, 0x80, 0x80,
+    0x80, 0x80, 0xC0, 0xC0, 0xE0, 0xE0,
+    0xF0, 0xF0, 0xF8, 0xF8, 0xF0, 0xF0,
+    0xE0, 0xE0, 0xC0, 0xC0, 0x80, 0x80,
+    0x80, 0x80, 0x40, 0x40, 0x20, 0x20,
+    0x10, 0x10, 0x08, 0x08, 0x10, 0x10,
+    0x20, 0x20, 0x40, 0x40, 0x80, 0x80,
+    0x80, 0x80, 0x40, 0xC0, 0x60, 0xA0,
+    0x50, 0xB0, 0x58, 0xA8, 0x50, 0xB0,
+    0x60, 0xA0, 0x40, 0xC0, 0x80, 0x80,
+    0x1F, 0x1F, 0x0E, 0x1B, 0x11, 0xC0,
+    0x1F, 0x1F, 0x00, 0x1F, 0x1F, 0x06,
+    0x0C, 0xC6, 0x1F, 0x1F, 0x80, 0x5F,
+    0x1F, 0x00, 0x1F, 0x1F, 0x8E, 0x9B,
+    0x91, 0x80, 0x9F, 0x9F, 0x91, 0x1F,
+    0x00, 0x1F, 0x20, 0x44, 0x4A, 0x47,
+    0x42, 0x42, 0x42, 0x47, 0x4A, 0x44,
+    0x40, 0x40, 0x40, 0x40, 0x41, 0x42,
+    0x44, 0x44, 0x40, 0x20, 0x1F, 0x00,
+    0x00, 0x1F, 0x20, 0x40, 0x41, 0x40,
+    0x40, 0x40, 0x40, 0x40, 0x41, 0x40,
+    0x41, 0x41, 0x4F, 0x48, 0x48, 0x48,
+    0x4F, 0x41, 0x41, 0x20, 0x1F, 0x00,
+    0x00, 0x1F, 0x3F, 0x7B, 0x75, 0x78,
+    0x7D, 0x7D, 0x7D, 0x78, 0x75, 0x7B,
+    0x7F, 0x7F, 0x7F, 0x7F, 0x7E, 0x7D,
+    0x7B, 0x7B, 0x7F, 0x3F, 0x1F, 0x00,
+    0x00, 0x1F, 0x3F, 0x7F, 0x7E, 0x7F,
+    0x7F, 0x7F, 0x7F, 0x7F, 0x7E, 0x7F,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x88, 0x88, 0x5D, 0x5D, 0x3E, 0x3E,
+    0x7C, 0x7C, 0xF8, 0xF8, 0x7C, 0x7C,
+    0x3E, 0x3E, 0x5D, 0x5D, 0x88, 0x88,
+    0x88, 0x88, 0x55, 0x55, 0x23, 0x23,
+    0x47, 0x47, 0x8F, 0x8F, 0x47, 0x47,
+    0x23, 0x23, 0x55, 0x55, 0x88, 0x88,
+    0x88, 0x88, 0xD5, 0xD5, 0xE2, 0xE2,
+    0xC4, 0xC4, 0x88, 0x88, 0xC4, 0xC4,
+    0xE2, 0xE2, 0xD5, 0xD5, 0x88, 0x88,
+    0x88, 0x88, 0x5D, 0xD5, 0x6B, 0xB6,
+    0x6D, 0xD6, 0xAD, 0xDA, 0x6D, 0xD6,
+    0x6B, 0xB6, 0x5D, 0xD5, 0x88, 0x88,
+    0x00, 0x84, 0x87, 0x7D, 0x55, 0x57,
+    0x55, 0x7D, 0x87, 0x84, 0x00, 0x91,
+    0x95, 0x55, 0x55, 0x3F, 0x55, 0x55,
+    0x95, 0x91, 0x00, 0x08, 0x08, 0x08,
+    0x88, 0xFC, 0x0A, 0x09, 0x08, 0x08,
+    0x04, 0xF8, 0x00, 0x00, 0xF8, 0x04,
+    0x20, 0x1F, 0x00, 0x00, 0x1F, 0x20,
+    0xFC, 0xF8, 0x00, 0x00, 0xF8, 0x04,
+    0x3F, 0x1F, 0x00, 0x00, 0x1F, 0x20,
+    0x04, 0xF8, 0x00, 0x00, 0xF8, 0xFC,
+    0x20, 0x1F, 0x00, 0x00, 0x1F, 0x3F,
+    0xFC, 0xF8, 0x00, 0x00, 0xF8, 0xFC,
+    0x3F, 0x1F, 0x00, 0x00, 0x1F, 0x3F,
+    0xFE, 0x7E, 0xBE, 0xDE, 0xEE, 0xDE,
+    0xBE, 0x7E, 0xFE, 0xFC, 0xF8, 0x00,
+    0x7E, 0x7E, 0x70, 0x77, 0x77, 0x77,
+    0x70, 0x7E, 0x7E, 0x3F, 0x1F, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x01, 0x01, 0x02, 0x02,
+    0x04, 0x04, 0x08, 0x08, 0x04, 0x04,
+    0x02, 0x02, 0x01, 0x01, 0x00, 0x00,
+    0x00, 0x00, 0x01, 0x01, 0x02, 0x02,
+    0x04, 0x04, 0x08, 0x08, 0x04, 0x04,
+    0x02, 0x02, 0x01, 0x01, 0x00, 0x00,
+    0x00, 0x00, 0x01, 0x01, 0x03, 0x03,
+    0x07, 0x07, 0x0F, 0x0F, 0x07, 0x07,
+    0x03, 0x03, 0x01, 0x01, 0x00, 0x00,
+    0x00, 0x00, 0x01, 0x01, 0x03, 0x02,
+    0x05, 0x06, 0x0D, 0x0A, 0x05, 0x06,
+    0x03, 0x02, 0x01, 0x01, 0x00, 0x00,
+};
diff --git a/keyboards/keycapsss/kimiko/keymaps/oriaj3/keymap.c b/keyboards/keycapsss/kimiko/keymaps/oriaj3/keymap.c
new file mode 100644
index 0000000000..ce5d2170ed
--- /dev/null
+++ b/keyboards/keycapsss/kimiko/keymaps/oriaj3/keymap.c
@@ -0,0 +1,413 @@
+/* Copyright 2019 Leo Batyuk
+ * Copyright 2020 Drashna Jaelre <@drashna>
+ * Copyright 2020 @ben_roe (keycapsss.com)
+ * Copyright 2022 @oriaj3
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include QMK_KEYBOARD_H
+
+enum layers {
+    _QWERTY,
+    _LOWER,
+    _RAISE,
+    _ADJUST,
+};
+
+#define RAISE MO(_RAISE)
+#define LOWER MO(_LOWER)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* QWERTY
+ * ,--------------------------------------------.                    ,----------------------------------------------.
+ * |   ESC   |   1  |   2  |   3  |   4  |   5  |                    |   6  |   7  |   8  |   9  |   0  |  `        |
+ * |---------+------+------+------+------+------|                    |------+------+------+------+------+-----------|
+ * |   Tab   |   Q  |   W  |   E  |   R  |   T  |                    |   Y  |   U  |   I  |   O  |   P  |  -        |
+ * |---------+------+------+------+------+------|                    |------+------+------+------+------+-----------|
+ * |  LShift |   A  |   S  |   D  |   F  |   G  |-------.    ,-------|   H  |   J  |   K  |   L  |   ;  |  '        |
+ * |---------+------+------+------+------+------|   [   |    |    ]  |------+------+------+------+------+-----------|
+ * |  LCTRL  |   Z  |   X  |   C  |   V  |   B  |-------|    |-------|   N  |   M  |   ,  |   .  |   /  |RShift/Enter|
+ * `-------------------------------------------|       /     \      \-----------------------------------------------'
+ *                 | LCTRL| LGUI | LALT |LOWER| Space /       \Enter \  |RAISE |BackSP| RGUI | RALT |
+ *                 `----------------------------------'       '------------------------------------'
+ */
+
+ [_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_MINS,
+    KC_LSFT, KC_A,   KC_S,    KC_D,    KC_F,    KC_G,                        KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,
+    KC_LCTRL, KC_Z,   KC_X,    KC_C,    KC_V,    KC_B,    KC_LBRC,  KC_RBRC,  KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, RSFT_T(KC_ENT),
+                      KC_LCTL, KC_LGUI, KC_LALT, LOWER,   KC_SPC,   KC_ENT,   RAISE,   KC_BSPC, KC_RGUI, KC_RALT
+),
+/* LOWER
+ * ,-------------------------------------------.                    ,-----------------------------------------.
+ * |        |  F1  |  F2  |  F3  |  F4  |  F5  |                    |  F6  |  F7  |  F8  |  F9  | F10  | F11  |
+ * |--------+------+------+------+------+------|                    |------+------+------+------+------+------|
+ * |        |  1   |  2   |  3   |  4   |  5   |                    |  6   |  7   |  8   |  9   |   0  | F12  |
+ * |--------+------+------+------+------+------|                    |------+------+------+------+------+------|
+ * |   `    |   !  |   @  |   #  |   $  |   %  |-------.    ,-------|   ^  |   &  |   *  |   (  |   )  |   ~  |
+ * |--------+------+------+------+------+------|       |    |       |------+------+------+------+------+------|
+ * |        |      |      |      |      |      |-------|    |-------|      |   _  |   +  |   {  |   }  |   \  |
+ * `-------------------------------------------|       /     \      \-----------------------------------------------'
+ *                 | LCTRL| LGUI | LALT |LOWER| Space /       \Enter \  |RAISE |BackSP| RGUI | RALT |
+ *                 `----------------------------------'       '------------------------------------'
+ */
+
+[_LOWER] = LAYOUT(
+    _______, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,                     KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,
+    _______, KC_1,    KC_2,    KC_3,    KC_4,    KC_5,                      KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_F12,
+    KC_GRV,  KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC,                   KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TILD,
+    _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSLS,
+                      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+),
+/* RAISE
+ * ,-----------------------------------------.                    ,-----------------------------------------.
+ * |      |      |      |      |      |      |                    |      |      |      |      |      |      |
+ * |------+------+------+------+------+------|                    |------+------+------+------+------+------|
+ * |   `  |   1  |   2  |   3  |   4  |   5  |                    |   6  |   7  |   8  |   9  |   0  |      |
+ * |------+------+------+------+------+------|                    |------+------+------+------+------+------|
+ * |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |-------.    ,-------|      | Left | Down |  Up  |Right |      |
+ * |------+------+------+------+------+------|   [   |    |    ]  |------+------+------+------+------+------|
+ * |  F7  |  F8  |  F9  | F10  | F11  | F12  |-------|    |-------|   +  |   -  |   =  |   [  |   ]  |   \  |
+ * `-----------------------------------------/       /     \      \-----------------------------------------'
+ *                 | LCTRL| LGUI | LALT |LOWER| Space /       \Enter \  |RAISE |BackSP| RGUI | RALT |
+ *                 `----------------------------------'       '------------------------------------'
+ */
+
+[_RAISE] = LAYOUT(
+    _______, _______, _______, _______, _______, _______,                     _______, _______, _______, _______, _______, _______,
+    KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,                        KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    _______,
+    KC_F1,  KC_F2,    KC_F3,   KC_F4,   KC_F5,   KC_F6,                       XXXXXXX, KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT, XXXXXXX,
+    KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,   _______, _______,  KC_PLUS, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS,
+                      _______, _______, _______, _______,  _______, _______,  _______, _______, _______, _______
+),
+/* ADJUST (Press LOWER and RAISE together)
+ * ,-----------------------------------------.                    ,-----------------------------------------.
+ * |RESET |      |      |      |      |      |                    |      |      |      |      |      |      |
+ * |------+------+------+------+------+------|                    |------+------+------+------+------+------|
+ * |RGB ON| HUE+ | SAT+ | VAL+ |      |      |                    | PREV | PLAY | NEXT |      |      |      |
+ * |------+------+------+------+------+------|                    |------+------+------+------+------+------|
+ * | MODE | HUE- | SAT- | VAL- |      |      |-------.    ,-------| VOL+ | MUTE | VOL- |      |      |      |
+ * |------+------+------+------+------+------|       |    |       |------+------+------+------+------+------|
+ * |      |      |      |      |      |      |-------|    |-------|      |      |      |      |      |      |
+ * `-----------------------------------------/       /     \      \-----------------------------------------'
+ *                 |LCTRL| LGUI | LALT |LOWER| Space /       \Enter \  |RAISE |BackSP| RGUI | RALT |
+ *                 `----------------------------------'       '------------------------------------'
+ */
+
+[_ADJUST] = LAYOUT(
+    RESET,   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+    RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX,                   KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX,
+    RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX,                   KC_VOLU, KC_MUTE, KC_VOLD, XXXXXXX, XXXXXXX, XXXXXXX,
+    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+                      _______, _______, _______, _______, _______, _______,  _______, _______, _______, _______
+  )
+};
+
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+    state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
+    return state;
+}
+
+#ifdef OLED_ENABLE
+oled_rotation_t oled_init_user(oled_rotation_t rotation) {
+    if (is_keyboard_master()) {
+        return OLED_ROTATION_270;
+    } else {
+        return OLED_ROTATION_270;
+    }
+}
+
+void render_space(void) {
+    oled_write_P(PSTR("     "), false);
+}
+
+void render_mod_status_gui_alt(uint8_t modifiers) {
+    static const char PROGMEM gui_off_1[] = {0x85, 0x86, 0};
+    static const char PROGMEM gui_off_2[] = {0xa5, 0xa6, 0};
+    static const char PROGMEM gui_on_1[] = {0x8d, 0x8e, 0};
+    static const char PROGMEM gui_on_2[] = {0xad, 0xae, 0};
+
+    static const char PROGMEM alt_off_1[] = {0x87, 0x88, 0};
+    static const char PROGMEM alt_off_2[] = {0xa7, 0xa8, 0};
+    static const char PROGMEM alt_on_1[] = {0x8f, 0x90, 0};
+    static const char PROGMEM alt_on_2[] = {0xaf, 0xb0, 0};
+
+    // fillers between the modifier icons bleed into the icon frames
+    static const char PROGMEM off_off_1[] = {0xc5, 0};
+    static const char PROGMEM off_off_2[] = {0xc6, 0};
+    static const char PROGMEM on_off_1[] = {0xc7, 0};
+    static const char PROGMEM on_off_2[] = {0xc8, 0};
+    static const char PROGMEM off_on_1[] = {0xc9, 0};
+    static const char PROGMEM off_on_2[] = {0xca, 0};
+    static const char PROGMEM on_on_1[] = {0xcb, 0};
+    static const char PROGMEM on_on_2[] = {0xcc, 0};
+
+    if(modifiers & MOD_MASK_GUI) {
+        oled_write_P(gui_on_1, false);
+    } else {
+        oled_write_P(gui_off_1, false);
+    }
+
+    if ((modifiers & MOD_MASK_GUI) && (modifiers & MOD_MASK_ALT)) {
+        oled_write_P(on_on_1, false);
+    } else if(modifiers & MOD_MASK_GUI) {
+        oled_write_P(on_off_1, false);
+    } else if(modifiers & MOD_MASK_ALT) {
+        oled_write_P(off_on_1, false);
+    } else {
+        oled_write_P(off_off_1, false);
+    }
+
+    if(modifiers & MOD_MASK_ALT) {
+        oled_write_P(alt_on_1, false);
+    } else {
+        oled_write_P(alt_off_1, false);
+    }
+
+    if(modifiers & MOD_MASK_GUI) {
+        oled_write_P(gui_on_2, false);
+    } else {
+        oled_write_P(gui_off_2, false);
+    }
+
+    if (modifiers & MOD_MASK_GUI & MOD_MASK_ALT) {
+        oled_write_P(on_on_2, false);
+    } else if(modifiers & MOD_MASK_GUI) {
+        oled_write_P(on_off_2, false);
+    } else if(modifiers & MOD_MASK_ALT) {
+        oled_write_P(off_on_2, false);
+    } else {
+        oled_write_P(off_off_2, false);
+    }
+
+    if(modifiers & MOD_MASK_ALT) {
+        oled_write_P(alt_on_2, false);
+    } else {
+        oled_write_P(alt_off_2, false);
+    }
+}
+
+void render_mod_status_ctrl_shift(uint8_t modifiers) {
+    static const char PROGMEM ctrl_off_1[] = {0x89, 0x8a, 0};
+    static const char PROGMEM ctrl_off_2[] = {0xa9, 0xaa, 0};
+    static const char PROGMEM ctrl_on_1[] = {0x91, 0x92, 0};
+    static const char PROGMEM ctrl_on_2[] = {0xb1, 0xb2, 0};
+
+    static const char PROGMEM shift_off_1[] = {0x8b, 0x8c, 0};
+    static const char PROGMEM shift_off_2[] = {0xab, 0xac, 0};
+    static const char PROGMEM shift_on_1[] = {0xcd, 0xce, 0};
+    static const char PROGMEM shift_on_2[] = {0xcf, 0xd0, 0};
+
+    // fillers between the modifier icons bleed into the icon frames
+    static const char PROGMEM off_off_1[] = {0xc5, 0};
+    static const char PROGMEM off_off_2[] = {0xc6, 0};
+    static const char PROGMEM on_off_1[] = {0xc7, 0};
+    static const char PROGMEM on_off_2[] = {0xc8, 0};
+    static const char PROGMEM off_on_1[] = {0xc9, 0};
+    static const char PROGMEM off_on_2[] = {0xca, 0};
+    static const char PROGMEM on_on_1[] = {0xcb, 0};
+    static const char PROGMEM on_on_2[] = {0xcc, 0};
+
+    if(modifiers & MOD_MASK_CTRL) {
+        oled_write_P(ctrl_on_1, false);
+    } else {
+        oled_write_P(ctrl_off_1, false);
+    }
+
+    if ((modifiers & MOD_MASK_CTRL) && (modifiers & MOD_MASK_SHIFT)) {
+        oled_write_P(on_on_1, false);
+    } else if(modifiers & MOD_MASK_CTRL) {
+        oled_write_P(on_off_1, false);
+    } else if(modifiers & MOD_MASK_SHIFT) {
+        oled_write_P(off_on_1, false);
+    } else {
+        oled_write_P(off_off_1, false);
+    }
+
+    if(modifiers & MOD_MASK_SHIFT) {
+        oled_write_P(shift_on_1, false);
+    } else {
+        oled_write_P(shift_off_1, false);
+    }
+
+    if(modifiers & MOD_MASK_CTRL) {
+        oled_write_P(ctrl_on_2, false);
+    } else {
+        oled_write_P(ctrl_off_2, false);
+    }
+
+    if (modifiers & MOD_MASK_CTRL & MOD_MASK_SHIFT) {
+        oled_write_P(on_on_2, false);
+    } else if(modifiers & MOD_MASK_CTRL) {
+        oled_write_P(on_off_2, false);
+    } else if(modifiers & MOD_MASK_SHIFT) {
+        oled_write_P(off_on_2, false);
+    } else {
+        oled_write_P(off_off_2, false);
+    }
+
+    if(modifiers & MOD_MASK_SHIFT) {
+        oled_write_P(shift_on_2, false);
+    } else {
+        oled_write_P(shift_off_2, false);
+    }
+}
+
+void render_logo(void) {
+    static const char PROGMEM corne_logo[] = {
+        0xA0, 0xA1, 0xA2, 0xA3, 0xA4,
+        0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0};
+    oled_write_P(corne_logo, false);
+    // oled_write_P(PSTR("Kimiko"), false);
+}
+
+void render_layer_state(void) {
+    static const char PROGMEM default_layer[] = {
+        0x20, 0x94, 0x95, 0x96, 0x20,
+        0x20, 0xb4, 0xb5, 0xb6, 0x20,
+        0x20, 0xd4, 0xd5, 0xd6, 0x20, 0};
+    static const char PROGMEM raise_layer[] = {
+        0x20, 0x97, 0x98, 0x99, 0x20,
+        0x20, 0xb7, 0xb8, 0xb9, 0x20,
+        0x20, 0xd7, 0xd8, 0xd9, 0x20, 0};
+    static const char PROGMEM lower_layer[] = {
+        0x20, 0x9a, 0x9b, 0x9c, 0x20,
+        0x20, 0xba, 0xbb, 0xbc, 0x20,
+        0x20, 0xda, 0xdb, 0xdc, 0x20, 0};
+    static const char PROGMEM adjust_layer[] = {
+        0x20, 0x9d, 0x9e, 0x9f, 0x20,
+        0x20, 0xbd, 0xbe, 0xbf, 0x20,
+        0x20, 0xdd, 0xde, 0xdf, 0x20, 0};
+    if(layer_state_is(_ADJUST)) {
+        oled_write_P(adjust_layer, false);
+    } else if(layer_state_is(_LOWER)) {
+        oled_write_P(lower_layer, false);
+    } else if(layer_state_is(_RAISE)) {
+        oled_write_P(raise_layer, false);
+    } else {
+        oled_write_P(default_layer, false);
+    }
+}
+
+void render_status_main(void) {
+    render_space();
+    render_space();
+    render_logo();
+    render_space();
+    render_layer_state();
+    render_space();
+    render_mod_status_gui_alt(get_mods()|get_oneshot_mods());
+    render_mod_status_ctrl_shift(get_mods()|get_oneshot_mods());
+}
+
+void render_status_secondary(void) {
+    render_space();
+    render_space();
+    render_logo();
+    render_space();
+}
+
+bool oled_task_user(void) {
+    if (is_keyboard_master()) {
+        render_status_main();  // Renders the current keyboard state (layer, lock, caps, scroll, etc)
+    } else {
+        render_status_secondary();
+    }
+    return false;
+}
+
+#endif
+
+
+#ifdef ENCODER_ENABLE
+bool encoder_update_user(uint8_t index, bool clockwise) {
+    // Encoder on master side
+    if (index == 0) {
+        switch (get_highest_layer(layer_state)) {
+            // If the Default (QWERTY) layer is active
+            case _QWERTY:
+                // Arrow Up/Down
+                if (clockwise) {
+                    tap_code(KC_DOWN);
+                } else {
+                    tap_code(KC_UP);
+                }
+                break;
+
+            // If the RAISE layer is active
+            case _RAISE:
+                // Switch browser tabs
+                if (clockwise) {
+                    tap_code16(LCTL(KC_TAB));
+                } else {
+                    tap_code16(RCS(KC_TAB));
+                }
+                break;
+            // If the ADJUST layer is active
+            case _ADJUST:
+                // RGB brightness up/down
+                if (clockwise) {
+                    rgblight_decrease_val(); // tap_code(RGB_VAD);
+                } else {
+                    rgblight_increase_val(); // tap_code(RGB_VAI);
+                }
+                break;
+        }
+    }
+    // Encoder on slave side
+    else if (index == 1) {
+        switch (get_highest_layer(layer_state)) {
+            // If the Default (QWERTY) layer is active
+            case _QWERTY:
+                // Scroll by Word
+                if (clockwise) {
+                    tap_code16(LCTL(KC_RGHT));
+                } else {
+                    tap_code16(LCTL(KC_LEFT));
+                }
+                break;
+
+            // If the LOWER layer is active
+            case _LOWER:
+                // Volume up/down
+                if (clockwise) {
+                    tap_code(KC_VOLU);
+                } else {
+                    tap_code(KC_VOLD);
+                }
+                break;
+
+            // If the ADJUST layer is active
+            case _ADJUST:
+                // RGB hue up/down
+                if (clockwise) {
+                    // tap_code(RGB_HUI);
+                    rgblight_increase_hue();
+                } else {
+                    // tap_code(RGB_HUD);
+                    rgblight_decrease_hue();
+                }
+                break;
+        }
+    }
+    return false;
+}
+#endif // ENCODER_ENABLE
+
+
+
diff --git a/keyboards/keycapsss/kimiko/keymaps/oriaj3/rules.mk b/keyboards/keycapsss/kimiko/keymaps/oriaj3/rules.mk
new file mode 100644
index 0000000000..0229490d44
--- /dev/null
+++ b/keyboards/keycapsss/kimiko/keymaps/oriaj3/rules.mk
@@ -0,0 +1,21 @@
+OLED_ENABLE = yes
+OLED_DRIVER = SSD1306   # Enables the use of OLED displays
+ENCODER_ENABLE = yes       # ENables the use of one or more encoders
+RGBLIGHT_ENABLE = no      # Disable keyboard RGB underglow
+
+# LTO: Link Time Optimizations.
+# Reduce compiled size, but will automatically disable the legacy TMK Macros and Functions features.
+# This does not affect QMK Macros and Layers
+LTO_ENABLE = yes
+
+#ENABLE RGB MATRIX WITH DRIVER WS2812
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
+
+#DEFINE SPLIT KEYBOARD AND SPLIT TRANSPORT MIRROR
+SPLIT_KEYBOARD = yes
+
+#DEACTIVATED FOR MEMORY SAVING
+MOUSEKEY_ENABLE = no
+CONSOLE_ENABLE = no
+
diff --git a/keyboards/keycapsss/kimiko/kimiko.c b/keyboards/keycapsss/kimiko/kimiko.c
index 6d44d45333..c35cb62544 100644
--- a/keyboards/keycapsss/kimiko/kimiko.c
+++ b/keyboards/keycapsss/kimiko/kimiko.c
@@ -15,3 +15,64 @@
  */
 #include "kimiko.h"
 
+#ifdef RGB_MATRIX_ENABLE
+
+//Thanks to Ben (keycapsss) for helpipng me to create g_led_config
+
+// Physical LED position
+// X 0   16  32  48  64  80  96    112 128 144 160 176 208 224
+//   -----------------------------------------------------------|  Y
+//   5   4   3   2   1   0             0   1   2   3   4   5    |  0
+//   6   7   8   9   10  11            11  10  9   8   7   6    |  16
+//   17  16  15  14  13  12            12  13  14  15  16  17   |  32
+//   18  19  20  21  22  23  24    24  23  22  21  20  19  18   |  48
+//           29  28  27  26  25    25  26  27  28  29           |  64
+
+led_config_t g_led_config = { {
+    // Key Matrix to LED Index
+    { 5,  4,  3,  2,  1,  0  },
+    { 6,  7,  8,  9,  10, 11 },
+    { 17, 16, 15, 14, 13, 12 },
+    { 18, 19, 20, 21, 22, 23 },
+    { 29, 28, 27, 26, 25, 24 },
+    { 35, 34, 33, 32, 31, 30 },
+    { 36, 37, 38, 39, 40, 41 },
+    { 47, 46, 45, 44, 43, 42 },
+    { 48, 49, 50, 51, 52, 53 },
+    { 59, 58, 57, 56, 55, 54 }
+}, {
+    // LED Index to Physical Position
+    // Left half
+    { 80, 0 },  { 64, 0 },  { 48, 0 },  { 32, 0 },  { 16, 0 },  { 0, 0 },
+    { 0, 16 },  { 16, 16 }, { 32, 16 }, { 48, 16 }, { 64, 16 }, { 80, 16 },
+    { 80, 32 }, { 64, 32 }, { 48, 32 }, { 32, 32 }, { 16, 32 }, { 0, 32 },
+    { 0, 48 },  { 16, 48 }, { 32, 48 }, { 48, 48 }, { 64, 48 }, { 80, 48 },
+    { 96, 48 }, { 96, 64 }, { 80, 64 }, { 64, 64 }, { 48, 64 }, { 32, 64 },
+    // Right half
+    { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 208, 0 }, { 224, 0 },
+    { 224, 16 }, { 208, 16 }, { 176, 16 }, { 160, 16 }, { 144, 16 }, { 128, 16 },
+    { 128, 32 }, { 144, 32 }, { 160, 32 }, { 176, 32 }, { 208, 32 }, { 224, 32 },
+    { 224, 48 }, { 208, 48 }, { 176, 48 }, { 160, 48 }, { 144, 48 }, { 128, 48 },
+    { 112, 48 }, { 112, 64 }, { 128, 64 }, { 144, 64 }, { 160, 64 }, { 176, 64 }
+
+}, {
+    // LED Index to Flag
+    // 0x01 = 1 = modifier key
+    // 0x02 = 2 = underglow
+    // 0x04 = 4 = key backlight
+    // 0x08 = 8 = keyboard state indication
+    // Left half
+    4, 4, 4, 4, 4, 4,
+    4, 4, 4, 4, 4, 4,
+    4, 4, 4, 4, 4, 1,
+    4, 4, 4, 4, 4, 1,
+    4, 4, 1, 1, 1, 1,
+    // Right half
+    4, 4, 4, 4, 4, 4,
+    4, 4, 4, 4, 4, 4,
+    4, 4, 4, 4, 4, 4,
+    1, 4, 4, 4, 4, 4,
+    4, 4, 1, 1, 1, 1
+} };
+
+#endif // RGB_MATRIX_ENABLE
\ No newline at end of file