diff options
Diffstat (limited to 'keyboards/crkbd')
24 files changed, 97 insertions, 1274 deletions
diff --git a/keyboards/crkbd/crkbd.c b/keyboards/crkbd/crkbd.c index ab1381a39b..6220c9822a 100644 --- a/keyboards/crkbd/crkbd.c +++ b/keyboards/crkbd/crkbd.c @@ -20,7 +20,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) -const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { // Left {{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}, {5, 4}}, {{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}, {5, 5}}, @@ -33,4 +33,3 @@ const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}, {5, 3}} }; #endif - diff --git a/keyboards/crkbd/keymaps/like_jis/config.h b/keyboards/crkbd/keymaps/like_jis/config.h deleted file mode 100644 index a061b4fb09..0000000000 --- a/keyboards/crkbd/keymaps/like_jis/config.h +++ /dev/null @@ -1,45 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako <wakojun@gmail.com> -Copyright 2015 Jack Humbert - -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 - -//#define USE_MATRIX_I2C - -/* Select hand configuration */ - -#define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS - -#define SSD1306OLED - -#define USE_SERIAL_PD2 - -#define PREVENT_STUCK_MODIFIERS -#define TAPPING_FORCE_HOLD -#define TAPPING_TERM 250 - -#undef RGBLED_NUM -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 27 -#define RGBLIGHT_LIMIT_VAL 120 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 diff --git a/keyboards/crkbd/keymaps/like_jis/keymap.c b/keyboards/crkbd/keymaps/like_jis/keymap.c deleted file mode 100644 index 41df6330f5..0000000000 --- a/keyboards/crkbd/keymaps/like_jis/keymap.c +++ /dev/null @@ -1,291 +0,0 @@ -#include QMK_KEYBOARD_H -#include "bootloader.h" -#ifdef PROTOCOL_LUFA - #include "lufa.h" - #include "split_util.h" -#endif -#ifdef SSD1306OLED - #include "ssd1306.h" -#endif -#include "oled_helper.h" - -extern keymap_config_t keymap_config; - -extern uint8_t is_master; - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -enum layer_number { - _BASE = 0, - _LOWER, - _RAISE, - _ADJUST, -}; - -enum custom_keycodes { - LOWER = SAFE_RANGE, - RAISE, - ADJUST, - KANJI, - RGBRST -}; - -enum tapdances{ - TD_CODO = 0, - // TD_MNUB, -}; - -// Layer Mode aliases -#define KC_LOWER LOWER -#define KC_RAISE RAISE - -#define KC______ KC_TRNS -#define KC_XXXXX KC_NO -#define KC_KANJI KANJI - -#define KC_RST RESET -#define KC_LRST RGBRST -#define KC_LTOG RGB_TOG -#define KC_LHUI RGB_HUI -#define KC_LHUD RGB_HUD -#define KC_LSAI RGB_SAI -#define KC_LSAD RGB_SAD -#define KC_LVAI RGB_VAI -#define KC_LVAD RGB_VAD -#define KC_LMOD RGB_MOD -#define KC_KNRM AG_NORM -#define KC_KSWP AG_SWAP - -#define KC_TBSF LSFT_T(KC_TAB) -// #define KC_SPSF LSFT_T(KC_SPC) -#define KC_ALAP LALT_T(KC_APP) - -#define KC_CODO TD(TD_CODO) -// #define KC_MNUB TD(TD_MNUB) - -qk_tap_dance_action_t tap_dance_actions[] = { - [TD_CODO] = ACTION_TAP_DANCE_DOUBLE(KC_COMM, KC_DOT), - // [TD_MNUB] = ACTION_TAP_DANCE_DOUBLE(KC_MINS, LSFT(KC_RO)), -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_kc( \ - //,-----------------------------------------. ,-----------------------------------------. - ESC, Q, W, E, R, T, Y, U, I, O, P, MINS,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - TBSF, A, S, D, F, G, H, J, K, L, UP, ENT,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - LCTRL, Z, X, C, V, B, N, M, CODO, LEFT, DOWN, RGHT,\ - //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - LGUI, LOWER, BSPC, SPC, RAISE, ALAP \ - //`--------------------' `--------------------' - ), - - [_LOWER] = LAYOUT_kc( \ - //,-----------------------------------------. ,-----------------------------------------. - _____, F1, F2, F3, F4, F5, XXXXX, MINS, EQL, JYEN, LBRC, RBRC,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - _____, F6, F7, F8, F9, F10, XXXXX, XXXXX, XXXXX, SCLN, QUOT, BSLS,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - _____, F11, F12, TAB, KANJI, ENT, XXXXX, XXXXX, COMM, DOT, SLSH, RO,\ - //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - _____, _____, DEL, _____, _____, APP \ - //`--------------------' `--------------------' - ), - - [_RAISE] = LAYOUT_kc( \ - //,-----------------------------------------. ,-----------------------------------------. - _____, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, PSLS,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - _____, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, QUOT, 4, 5, 6, PPLS, PAST,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - _____, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, 0, 1, 2, 3, DOT, PMNS,\ - //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - _____, _____, BSPC, _____, _____, LALT \ - //`--------------------' `--------------------' - ), - - [_ADJUST] = LAYOUT_kc( \ - //,-----------------------------------------. ,-----------------------------------------. - _____, RST, LRST, KNRM, KSWP, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\ - //|------+-------+------+------+------+-----| |------+------+------+------+------+------| - _____, LTOG, LHUI, LSAI, LVAI, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, PGUP, XXXXX,\ - //|------+-------+------+------+------+-----| |------+------+------+------+------+------| - _____, LMOD, LHUD, LSAD, LVAD, XXXXX, XXXXX, XXXXX, XXXXX, HOME, PGDN, END,\ - //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - _____, _____, XXXXX, _____, _____, XXXXX \ - //`--------------------' `--------------------' - ) -}; - -#define L_BASE _BASE -#define L_LOWER (1<<_LOWER) -#define L_RAISE (1<<_RAISE) -#define L_ADJUST (1<<_ADJUST) -#define L_ADJUST_TRI (L_ADJUST|L_RAISE|L_LOWER) - -#ifdef SSD1306OLED -typedef struct { - uint8_t state; - char name[8]; -}LAYER_DISPLAY_NAME; - -#define LAYER_DISPLAY_MAX 5 -const LAYER_DISPLAY_NAME layer_display_name[LAYER_DISPLAY_MAX] = { - {L_BASE, "Base"}, - {L_BASE + 1, "Base"}, - {L_LOWER, "Lower"}, - {L_RAISE, "Raise"}, - {L_ADJUST_TRI, "Adjust"} -}; - -static inline const char* get_leyer_status(void) { - - for (uint8_t i = 0; i < LAYER_DISPLAY_MAX; ++i) { - if (layer_state == 0 && layer_display_name[i].state == default_layer_state) { - - return layer_display_name[i].name; - } else if (layer_state != 0 && layer_display_name[i].state == layer_state) { - - return layer_display_name[i].name; - } - } - - return "?"; -} - -static char layer_status_buf[24] = "Layer state ready.\n"; -static inline void update_keymap_status(void) { - - snprintf(layer_status_buf, sizeof(layer_status_buf) - 1, "OS:%s Layer:%s\n", - keymap_config.swap_lalt_lgui? "win" : "mac", get_leyer_status()); -} - -static inline void render_keymap_status(struct CharacterMatrix *matrix) { - - matrix_write(matrix, layer_status_buf); -} - -#define UPDATE_KEYMAP_STATUS() update_keymap_status() -#define RENDER_KEYMAP_STATUS(a) render_keymap_status(a) - -#else - -#define UPDATE_KEYMAP_STATUS() -#define RENDER_KEYMAP_STATUS(a) - -#endif - -static inline void update_change_layer(bool pressed, uint8_t layer1, uint8_t layer2, uint8_t layer3) { - - pressed ? layer_on(layer1) : layer_off(layer1); - IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2) ? layer_on(layer3) : layer_off(layer3); -} - -int RGB_current_mode; -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - - UPDATE_KEY_STATUS(keycode, record); - - bool result = false; - switch (keycode) { - case LOWER: - update_change_layer(record->event.pressed, _LOWER, _RAISE, _ADJUST); - break; - case RAISE: - update_change_layer(record->event.pressed, _RAISE, _LOWER, _ADJUST); - break; - case KANJI: - if (record->event.pressed) { - if (keymap_config.swap_lalt_lgui == false) { - register_code(KC_LANG2); - } else { - SEND_STRING(SS_LALT("`")); - } - } else { - unregister_code(KC_LANG2); - } - break; - #ifdef RGBLIGHT_ENABLE - case RGB_MOD: - if (record->event.pressed) { - rgblight_mode(RGB_current_mode); - rgblight_step(); - RGB_current_mode = rgblight_config.mode; - } - break; - case RGBRST: - if (record->event.pressed) { - eeconfig_update_rgblight_default(); - rgblight_enable(); - RGB_current_mode = rgblight_config.mode; - } - break; - #endif - default: - result = true; - break; - } - - UPDATE_KEYMAP_STATUS(); - return result; -} - -void matrix_init_user(void) { - #ifdef RGBLIGHT_ENABLE - RGB_current_mode = rgblight_config.mode; - UPDATE_KEYMAP_STATUS(); - #endif - //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h - #ifdef SSD1306OLED - iota_gfx_init(!has_usb()); // turns on the display - #endif -} - -//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h -#ifdef SSD1306OLED - -void matrix_scan_user(void) { - iota_gfx_task(); // this is what updates the display continuously -} - -static inline void matrix_update(struct CharacterMatrix *dest, - const struct CharacterMatrix *source) { - if (memcmp(dest->display, source->display, sizeof(dest->display))) { - memcpy(dest->display, source->display, sizeof(dest->display)); - dest->dirty = true; - } -} - -static inline void render_status(struct CharacterMatrix *matrix) { - - UPDATE_LED_STATUS(); - RENDER_LED_STATUS(matrix); - RENDER_KEYMAP_STATUS(matrix); - UPDATE_LOCK_STATUS(); - RENDER_LOCK_STATUS(matrix); - RENDER_KEY_STATUS(matrix); -} - -void iota_gfx_task_user(void) { - struct CharacterMatrix matrix; - - #if DEBUG_TO_SCREEN - if (debug_enable) { - return; - } - #endif - - matrix_clear(&matrix); - if (is_master) { - render_status(&matrix); - } else { - RENDER_LOGO(&matrix); - } - - matrix_update(&display, &matrix); -} - -#endif diff --git a/keyboards/crkbd/keymaps/like_jis/oled_helper.c b/keyboards/crkbd/keymaps/like_jis/oled_helper.c deleted file mode 100644 index 500d3c0dc1..0000000000 --- a/keyboards/crkbd/keymaps/like_jis/oled_helper.c +++ /dev/null @@ -1,83 +0,0 @@ -#ifdef SSD1306OLED -#include QMK_KEYBOARD_H -#include "ssd1306.h" - -void render_logo(struct CharacterMatrix *matrix) { - - const char logo_buf[]={ - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, - 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, - 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4, - 0}; - - matrix_write(matrix, logo_buf); -} - -static char keylog_buf[24] = "Key state ready."; -const char code_to_name[60] = { - ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', - 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', - 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', - '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', - 'R', 'E', 'B', 'T', ' ', '-', ' ', '@', ' ', ' ', - ' ', ';', ':', ' ', ',', '.', '/', ' ', ' ', ' '}; - -void update_key_status(uint16_t keycode, keyrecord_t *record) { - - if (!record->event.pressed) return; - - char name = (keycode < 60) ? code_to_name[keycode] : ' '; - snprintf(keylog_buf, sizeof(keylog_buf) - 1, "Key:%dx%d %2x %c", - record->event.key.row, record->event.key.col, - (uint16_t)keycode, name); -} - -void render_key_status(struct CharacterMatrix *matrix) { - - matrix_write(matrix, keylog_buf); -} - -static char lock_buf[24] = "Lock state ready.\n"; -void update_lock_status(void) { - - uint8_t leds = host_keyboard_leds(); - char *num_lock = (leds & (1<<USB_LED_NUM_LOCK)) ? "Num" : ""; - char *caps_lock = (leds & (1<<USB_LED_CAPS_LOCK)) ? "Caps" : ""; - char *scrl_lock = (leds & (1<<USB_LED_SCROLL_LOCK)) ? "Scrn" : ""; - snprintf(lock_buf, sizeof(lock_buf) - 1, "Lock:%s %s %s\n", - num_lock, caps_lock, scrl_lock); -} - -void render_lock_status(struct CharacterMatrix *matrix) { - - matrix_write(matrix, lock_buf); -} - -#ifdef RGBLIGHT_ENABLE -extern rgblight_config_t rgblight_config; - -static char led_buf[24] = "LED state ready.\n"; -rgblight_config_t rgblight_config_bak; -void update_led_status(void) { - - if (rgblight_config_bak.enable != rgblight_config.enable || - rgblight_config_bak.mode != rgblight_config.mode || - rgblight_config_bak.hue != rgblight_config.hue || - rgblight_config_bak.sat != rgblight_config.sat || - rgblight_config_bak.val != rgblight_config.val - ) { - snprintf(led_buf, sizeof(led_buf) - 1, "LED%c:%2d hsv:%2d %2d %2d\n", - rgblight_config.enable ? '*' : '.', (uint8_t)rgblight_config.mode, - (uint8_t)(rgblight_config.hue / RGBLIGHT_HUE_STEP), - (uint8_t)(rgblight_config.sat / RGBLIGHT_SAT_STEP), - (uint8_t)(rgblight_config.val / RGBLIGHT_VAL_STEP)); - rgblight_config_bak = rgblight_config; - } -} - -void render_led_status(struct CharacterMatrix *matrix) { - - matrix_write(matrix, led_buf); -} -#endif -#endif diff --git a/keyboards/crkbd/keymaps/like_jis/oled_helper.h b/keyboards/crkbd/keymaps/like_jis/oled_helper.h deleted file mode 100644 index 44628a5261..0000000000 --- a/keyboards/crkbd/keymaps/like_jis/oled_helper.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifdef SSD1306OLED - -void render_logo(struct CharacterMatrix *matrix); -void update_key_status(uint16_t keycode, keyrecord_t *record); -void render_key_status(struct CharacterMatrix *matrix); -void update_lock_status(void); -void render_lock_status(struct CharacterMatrix *matrix); - -#define RENDER_LOGO(a) render_logo(a) -#define UPDATE_KEY_STATUS(a, b) update_key_status(a, b) -#define RENDER_KEY_STATUS(a) render_key_status(a) -#define UPDATE_LOCK_STATUS() update_lock_status() -#define RENDER_LOCK_STATUS(a) render_lock_status(a) - -#ifdef RGBLIGHT_ENABLE - void update_led_status(void); - void render_led_status(struct CharacterMatrix *matrix); - #define UPDATE_LED_STATUS() update_led_status() - #define RENDER_LED_STATUS(a) render_led_status(a) -#else - #define UPDATE_LED_STATUS() - #define RENDER_LED_STATUS(a) -#endif - -#else - -#define RENDER_LOGO(a) -#define UPDATE_KEY_STATUS(a, b) -#define RENDER_KEY_STATUS(a) -#define UPDATE_LOCK_STATUS() -#define RENDER_LOCK_STATUS(a) -#define UPDATE_LED_STATUS() -#define RENDER_LED_STATUS(a) - -#endif diff --git a/keyboards/crkbd/keymaps/like_jis/rules.mk b/keyboards/crkbd/keymaps/like_jis/rules.mk deleted file mode 100644 index 92f4693aa7..0000000000 --- a/keyboards/crkbd/keymaps/like_jis/rules.mk +++ /dev/null @@ -1,32 +0,0 @@ - -# Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = no # Mouse keys(+4700) -EXTRAKEY_ENABLE = no # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. -SWAP_HANDS_ENABLE = no # Enable one-hand typing -TAP_DANCE_ENABLE = yes - -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - -Link_Time_Optimization = yes # if firmware size over limit, try this option - -ifeq ($(strip $(Link_Time_Optimization)),yes) - EXTRAFLAGS += -flto -DUSE_Link_Time_Optimization -endif - -# If you want to change the display of OLED, you need to change here -SRC += ./lib/glcdfont.c \ - oled_helper.c \ diff --git a/keyboards/crkbd/keymaps/omgvee/config.h b/keyboards/crkbd/keymaps/omgvee/config.h deleted file mode 100644 index 5699c3bebe..0000000000 --- a/keyboards/crkbd/keymaps/omgvee/config.h +++ /dev/null @@ -1,51 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako <wakojun@gmail.com> -Copyright 2015 Jack Humbert - -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 - -//#define USE_MATRIX_I2C - -/* Select hand configuration */ - -#define MASTER_LEFT -// #define MASTER_RIGHT -// #define EE_HANDS - -#define SSD1306OLED - -#define USE_SERIAL_PD2 - -#define TAPPING_FORCE_HOLD -#define TAPPING_TERM 100 - -#undef RGBLED_NUM -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 27 -#define RGBLIGHT_LIMIT_VAL 120 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 -#define BACKLIGHT_LEVELS 10 - -#undef PRODUCT -#define PRODUCT "Vee's hotswappable Helidox/Corne/CRKBD split keeb" - -#define NO_ACTION_MACRO -#define NO_ACTION_FUNCTION diff --git a/keyboards/crkbd/keymaps/omgvee/keymap.c b/keyboards/crkbd/keymaps/omgvee/keymap.c deleted file mode 100644 index 2c33d8b8c5..0000000000 --- a/keyboards/crkbd/keymaps/omgvee/keymap.c +++ /dev/null @@ -1,242 +0,0 @@ -#include QMK_KEYBOARD_H -#include "bootloader.h" -#ifdef PROTOCOL_LUFA - #include "lufa.h" - #include "split_util.h" -#endif -#ifdef SSD1306OLED - #include "ssd1306.h" -#endif - -extern keymap_config_t keymap_config; - -#ifdef RGBLIGHT_ENABLE -//Following line allows macro to read current RGB settings -extern rgblight_config_t rgblight_config; -#endif - -extern uint8_t is_master; - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _QWERTY 0 -#define _LOWER 1 -#define _RAISE 2 -#define _ADJUST 3 - -enum custom_keycodes { - QWERTY = SAFE_RANGE, - LOWER, - RAISE, - ADJUST, - BACKLIT, - RGBRST -}; - -enum macro_keycodes { - KC_SAMPLEMACRO, -}; - -#define KC______ KC_TRNS -#define KC_XXXXX KC_NO -#define KC_LOWER LOWER -#define KC_RAISE RAISE -#define KC_RST RESET -#define KC_ERST EEPROM_RESET -#define KC_LRST RGBRST -#define KC_LTOG RGB_TOG -#define KC_LHUI RGB_HUI -#define KC_LHUD RGB_HUD -#define KC_LSAI RGB_SAI -#define KC_LSAD RGB_SAD -#define KC_LVAI RGB_VAI -#define KC_LVAD RGB_VAD -#define KC_LMOD RGB_MOD -#define KC_SFCPS SFT_T(KC_CAPS) -#define KC_CTLTB CTL_T(KC_TAB) -#define KC_GUIEI GUI_T(KC_LANG2) -#define KC_ALTKN ALT_T(KC_LANG1) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_kc( \ - //,-----------------------------------------. ,-----------------------------------------. - ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - SFCPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - CTLTB, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT,\ - //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - GUIEI, LOWER, ENT, SPC, RAISE, ALTKN \ - //`--------------------' `--------------------' - ), - - [_LOWER] = LAYOUT_kc( \ - //,-----------------------------------------. ,-----------------------------------------. - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, BSPC,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - SFCPS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, ENT,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - CTLTB, F11, F12, F13, F14, F15, F16, F17, F18, F19, F20, RSFT,\ - //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - GUIEI, LOWER, ENT, SPC, RAISE, ALTKN \ - //`--------------------' `--------------------' - ), - - [_RAISE] = LAYOUT_kc( \ - //,-----------------------------------------. ,-----------------------------------------. - TAB, EXLM, AT, HASH, DLR, PERC, CIRC, AMPR, ASTR, LPRN, RPRN, DEL,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - SFCPS, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, MINS, EQL, LCBR, RCBR, PIPE, BSLS,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - CTLTB, XXXXX, VOLD, VOLU, MUTE, MPLY, UNDS, PLUS, LBRC, RBRC, SLSH, RSFT,\ - //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - GUIEI, LOWER, ENT, SPC, RAISE, ALTKN \ - //`--------------------' `--------------------' - ), - - [_ADJUST] = LAYOUT_kc( \ - //,-----------------------------------------. ,-----------------------------------------. - RST, LRST, XXXXX, XXXXX, XXXXX, ERST, MNXT, MPRV, MFFD, MRWD, XXXXX, EJCT,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - LTOG, LHUI, LSAI, LVAI, PGUP, HOME, LEFT, DOWN, UP, RIGHT, XXXXX, INS,\ - //|------+------+------+------+------+------| |------+------+------+------+------+------| - LMOD, LHUD, LSAD, LVAD, PGDN, END, BRID, BRIU, VOLD, VOLU, MUTE, MPLY,\ - //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------| - GUIEI, LOWER, ENT, SPC, RAISE, ALTKN \ - //`--------------------' `--------------------' - ) -}; - -int RGB_current_mode; - -// Setting ADJUST layer RGB back to default -void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { - layer_on(layer3); - } else { - layer_off(layer3); - } -} - -void matrix_init_user(void) { - #ifdef RGBLIGHT_ENABLE - RGB_current_mode = rgblight_config.mode; - #endif - //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h - #ifdef SSD1306OLED - iota_gfx_init(!has_usb()); // turns on the display - #endif -} - -//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h -#ifdef SSD1306OLED - -// When add source files to SRC in rules.mk, you can use functions. -const char *read_layer_state(void); -const char *read_logo(void); -void set_keylog(uint16_t keycode, keyrecord_t *record); -const char *read_keylog(void); -const char *read_keylogs(void); - -// const char *read_mode_icon(bool swap); -// const char *read_host_led_state(void); -// void set_timelog(void); -// const char *read_timelog(void); - -void matrix_scan_user(void) { - iota_gfx_task(); -} - -void matrix_render_user(struct CharacterMatrix *matrix) { - if (is_master) { - // If you want to change the display of OLED, you need to change here - matrix_write_ln(matrix, read_layer_state()); - matrix_write_ln(matrix, read_keylog()); - matrix_write_ln(matrix, read_keylogs()); - //matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui)); - //matrix_write_ln(matrix, read_host_led_state()); - //matrix_write_ln(matrix, read_timelog()); - } else { - matrix_write_ln(matrix, read_layer_state()); - matrix_write_ln(matrix, read_keylog()); - matrix_write_ln(matrix, read_keylogs()); - //matrix_write(matrix, read_logo()); - } -} - -void matrix_update(struct CharacterMatrix *dest, const struct CharacterMatrix *source) { - if (memcmp(dest->display, source->display, sizeof(dest->display))) { - memcpy(dest->display, source->display, sizeof(dest->display)); - dest->dirty = true; - } -} - -void iota_gfx_task_user(void) { - struct CharacterMatrix matrix; - matrix_clear(&matrix); - matrix_render_user(&matrix); - matrix_update(&display, &matrix); -} -#endif//SSD1306OLED - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { -#ifdef SSD1306OLED - set_keylog(keycode, record); -#endif - // set_timelog(); - } - - switch (keycode) { - case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_RAISE); - update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case ADJUST: - if (record->event.pressed) { - layer_on(_ADJUST); - } else { - layer_off(_ADJUST); - } - return false; - break; - case RGB_MOD: - #ifdef RGBLIGHT_ENABLE - if (record->event.pressed) { - rgblight_mode(RGB_current_mode); - rgblight_step(); - RGB_current_mode = rgblight_config.mode; - } - #endif - return false; - break; - case RGBRST: - #ifdef RGBLIGHT_ENABLE |