diff options
| -rw-r--r-- | keyboards/keycapsss/kimiko/keymaps/default/keymap.c | 83 | ||||
| -rw-r--r-- | keyboards/keycapsss/kimiko/keymaps/default/rules.mk | 2 | ||||
| -rw-r--r-- | keyboards/keycapsss/kimiko/keymaps/oriaj3/config.h | 75 | ||||
| -rw-r--r-- | keyboards/keycapsss/kimiko/keymaps/oriaj3/glcdfont.c | 251 | ||||
| -rw-r--r-- | keyboards/keycapsss/kimiko/keymaps/oriaj3/keymap.c | 413 | ||||
| -rw-r--r-- | keyboards/keycapsss/kimiko/keymaps/oriaj3/rules.mk | 21 | ||||
| -rw-r--r-- | keyboards/keycapsss/kimiko/kimiko.c | 61 | 
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 | 
