diff options
20 files changed, 525 insertions, 627 deletions
| diff --git a/keyboards/crkbd/keymaps/edvorakjp/config.h b/keyboards/crkbd/keymaps/edvorakjp/config.h index b8662aca09..8787ba88d3 100644 --- a/keyboards/crkbd/keymaps/edvorakjp/config.h +++ b/keyboards/crkbd/keymaps/edvorakjp/config.h @@ -1,25 +1,25 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H +#pragma once  /* Select hand configuration */ -// #define MASTER_LEFT -#define MASTER_RIGHT +#define MASTER_LEFT +// #define MASTER_RIGHT  // #define EE_HANDS -#define SSD1306OLED  #define SWAP_SCLN  // #define TAPPING_FORCE_HOLD  #define TAPPING_TERM 300  #define IGNORE_MOD_TAP_INTERRUPT -#undef RGBLED_NUM -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLED_NUM 27 -#define RGBLIGHT_LIMIT_VAL 100 -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 +#ifdef RGBLIGHT_ENABLE +#    undef RGBLED_NUM +#    define RGBLIGHT_EFFECT_STATIC_GRADIENT +#    define RGBLED_NUM 27 +#    define RGBLIGHT_LIMIT_VAL 100 +#    define RGBLIGHT_HUE_STEP 10 +#    define RGBLIGHT_SAT_STEP 17 +#    define RGBLIGHT_VAL_STEP 17 +#endif  // RGBLIGHT_ENABLE -#endif // CONFIG_USER_H +#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" diff --git a/keyboards/crkbd/keymaps/edvorakjp/keymap.c b/keyboards/crkbd/keymaps/edvorakjp/keymap.c index 32001f22da..5e56da61a9 100644 --- a/keyboards/crkbd/keymaps/edvorakjp/keymap.c +++ b/keyboards/crkbd/keymaps/edvorakjp/keymap.c @@ -1,9 +1,6 @@  #include QMK_KEYBOARD_H  #ifdef PROTOCOL_LUFA -  #include "split_util.h" -#endif -#ifdef SSD1306OLED -  #include "oled.h" +#    include "split_util.h"  #endif  #include "edvorakjp.h" @@ -14,85 +11,63 @@   * };   */ -#define KC_ KC_TRNS - -#define KC_TMB1 KC_LA(TAB) -#define KC_TMB2 KC_LS(SPC) -#define KC_TMB3 TD(TD_LOWER) // act as LOWER when hold, as KC_LANG2(=English) when tapped -#define KC_TMB4 TD(TD_RAISE) // act as RAISE when hold, as KC_LANG1(=Japanese) when tapped -#define KC_TMB5 KC_RC(BSPC) -#define KC_TMB6 KC_RG(ENT) -#define KC_TMB7 KC_RC(DEL) +#define LAYOUT_wrapper(...) LAYOUT_split_3x6_3(__VA_ARGS__) +// clang-format off  const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -  [_EDVORAK] = LAYOUT_kc( -  //|----+----+-----+-----+-----+----|           |----+-----+-----+-----+----+----| -     GRV ,QUOT,COMM , DOT ,  Y  , Q  ,             F  ,  G  ,  R  ,  W  , P  ,BSLS, -  //|----+----+-----+-----+-----+----|           |----+-----+-----+-----+----+----| -     EQL , A  ,LA(O),LG(E),LC(I), U  ,             D  ,RS(T),RG(N),RA(S), M  ,MINS, -  //|----+----+-----+-----+-----+----|           |----+-----+-----+-----+----+----| -     ESC ,SCLN,  X  ,  C  ,  V  , Z  ,             H  ,  J  ,  K  ,  L  , B  ,SLSH, -  //`----+----+-----+-----+-----+----+----| |----+----+-----+-----+-----+----+----' -                           TMB1 ,TMB2,TMB3,  TMB4,TMB5,TMB6 -  //                      `-----+----+----' `----+----+-----' +  [L_EDVORAKJP_BASE] = LAYOUT_wrapper( +  //,-----------------------------------------------------.                    ,-----------------------------------------------------. +       KC_GRV,            __EDVORAKJP_BASE_L1__           ,                                __EDVORAKJP_BASE_R1__            , KC_BSLS, +  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +       KC_EQL,            __EDVORAKJP_BASE_L2__           ,                                __EDVORAKJP_BASE_R2__            , KC_MINS, +  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +       KC_ESC,            __EDVORAKJP_BASE_L3__           ,                                __EDVORAKJP_BASE_R3__            , KC_SLSH, +  //|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------| +                                           LA_TAB,  LS_SPC,LOWER_TD,   RAISE_TD, RC_BSPC,  RG_ENT +                                      //`--------------------------'  `--------------------------'    ), -  [_LOWER] = LAYOUT_kc( -  //|----+----+------+------+------+----|           |----+------+------+-------+----+----| -         ,    , LCBR , LBRC , LPRN ,    ,                , RPRN , RBRC , RCBR  ,    ,    , -  //|----+----+------+------+------+----|           |----+------+------+-------+----+----| -      F1 , F2 ,LA(F3),LG(F4),LC(F5), F6 ,             F7 ,RS(F8),RG(F9),RA(F10),F11 ,F12 , -  //|----+----+------+------+------+----|           |----+------+------+-------+----+----| -     PSCR,    , HOME , PGDN , PGUP ,END ,            LEFT, DOWN ,  UP  , RGHT  ,    ,    , -  //`----+----+------+------+------+----+----| |----+----+------+------+-------+----+----' -                                   ,    , NO ,  MAC ,TMB7, -  //                         `-----+----+----' `----+----+-----' +  [L_EDVORAKJP_LOWER] = LAYOUT_wrapper( +  //,-----------------------------------------------------.                    ,-----------------------------------------------------. +      XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_L__  , XXXXXXX,                      XXXXXXX,  __EDVORAKJP_BRACKET_R__ , XXXXXXX, XXXXXXX, +  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +                       __EDVORAKJP_FUNCTION_L__           ,                                __EDVORAKJP_FUNCTION_R__                  , +  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +      KC_PSCR, XXXXXXX,      __EDVORAKJP_PAGE__           ,                                __EDVORAKJP_CURSOR__    , XXXXXXX, XXXXXXX, +  //|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------| +                                          KC_TRNS, KC_TRNS, XXXXXXX,     KC_MAC,  RC_DEL, KC_TRNS +                                      //`--------------------------'  `--------------------------'    ), -  [_RAISE] = LAYOUT_kc( -  //|----+----+-----+-----+-----+----|           |----+-----+-----+-----+----+----| -         ,    ,EXLM , AT  ,HASH ,DLR ,            PERC,CIRC ,AMPR ,ASTR ,    ,    , -  //|----+----+-----+-----+-----+----|           |----+-----+-----+-----+----+----| -         , 1  ,LA(2),LG(3),LC(4), 5  ,             6  ,RS(7),RG(8),RA(9), 0  ,    , -  //|----+----+-----+-----+-----+----|           |----+-----+-----+-----+----+----| -     PSCR,    ,HOME ,PGDN ,PGUP ,END ,            LEFT,DOWN , UP  ,RGHT ,    ,    , -  //`----+----+-----+-----+-----+----+----| |----+----+-----+-----+-----+----+----' -                                ,    ,WIN ,   NO ,    , -  //                      `-----+----+----' `----+----+----' +  [L_EDVORAKJP_RAISE] = LAYOUT_wrapper( +  //,-----------------------------------------------------.                    ,-----------------------------------------------------. +      XXXXXXX, XXXXXXX,  __EDVORAKJP_SYMBOL_L__           ,                                __EDVORAKJP_SYMBOL_R__  , XXXXXXX, XXXXXXX, +  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +      XXXXXXX,           __EDVORAKJP_NUMBER_L__           ,                                __EDVORAKJP_NUMBER_R__           , XXXXXXX, +  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +      KC_PSCR, XXXXXXX,      __EDVORAKJP_PAGE__           ,                                __EDVORAKJP_CURSOR__    , XXXXXXX, XXXXXXX, +  //|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------| +                                          KC_TRNS, KC_TRNS,  KC_WIN,    XXXXXXX, KC_TRNS, KC_TRNS +                                      //`--------------------------'  `--------------------------'    )  }; - -#ifdef SSD1306OLED -void matrix_init_keymap(void) { -  //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h -#ifdef MASTER_RIGHT -  iota_gfx_init(has_usb()); // turns on the display -#else -  iota_gfx_init(!has_usb()); -#endif // MASTER_RIGHT -} - -void matrix_scan_user(void) { -  iota_gfx_task();  // this is what updates the display continuously -} -#endif +// clang-format on  #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT  uint32_t layer_state_set_keymap(uint32_t state) { -  rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); -  switch (biton32(state)) { -    case _LOWER: -      rgblight_sethsv_noeeprom_red(); -      break; -    case _RAISE: -      rgblight_sethsv_noeeprom_green(); -      break; -    default: // for any other layers, or the default layer -      rgblight_mode(RGBLIGHT_MODE_STATIC_GRADIENT + 3); -      rgblight_sethsv_red(); -      break; -  } -  return state; +    rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); +    switch (biton32(state)) { +        case L_EDVORAKJP_LOWER: +            rgblight_sethsv_noeeprom_red(); +            break; +        case L_EDVORAKJP_RAISE: +            rgblight_sethsv_noeeprom_green(); +            break; +        default:  // for any other layers, or the default layer +            rgblight_mode(RGBLIGHT_MODE_STATIC_GRADIENT + 3); +            rgblight_sethsv_red(); +            break; +    } +    return state;  }  #endif diff --git a/keyboards/crkbd/keymaps/edvorakjp/oled.c b/keyboards/crkbd/keymaps/edvorakjp/oled.c index cbb43d0615..2e0fed47ee 100644 --- a/keyboards/crkbd/keymaps/edvorakjp/oled.c +++ b/keyboards/crkbd/keymaps/edvorakjp/oled.c @@ -1,76 +1,55 @@ +#include <stdio.h>  #include <string.h>  #include "oled.h" -// NOTE: Redefined to avoid to use snprintf(); It makes size of firmware big. -const char *read_mode_icon(bool windows_mode) { -  static const char logo[][2][3] = {{{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}}; -  static char mode_icon[10]; - -  int mode_number = windows_mode ? 1 : 0; -  strcpy(mode_icon, logo[mode_number][0]); - -  strcat(mode_icon, "\n"); -  strcat(mode_icon, logo[mode_number][1]); - -  return mode_icon; +#ifdef OLED_DRIVER_ENABLE +void render_host_led_state(void) { oled_write(read_host_led_state(), false); } + +void render_layer_state(void) { +    char layer_name[17]; +    oled_write_P(PSTR("Layer: "), false); + +    switch (biton32(layer_state)) { +        case L_EDVORAKJP_BASE: +            oled_write_ln_P(PSTR("Default"), false); +            break; +        case L_EDVORAKJP_LOWER: +            oled_write_ln_P(PSTR("Lower"), false); +            break; +        case L_EDVORAKJP_RAISE: +            oled_write_ln_P(PSTR("Raise"), false); +            break; +        default: +            snprintf(layer_name, sizeof(layer_name), "Undef-%ld", layer_state); +            oled_write_ln(layer_name, false); +    }  } -const char *read_layer_state(void) { -  static char layer_state_str[24]; -  char layer_name[17]; - -  switch (biton32(layer_state)) { -    case L_BASE: -      strcpy(layer_name, "Default"); -      break; -    case _RAISE: -      strcpy(layer_name, "Raise"); -      break; -    case _LOWER: -      strcpy(layer_name, "Lower"); -      break; -    default: -      snprintf(layer_name, sizeof(layer_name), "Undef-%ld", layer_state); -  } +void render_logo(void) { oled_write(read_logo(), false); } -  strcpy(layer_state_str, "Layer: "); +void render_mode_icon(bool is_windows) { +    static const char logo[][2][3] = { +        {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, +        {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}, +    }; +    static char mode_icon[10]; -  strcat(layer_state_str, layer_name); -  strcat(layer_state_str, "\n"); -  return layer_state_str; +    snprintf(mode_icon, sizeof(mode_icon), "%s\n%s ", logo[is_windows][0], logo[is_windows][1]); +    oled_write(mode_icon, false);  } -const char *read_host_led_state(void) { -  static char led_str[24]; -  strcpy(led_str, (host_keyboard_leds() & (1<<USB_LED_NUM_LOCK)) ? "NMLK" : "    "); -  strcat(led_str, (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) ? " CAPS" : "    "); -  strcat(led_str, (host_keyboard_leds() & (1<<USB_LED_SCROLL_LOCK)) ? " SCLK" : "     "); -  return led_str; +oled_rotation_t oled_init_user(oled_rotation_t rotation) { +    // flips the display 180 degrees if offhand +    return is_keyboard_left() ? rotation : rotation ^ OLED_ROTATION_180;  } -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); -#ifdef MASTER_RIGHT -  if (!is_master) { -#else -  if (is_master) { -#endif // MASTER_RIGHT -    matrix_write(&matrix, read_mode_icon(!get_enable_kc_lang())); -    matrix_write(&matrix, " "); -    matrix_write(&matrix, read_layer_state()); -    matrix_write(&matrix, read_host_led_state()); -  } else { -    matrix_write(&matrix, read_logo()); -  } -  matrix_update(&display, &matrix); +void oled_task_user(void) { +    if (is_keyboard_left()) { +        render_mode_icon(!get_enable_kc_lang()); +        render_layer_state(); +        render_host_led_state(); +    } else { +        render_logo(); +    }  } +#endif  // OLED_DRIVER_ENABLE diff --git a/keyboards/crkbd/keymaps/edvorakjp/oled.h b/keyboards/crkbd/keymaps/edvorakjp/oled.h index 896347aea9..d9939c83a0 100644 --- a/keyboards/crkbd/keymaps/edvorakjp/oled.h +++ b/keyboards/crkbd/keymaps/edvorakjp/oled.h @@ -1,24 +1,17 @@ -#ifndef OLED_USER_H -#define OLED_USER_H +#pragma once -//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h -#include "ssd1306.h"  #include "edvorakjp.h" -//assign the right code to your layers for OLED display -#define L_BASE 0 - -extern uint8_t is_master;  extern bool japanese_mode;  // method prototypes defined in crkbd/lib +extern const char *read_host_led_state(void);  extern const char *read_logo(void); +extern const char *read_mode_icon(bool swap); -const char *read_mode_icon(bool swap); -const char *read_layer_state(void); -const char *read_host_led_state(void); -void matrix_update(struct CharacterMatrix *dest, -                   const struct CharacterMatrix *source); -void iota_gfx_task_user(void); - -#endif // OLED_CONFIG_USER_H +void            render_host_led_state(void); +void            render_layer_state(void); +void            render_logo(void); +void            render_mode_icon(bool is_windows); +oled_rotation_t oled_init_user(oled_rotation_t rotation); +void            oled_task_user(void); diff --git a/keyboards/crkbd/keymaps/edvorakjp/rules.mk b/keyboards/crkbd/keymaps/edvorakjp/rules.mk index b4f6d2f1f1..111f6de27d 100644 --- a/keyboards/crkbd/keymaps/edvorakjp/rules.mk +++ b/keyboards/crkbd/keymaps/edvorakjp/rules.mk @@ -16,17 +16,13 @@ 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 +OLED_DRIVER_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  # If you want to change the display of OLED, you need to change here -SRC += ./lib/glcdfont.c \ +SRC += ./lib/host_led_state_reader.c \         ./lib/logo_reader.c \ -       oled.c \ -       # ./lib/rgb_state_reader.c \ -       # ./lib/layer_state_reader.c \ -       # ./lib/keylogger.c \ -       # ./lib/mode_icon_reader.c \ -       # ./lib/host_led_state_reader.c \ -       # ./lib/timelogger.c \ +       ./lib/mode_icon_reader.c \ +       oled.c diff --git a/keyboards/helix/rev2/keymaps/edvorakjp/config.h b/keyboards/helix/rev2/keymaps/edvorakjp/config.h index cd0568f61e..ca3b73aa29 100644 --- a/keyboards/helix/rev2/keymaps/edvorakjp/config.h +++ b/keyboards/helix/rev2/keymaps/edvorakjp/config.h @@ -1,5 +1,4 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H +#pragma once  #define SWAP_SCLN @@ -12,15 +11,13 @@  // Selection of RGBLIGHT MODE to use.  #if defined(LED_ANIMATIONS) -   //#define RGBLIGHT_EFFECT_BREATHING -   //#define RGBLIGHT_EFFECT_RAINBOW_MOOD -   //#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -   //#define RGBLIGHT_EFFECT_SNAKE -   //#define RGBLIGHT_EFFECT_KNIGHT -   //#define RGBLIGHT_EFFECT_CHRISTMAS -   #define RGBLIGHT_EFFECT_STATIC_GRADIENT -   //#define RGBLIGHT_EFFECT_RGB_TEST -   //#define RGBLIGHT_EFFECT_ALTERNATING -#endif - -#endif /* CONFIG_USER_H */ +//#    define RGBLIGHT_EFFECT_BREATHING +//#    define RGBLIGHT_EFFECT_RAINBOW_MOOD +//#    define RGBLIGHT_EFFECT_RAINBOW_SWIRL +//#    define RGBLIGHT_EFFECT_SNAKE +//#    define RGBLIGHT_EFFECT_KNIGHT +//#    define RGBLIGHT_EFFECT_CHRISTMAS +#    define RGBLIGHT_EFFECT_STATIC_GRADIENT +//#    define RGBLIGHT_EFFECT_RGB_TEST +//#    define RGBLIGHT_EFFECT_ALTERNATING +#endif  // LED_ANIMATIONS diff --git a/keyboards/helix/rev2/keymaps/edvorakjp/keymap.c b/keyboards/helix/rev2/keymaps/edvorakjp/keymap.c index 9fba5072c4..5de00cb14c 100644 --- a/keyboards/helix/rev2/keymaps/edvorakjp/keymap.c +++ b/keyboards/helix/rev2/keymaps/edvorakjp/keymap.c @@ -1,38 +1,24 @@  #include QMK_KEYBOARD_H  #include "split_util.h"  #include "keymap_xrows.h" -#ifdef SSD1306OLED -  #include "oled.h" -#endif  // keymaps definitions are moved to keymap_Xrows.c. -#ifdef SSD1306OLED -void matrix_init_keymap(void) { -  //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h -  iota_gfx_init(!has_usb());   // turns on the display -} - -void matrix_scan_user(void) { -  iota_gfx_task();  // this is what updates the display continuously -} -#endif -  #ifdef RGBLIGHT_ENABLE  uint32_t layer_state_set_keymap(uint32_t state) { -  rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); -  switch (biton32(state)) { -    case _LOWER: -      rgblight_sethsv_noeeprom_red(); -      break; -    case _RAISE: -      rgblight_sethsv_noeeprom_blue(); -      break; -    default: //  for any other layers, or the default layer -      rgblight_mode(RGBLIGHT_MODE_STATIC_GRADIENT + 3); -      rgblight_sethsv_red(); -      break; -  } -  return state; +    rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); +    switch (biton32(state)) { +        case L_EDVORAKJP_LOWER: +            rgblight_sethsv_noeeprom_red(); +            break; +        case L_EDVORAKJP_RAISE: +            rgblight_sethsv_noeeprom_green(); +            break; +        default:  //  for any other layers, or the default layer +            rgblight_mode(RGBLIGHT_MODE_STATIC_GRADIENT + 3); +            rgblight_sethsv_red(); +            break; +    } +    return state;  }  #endif diff --git a/keyboards/helix/rev2/keymaps/edvorakjp/keymap_4rows.c b/keyboards/helix/rev2/keymaps/edvorakjp/keymap_4rows.c index f2befc03b5..246c2a9fd2 100644 --- a/keyboards/helix/rev2/keymaps/edvorakjp/keymap_4rows.c +++ b/keyboards/helix/rev2/keymaps/edvorakjp/keymap_4rows.c @@ -1,41 +1,42 @@  #include "helix.h"  #include "keymap_xrows.h" +// clang-format off  const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -  [_EDVORAK] = LAYOUT_kc( -  //,----+----+-----+-----+-----+----.           ,----+-----+-----+-----+----+----. -     GRV ,QUOT,COMM , DOT ,  Y  , Q  ,             F  ,  G  ,  R  ,  W  , P  ,BSLS, -  //|----+----+-----+-----+-----+----|           |----+-----+-----+-----+----+----| -     EQL , A  ,LA(O),LG(E),LC(I), U  ,             D  ,RS(T),RG(N),RA(S), M  ,MINS, -  //|----+----+-----+-----+-----+----|           |----+-----+-----+-----+----+----| -     ESC ,SCLN,  X  ,  C  ,  V  , Z  ,             H  ,  J  ,  K  ,  L  , B  ,SLSH, -  //|----+----+-----+-----+-----+----+----. ,----+----+-----+-----+-----+----+----| -     HOME,PGDN,PGUP , END ,TMB1 ,TMB2,TMB3,  TMB4,TMB5,TMB6 ,LEFT ,DOWN , UP ,RGHT -  //`----+----+-----+-----+-----+----+----/ \----+----+-----+-----+-----+----+----' +  [L_EDVORAKJP_BASE] = LAYOUT_wrapper( +  //,-----------------------------------------------------.                    ,-----------------------------------------------------. +       KC_GRV,            __EDVORAKJP_BASE_L1__           ,                                __EDVORAKJP_BASE_R1__            , KC_BSLS, +  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +       KC_EQL,            __EDVORAKJP_BASE_L2__           ,                                __EDVORAKJP_BASE_R2__            , KC_MINS, +  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +       KC_ESC,            __EDVORAKJP_BASE_L3__           ,                                __EDVORAKJP_BASE_R3__            , KC_SLSH, +  //|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------| +             __EDVORAKJP_PAGE__         ,  LA_TAB,  LS_SPC,LOWER_TD,   RAISE_TD, RC_BSPC,  RG_ENT,        __EDVORAKJP_CURSOR__ +  //`--------------------------------------------------------------'  `--------------------------------------------------------------'    ), -  [_LOWER] = LAYOUT_kc( -  //,----+----+------+------+------+----.           ,----+------+------+-------+----+----. -         ,    , LCBR , LBRC , LPRN ,    ,                , RPRN , RBRC , RCBR  ,    ,    , -  //|----+----+------+------+------+----|           |----+------+------+-------+----+----| -      F1 , F2 ,LA(F3),LG(F4),LC(F5), F6 ,             F7 ,RS(F8),RG(F9),RA(F10),F11 ,F12 , -  //|----+----+------+------+------+----|           |----+------+------+-------+----+----| -     PSCR,    , HOME , PGDN , PGUP ,END ,            LEFT, DOWN ,  UP  , RGHT  ,    ,    , -  //|----+----+------+------+------+----+----. ,----+----+------+------+-------+----+----| -         ,    ,      ,      ,      ,    , NO ,  MAC ,TMB7,      ,      ,       ,    , -  //`----+----+------+------+------+----+----/ \----+----+------+------+-------+----+----' +  [L_EDVORAKJP_LOWER] = LAYOUT_wrapper( +  //,-----------------------------------------------------.                    ,-----------------------------------------------------. +      XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_L__  , XXXXXXX,                      XXXXXXX,  __EDVORAKJP_BRACKET_R__ , XXXXXXX, XXXXXXX, +  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +                       __EDVORAKJP_FUNCTION_L__           ,                                __EDVORAKJP_FUNCTION_R__                  , +  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +      KC_PSCR, XXXXXXX,      __EDVORAKJP_PAGE__           ,                                __EDVORAKJP_CURSOR__    , XXXXXXX, XXXXXXX, +  //|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------| +                __KC_TRNS_x4__          , KC_TRNS, KC_TRNS, XXXXXXX,     KC_MAC,  RC_DEL, KC_TRNS,          __KC_TRNS_x4__ +  //`--------------------------------------------------------------'  `--------------------------------------------------------------'    ), -  [_RAISE] = LAYOUT_kc( -  //,----+----+-----+-----+-----+----.           ,----+-----+-----+-----+----+----. -         ,    ,EXLM , AT  ,HASH ,DLR ,            PERC,CIRC ,AMPR ,ASTR ,    ,    , -  //|----+----+-----+-----+-----+----|           |----+-----+-----+-----+----+----| -         , 1  ,LA(2),LG(3),LC(4), 5  ,             6  ,RS(7),RG(8),RA(9), 0  ,    , -  //|----+----+-----+-----+-----+----|           |----+-----+-----+-----+----+----| -     PSCR,    ,HOME ,PGDN ,PGUP ,END ,            LEFT,DOWN , UP  ,RGHT ,    ,    , -  //|----+----+-----+-----+-----+----+----. ,----+----+-----+-----+-----+----+----| -         ,    ,     ,     ,     ,    ,WIN ,   NO ,    ,     ,     ,     ,    , -  //`----+----+-----+-----+-----+----+----/ \----+----+-----+-----+-----+----+----' +  [L_EDVORAKJP_RAISE] = LAYOUT_wrapper( +  //,-----------------------------------------------------.                    ,-----------------------------------------------------. +      XXXXXXX, XXXXXXX,  __EDVORAKJP_SYMBOL_L__           ,                                __EDVORAKJP_SYMBOL_R__  , XXXXXXX, XXXXXXX, +  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +      XXXXXXX,           __EDVORAKJP_NUMBER_L__           ,                                __EDVORAKJP_NUMBER_R__           , XXXXXXX, +  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +      KC_PSCR, XXXXXXX,      __EDVORAKJP_PAGE__           ,                                __EDVORAKJP_CURSOR__    , XXXXXXX, XXXXXXX, +  //|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------| +                __KC_TRNS_x4__          , KC_TRNS, KC_TRNS,  KC_WIN,    XXXXXXX, KC_TRNS, KC_TRNS,          __KC_TRNS_x4__ +  //`--------------------------------------------------------------'  `--------------------------------------------------------------'    )  }; +// clang-format on diff --git a/keyboards/helix/rev2/keymaps/edvorakjp/keymap_5rows.c b/keyboards/helix/rev2/keymaps/edvorakjp/keymap_5rows.c index 642ba8c635..6f2a4d371a 100644 --- a/keyboards/helix/rev2/keymaps/edvorakjp/keymap_5rows.c +++ b/keyboards/helix/rev2/keymaps/edvorakjp/keymap_5rows.c @@ -1,47 +1,48 @@  #include "helix.h"  #include "keymap_xrows.h" +// clang-format off  const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -  [_EDVORAK] = LAYOUT_kc( -  //,----+----+-----+-----+-----+----.           ,----+-----+-----+-----+----+----. -     ESC ,EXLM, AT  ,HASH , DLR ,PERC,            CIRC,AMPR ,ASTR ,LPRN ,RPRN,BSPC, -  //|----+----+-----+-----+-----+----|           |----+-----+-----+-----+----+----| -     GRV ,QUOT,COMM , DOT ,  Y  , Q  ,             F  ,  G  ,  R  ,  W  , P  ,BSLS, -  //|----+----+-----+-----+-----+----|           |----+-----+-----+-----+----+----| -     EQL , A  ,LA(O),LG(E),LC(I), U  ,             D  ,RS(T),RG(N),RA(S), M  ,MINS, -  //|----+----+-----+-----+-----+----+----. ,----+----+-----+-----+-----+----+----| -     TAB ,SCLN,  X  ,  C  ,  V  , Z  , NO ,   NO , H  ,  J  ,  K  ,  L  , B  ,SLSH, -  //|----+----+-----+-----+-----+----+----| |----+----+-----+-----+-----+----+----| -     HOME,PGDN,PGUP , END ,TMB1 ,TMB2,TMB3,  TMB4,TMB5,TMB6 ,LEFT ,DOWN , UP ,RGHT -  //`----+----+-----+-----+-----+----+----/ \----+----+-----+-----+-----+----+----' +  [L_EDVORAKJP_BASE] = LAYOUT_wrapper( +  //,-----------------------------------------------------.                    ,-----------------------------------------------------. +       KC_F13,  KC_F14,  KC_F15,  KC_F16,  KC_F17,  KC_F18,                       KC_F19,  KC_F20,  KC_F21,  KC_F22,  KC_F23,  KC_F24, +  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +       KC_GRV,            __EDVORAKJP_BASE_L1__           ,                                __EDVORAKJP_BASE_R1__            , KC_BSLS, +  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +       KC_EQL,            __EDVORAKJP_BASE_L2__           ,                                __EDVORAKJP_BASE_R2__            , KC_MINS, +  //|--------+--------+--------+--------+--------+--------+--------.  ,--------+--------+--------+--------+--------+--------+--------| +       KC_ESC,            __EDVORAKJP_BASE_L3__           , XXXXXXX,    XXXXXXX,           __EDVORAKJP_BASE_R3__            , KC_SLSH, +  //|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------| +             __EDVORAKJP_PAGE__         ,  LA_TAB,  LS_SPC,LOWER_TD,   RAISE_TD, RC_BSPC,  RG_ENT,        __EDVORAKJP_CURSOR__ +  //`--------------------------------------------------------------'  `--------------------------------------------------------------'    ), -  [_LOWER] = LAYOUT_kc( -  //,----+----+------+------+------+----.           ,----+------+------+-------+----+----. -     PSCR,    ,      ,      ,      ,    ,                ,      ,      ,       ,    ,    , -  //|----+----+------+------+------+----|           |----+------+------+-------+----+----| -         ,    , LCBR , LBRC , LPRN ,    ,                , RPRN , RBRC , RCBR  ,    ,    , -  //|----+----+------+------+------+----|           |----+------+------+-------+----+----| -      F1 , F2 ,LA(F3),LG(F4),LC(F5), F6 ,             F7 ,RS(F8),RG(F9),RA(F10),F11 ,F12 , -  //|----+----+------+------+------+----+----. ,----+----+------+------+-------+----+----| -         ,    , HOME , PGDN , PGUP ,END ,    ,      ,LEFT, DOWN ,  UP  , RGHT  ,    ,    , -  //|----+----+------+------+------+----+----| |----+----+------+------+-------+----+----| -         ,    ,      ,      ,      ,    , NO ,  MAC ,TMB7,      ,      ,       ,    , -  //`----+----+------+------+------+----+----/ \----+----+------+------+-------+----+----' +  [L_EDVORAKJP_LOWER] = LAYOUT_wrapper( +  //,-----------------------------------------------------.                    ,-----------------------------------------------------. +                                 __KC_TRNS_x6__           ,                                __KC_TRNS_x6__                            , +  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +      XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_L__  , XXXXXXX,                      XXXXXXX,  __EDVORAKJP_BRACKET_R__ , XXXXXXX, XXXXXXX, +  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +                       __EDVORAKJP_FUNCTION_L__           ,                                __EDVORAKJP_FUNCTION_R__                  , +  //|--------+--------+--------+--------+--------+--------+--------.  ,--------+--------+--------+--------+--------+--------+--------| +      KC_PSCR, XXXXXXX,      __EDVORAKJP_PAGE__           , KC_TRNS,    KC_TRNS,           __EDVORAKJP_CURSOR__    , XXXXXXX, XXXXXXX, +  //|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------| +                __KC_TRNS_x4__          , KC_TRNS, KC_TRNS, XXXXXXX,     KC_MAC,  RC_DEL, KC_TRNS,          __KC_TRNS_x4__ +  //`--------------------------------------------------------------'  `--------------------------------------------------------------'    ), -  [_RAISE] = LAYOUT_kc( -  //,----+----+-----+-----+-----+----.           ,----+-----+-----+-----+----+----. -     PSCR,    ,     ,     ,     ,    ,                ,     ,     ,     ,    ,    , -  //|----+----+-----+-----+-----+----|           |----+-----+-----+-----+----+----| -         ,    ,EXLM , AT  ,HASH ,DLR ,            PERC,CIRC ,AMPR ,ASTR ,    ,    , -  //|----+----+-----+-----+-----+----|           |----+-----+-----+-----+----+----| -         , 1  ,LA(2),LG(3),LC(4), 5  ,             6  ,RS(7),RG(8),RA(9), 0  ,    , -  //|----+----+-----+-----+-----+----+----. ,----+----+-----+-----+-----+----+----| -         ,    ,HOME ,PGDN ,PGUP ,END ,    ,      ,LEFT,DOWN , UP  ,RGHT ,    ,    , -  //|----+----+-----+-----+-----+----+----| |----+----+-----+-----+-----+----+----| -         ,    ,     ,     ,     ,    ,WIN ,   NO ,    ,     ,     ,     ,    , -  //`----+----+-----+-----+-----+----+----/ \----+----+-----+-----+-----+----+----' +  [L_EDVORAKJP_RAISE] = LAYOUT_wrapper( +  //,-----------------------------------------------------.                    ,-----------------------------------------------------. +                                 __KC_TRNS_x6__           ,                                __KC_TRNS_x6__                            , +  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +      XXXXXXX, XXXXXXX,  __EDVORAKJP_SYMBOL_L__           ,                                __EDVORAKJP_SYMBOL_R__  , XXXXXXX, XXXXXXX, +  //|--------+--------+--------+--------+--------+--------|                    |--------+--------+--------+--------+--------+--------| +      XXXXXXX,           __EDVORAKJP_NUMBER_L__           ,                                __EDVORAKJP_NUMBER_R__           , XXXXXXX, +  //|--------+--------+--------+--------+--------+--------+--------.  ,--------+--------+--------+--------+--------+--------+--------| +      KC_PSCR, XXXXXXX,      __EDVORAKJP_PAGE__           , KC_TRNS,    KC_TRNS,           __EDVORAKJP_CURSOR__    , XXXXXXX, XXXXXXX, +  //|--------+--------+--------+--------+--------+--------+--------|  |--------+--------+--------+--------+--------+--------+--------| +                __KC_TRNS_x4__          , KC_TRNS, KC_TRNS,  KC_WIN,    XXXXXXX, KC_TRNS, KC_TRNS,          __KC_TRNS_x4__ +  //`--------------------------------------------------------------'  `--------------------------------------------------------------'    )  }; +// clang-format on diff --git a/keyboards/helix/rev2/keymaps/edvorakjp/keymap_xrows.h b/keyboards/helix/rev2/keymaps/edvorakjp/keymap_xrows.h index d9561d0b70..aae83fc7a8 100644 --- a/keyboards/helix/rev2/keymaps/edvorakjp/keymap_xrows.h +++ b/keyboards/helix/rev2/keymaps/edvorakjp/keymap_xrows.h @@ -1,5 +1,4 @@ -#ifndef KEYMAP_XROWS_H -#define KEYMAP_XROWS_H +#pragma once  #include "edvorakjp.h"  /* @@ -8,14 +7,7 @@   * };   */ -#define KC_ KC_TRNS +#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) -#define KC_TMB1 KC_LA(TAB) -#define KC_TMB2 KC_LS(SPC) -#define KC_TMB3 TD(TD_LOWER) // act as LOWER when hold, as KC_LANG2(=English) when tapped -#define KC_TMB4 TD(TD_RAISE) // act as RAISE when hold, as KC_LANG1(=Japanese) when tapped -#define KC_TMB5 KC_RC(BSPC) -#define KC_TMB6 KC_RG(ENT) -#define KC_TMB7 KC_RC(DEL) - -#endif +#define __KC_TRNS_x4__ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +#define __KC_TRNS_x6__ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS diff --git a/keyboards/helix/rev2/keymaps/edvorakjp/oled.c b/keyboards/helix/rev2/keymaps/edvorakjp/oled.c index b931b72b7c..4bbab1dc4b 100644 --- a/keyboards/helix/rev2/keymaps/edvorakjp/oled.c +++ b/keyboards/helix/rev2/keymaps/edvorakjp/oled.c @@ -1,72 +1,68 @@ +#include <stdio.h>  #include <string.h>  #include "oled.h" -static void render_logo(struct CharacterMatrix *matrix) { +#ifdef OLED_DRIVER_ENABLE +void render_host_led_state(void) { +    char    led_state_str[24]; +    uint8_t leds = host_keyboard_leds(); -  static char logo[] = { -    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); -} +    bool is_num_lock_enabled    = leds & (1 << USB_LED_NUM_LOCK); +    bool is_caps_lock_enabled   = leds & (1 << USB_LED_CAPS_LOCK); +    bool is_scroll_lock_enabled = leds & (1 << USB_LED_SCROLL_LOCK); -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; -  } +    snprintf(led_state_str, sizeof(led_state_str), "NL:%s CL:%s SL:%s", is_num_lock_enabled ? "on" : "- ", is_caps_lock_enabled ? "on" : "- ", is_scroll_lock_enabled ? "on" : "- "); +    oled_write(led_state_str, false);  } -void render_status(struct CharacterMatrix *matrix) { - -  // Render to mode icon -  static char logo[][2][3] = {{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}}; -  int mode_number = get_enable_kc_lang() ? 0 : 1; -  matrix_write(matrix, logo[mode_number][0]); -  matrix_write(matrix, "\n"); -  matrix_write(matrix, logo[mode_number][1]); +void render_layer_state(void) { +    char layer_name[17]; +    oled_write_P(PSTR("Layer: "), false); -  // Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below -  char buf[40]; -  snprintf(buf,sizeof(buf), "Undef-%ld", layer_state); -  matrix_write_P(matrix, PSTR("\nLayer: ")); -  switch (biton32(layer_state)) { -    case L_BASE: -      matrix_write_P(matrix, PSTR("Default")); -      break; -    case _RAISE: -      matrix_write_P(matrix, PSTR("Raise")); -      break; -    case _LOWER: -      matrix_write_P(matrix, PSTR("Lower")); -      break; -    default: -      matrix_write(matrix, buf); -  } +    switch (biton32(layer_state)) { +        case L_EDVORAKJP_BASE: +            oled_write_ln_P(PSTR("Default"), false); +            break; +        case L_EDVORAKJP_LOWER: +            oled_write_ln_P(PSTR("Lower"), false); +            break; +        case L_EDVORAKJP_RAISE: +            oled_write_ln_P(PSTR("Raise"), false); +            break; +        default: +            snprintf(layer_name, sizeof(layer_name), "Undef-%ld", layer_state); +            oled_write_ln(layer_name, false); +    } +} -  // Host Keyboard LED Status -  char led[40]; -  snprintf(led, sizeof(led), "\n%s %s %s", -      (host_keyboard_leds() & (1<<USB_LED_NUM_LOCK)) ? "NMLK" : "    ", -      (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) ? "CAPS" : "    ", -      (host_keyboard_leds() & (1<<USB_LED_SCROLL_LOCK)) ? "SCLK" : "    "); -  matrix_write(matrix, led); +void render_logo(void) { +    static const char helix_logo[] PROGMEM = {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}; +    oled_write_P(helix_logo, false);  } -void iota_gfx_task_user(void) { -  struct CharacterMatrix matrix; +void render_mode_icon(bool is_windows) { +    static const char logo[][2][3] = { +        {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, +        {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}, +    }; +    static char mode_icon[10]; -#if DEBUG_TO_SCREEN -  if (debug_enable) { return; } -#endif +    snprintf(mode_icon, sizeof(mode_icon), "%s\n%s ", logo[is_windows][0], logo[is_windows][1]); +    oled_write(mode_icon, false); +} + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { +    // flips the display 180 degrees if offhand +    return is_keyboard_left() ? rotation : rotation ^ OLED_ROTATION_180; +} -  matrix_clear(&matrix); -  if (is_master) { -    render_status(&matrix); -  } else { -    render_logo(&matrix); -  } -  matrix_update(&display, &matrix); +void oled_task_user(void) { +    if (is_keyboard_left()) { +        render_mode_icon(!get_enable_kc_lang()); +        render_layer_state(); +        render_host_led_state(); +    } else { +        render_logo(); +    }  } +#endif  // OLED_DRIVER_ENABLE diff --git a/keyboards/helix/rev2/keymaps/edvorakjp/oled.h b/keyboards/helix/rev2/keymaps/edvorakjp/oled.h index 421de2d817..994dcb5f54 100644 --- a/keyboards/helix/rev2/keymaps/edvorakjp/oled.h +++ b/keyboards/helix/rev2/keymaps/edvorakjp/oled.h @@ -1,19 +1,12 @@ -#ifndef OLED_USER_H -#define OLED_USER_H +#pragma once -//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h -#include "ssd1306.h"  #include "edvorakjp.h" -//assign the right code to your layers for OLED display -#define L_BASE 0 - -extern uint8_t is_master;  extern bool japanese_mode; -void matrix_update(struct CharacterMatrix *dest, -                   const struct CharacterMatrix *source); -void render_status(struct CharacterMatrix *matrix); -void iota_gfx_task_user(void); - -#endif // OLED_CONFIG_USER_H +void            render_host_led_state(void); +void            render_layer_state(void); +void            render_logo(void); +void            render_mode_icon(bool is_windows); +oled_rotation_t oled_init_user(oled_rotation_t rotation); +void            oled_task_user(void); diff --git a/keyboards/helix/rev2/keymaps/edvorakjp/rules.mk b/keyboards/helix/rev2/keymaps/edvorakjp/rules.mk index 18bef6bf71..59b7acad5b 100644 --- a/keyboards/helix/rev2/keymaps/edvorakjp/rules.mk +++ b/keyboards/helix/rev2/keymaps/edvorakjp/rules.mk @@ -18,6 +18,7 @@ TAP_DANCE_ENABLE = yes  # LED_UNDERGLOW_ENABLE = no   # LED underglow (Enable WS2812 RGB underlight.)  # LED_ANIMATIONS = yes        # LED animations  # IOS_DEVICE_ENABLE = no      # connect to IOS device (iPad,iPhone) +OLED_SELECT = core  # convert Helix-specific options (that represent combinations of standard options)  #   into QMK standard options. diff --git a/keyboards/keebio/iris/keymaps/edvorakjp/config.h b/keyboards/keebio/iris/keymaps/edvorakjp/config.h index 954d0d3b99..f296e29769 100644 --- a/keyboards/keebio/iris/keymaps/edvorakjp/config.h +++ b/keyboards/keebio/iris/keymaps/edvorakjp/config.h @@ -1,5 +1,4 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H +#pragma once  /* Use I2C or Serial, not both */  #define USE_SERIAL @@ -22,5 +21,3 @@  #define RGBLIGHT_HUE_STEP 10  #define RGBLIGHT_SAT_STEP 8  #define RGBLIGHT_VAL_STEP 8 - -#endif // CONFIG_USER_H diff --git a/keyboards/keebio/iris/keymaps/edvorakjp/keymap.c b/keyboards/keebio/iris/keymaps/edvorakjp/keymap.c index be287390dd..0c0fc5a746 100644 --- a/keyboards/keebio/iris/keymaps/edvorakjp/keymap.c +++ b/keyboards/keebio/iris/keymaps/edvorakjp/keymap.c @@ -7,79 +7,72 @@   * };   */ -#define KC_ KC_TRNS - -#define KC_TMB1 KC_LA(TAB) -#define KC_TMB2 KC_LS(SPC) -#define KC_TMB3 TD(TD_LOWER) // act as LOWER when hold, as KC_LANG2(=English) when tapped -#define KC_TMB4 TD(TD_RAISE) // act as RAISE when hold, as KC_LANG1(=Japanese) when tapped -#define KC_TMB5 KC_RC(BSPC) -#define KC_TMB6 KC_RG(ENT) -#define KC_TMB7 KC_RC(DEL) +#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) +#define __KC_TRNS_x6__ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +// clang-format off  const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -  [_EDVORAK] = LAYOUT_kc( -  //,----+----+-----+-----+-----+----.           ,----+-----+-----+-----+----+----. -     GRV ,EXLM, AT  ,HASH , DLR ,PERC,            CIRC,AMPR ,ASTR ,LPRN ,RPRN,BSPC, -  //|----+----+-----+-----+-----+----|           |----+-----+-----+-----+----+----| -     TAB ,QUOT,COMM , DOT ,  Y  , Q  ,             F  ,  G  ,  R  ,  W  , P  ,BSLS, -  //|----+----+-----+-----+-----+----|           |----+-----+-----+-----+----+----| -     EQL , A  ,LA(O),LG(E),LC(I), U  ,             D  ,RS(T),RG(N),RA(S), M  ,MINS, -  //|----+----+-----+-----+-----+----+----. ,----+----+-----+-----+-----+----+----| -     ESC ,SCLN,  X  ,  C  ,  V  , Z  , NO ,   NO , H  ,  J  ,  K  ,  L  , B  ,SLSH, -  //`----+----+-----+-----+-----+----+----/ \----+----+-----+-----+-----+----+----' -                           TMB1,TMB2,TMB3,    TMB4,TMB5,TMB6 -  //                      `----+----+----'   `----+----+----' +  [L_EDVORAKJP_BASE] = LAYOUT_wrapper( +  //┌────────┬────────┬────────┬────────┬────────┬────────┐                          ┌────────┬────────┬────────┬────────┬────────┬────────┐ +       KC_F13,  KC_F14,  KC_F15,  KC_F16,  KC_F17,  KC_F18,                             KC_F19,  KC_F20,  KC_F21,  KC_F22,  KC_F23,  KC_F24, +  //├────────┼────────┼────────┼────────┼────────┼────────┤                          ├────────┼────────┼────────┼────────┼────────┼────────┤ +       KC_GRV,            __EDVORAKJP_BASE_L1__           ,                                      __EDVORAKJP_BASE_R1__            , KC_BSLS, +  //├────────┼────────┼────────┼────────┼────────┼────────┤                          ├────────┼────────┼────────┼────────┼────────┼────────┤ +       KC_EQL,            __EDVORAKJP_BASE_L2__           ,                                      __EDVORAKJP_BASE_R2__            , KC_MINS, +  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐        ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ +       KC_ESC,            __EDVORAKJP_BASE_L3__           , XXXXXXX,          XXXXXXX,           __EDVORAKJP_BASE_R3__            , KC_SLSH, +  //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘        └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ +                                      LA_TAB,  LS_SPC,LOWER_TD,                  RAISE_TD, RC_BSPC,  RG_ENT +                                // └────────┴────────┴────────┘                 └────────┴────────┴────────┘    ), -  [_LOWER] = LAYOUT_kc( -  //,----+----+------+------+------+----.           ,----+------+------+-------+----+----. -         ,    ,      ,      ,      ,    ,                ,      ,      ,       ,    ,    , -  //|----+----+------+------+------+----|           |----+------+------+-------+----+----| -         ,    , LCBR , LBRC , LPRN ,    ,                , RPRN , RBRC , RCBR  ,    ,    , -  //|----+----+------+------+------+----|           |----+------+------+-------+----+----| -      F1 , F2 ,LA(F3),LG(F4),LC(F5), F6 ,             F7 ,RS(F8),RG(F9),RA(F10),F11 ,F12 , -  //|----+----+------+------+------+----+----. ,----+----+------+------+-------+----+----| -     PSCR,    , HOME , PGDN , PGUP ,END ,    ,      ,LEFT, DOWN ,  UP  , RGHT  ,    ,    , -  //`----+----+------+------+------+----+----/ \----+----+------+------+-------+----+----' -                                  ,    , NO ,    MAC ,TMB7, -  //                         `----+----+----'   `----+----+----' +  [L_EDVORAKJP_LOWER] = LAYOUT_wrapper( +  //┌────────┬────────┬────────┬────────┬────────┬────────┐                          ┌────────┬────────┬────────┬────────┬────────┬────────┐ +                                 __KC_TRNS_x6__           ,                                      __KC_TRNS_x6__                            , +  //├────────┼────────┼────────┼────────┼────────┼────────┤                          ├────────┼────────┼────────┼────────┼────────┼────────┤ +      XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_L__  , XXXXXXX,                            XXXXXXX,  __EDVORAKJP_BRACKET_R__ , XXXXXXX, XXXXXXX, +  //├────────┼────────┼────────┼────────┼────────┼────────┤                          ├────────┼────────┼────────┼────────┼────────┼────────┤ +                       __EDVORAKJP_FUNCTION_L__           ,                                      __EDVORAKJP_FUNCTION_R__                  , +  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐        ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ +      KC_PSCR, XXXXXXX,      __EDVORAKJP_PAGE__           , XXXXXXX,          XXXXXXX,           __EDVORAKJP_CURSOR__    , XXXXXXX, XXXXXXX, +  //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘        └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ +                                     KC_TRNS, KC_TRNS, XXXXXXX,                    KC_MAC,  RC_DEL, KC_TRNS +                                // └────────┴────────┴────────┘                 └────────┴────────┴────────┘    ), -  [_RAISE] = LAYOUT_kc( -  //,----+----+-----+-----+-----+----.           ,----+-----+-----+-----+----+----. -         ,    ,     ,     ,     ,    ,                ,     ,     ,     ,    ,    , -  //|----+----+-----+-----+-----+----|           |----+-----+-----+-----+----+----| -         ,    ,EXLM , AT  ,HASH ,DLR ,            PERC,CIRC ,AMPR ,ASTR ,    ,    , -  //|----+----+-----+-----+-----+----|           |----+-----+-----+-----+----+----| -         , 1  ,LA(2),LG(3),LC(4), 5  ,             6  ,RS(7),RG(8),RA(9), 0  ,    , -  //|----+----+-----+-----+-----+----+----. ,----+----+-----+-----+-----+----+----| -     PSCR,    ,HOME ,PGDN ,PGUP ,END ,    ,      ,LEFT,DOWN , UP  ,RGHT ,    ,    , -  //`----+----+-----+-----+-----+----+----/ \----+----+-----+-----+-----+----+----' -                               ,    ,WIN ,     NO ,    , -  //                      `----+----+----'   `----+----+----' +  [L_EDVORAKJP_RAISE] = LAYOUT_wrapper( +  //┌────────┬────────┬────────┬────────┬────────┬────────┐                          ┌────────┬────────┬────────┬────────┬────────┬────────┐ +                                 __KC_TRNS_x6__           ,                                      __KC_TRNS_x6__                            , +  //├────────┼────────┼────────┼────────┼────────┼────────┤                          ├────────┼────────┼────────┼────────┼────────┼────────┤ +      XXXXXXX, XXXXXXX,  __EDVORAKJP_SYMBOL_L__           ,                                      __EDVORAKJP_SYMBOL_R__  , XXXXXXX, XXXXXXX, +  //├────────┼────────┼────────┼────────┼────────┼────────┤                          ├────────┼────────┼────────┼────────┼────────┼────────┤ +      XXXXXXX,           __EDVORAKJP_NUMBER_L__           ,                                      __EDVORAKJP_NUMBER_R__           , XXXXXXX, +  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐        ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ +      KC_PSCR, XXXXXXX,      __EDVORAKJP_PAGE__           , XXXXXXX,          XXXXXXX,           __EDVORAKJP_CURSOR__    , XXXXXXX, XXXXXXX, +  //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘        └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ +                                     KC_TRNS, KC_TRNS,  KC_WIN,                   XXXXXXX, KC_TRNS, KC_TRNS +                                // └────────┴────────┴────────┘                 └────────┴────────┴────────┘    )  }; +// clang-format on -void matrix_init_keymap() { -} +void matrix_init_keymap() {}  #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT  uint32_t layer_state_set_keymap(uint32_t state) { -  rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); -  switch (biton32(state)) { -    case _LOWER: -      rgblight_sethsv_noeeprom_red(); -      break; -    case _RAISE: -      rgblight_sethsv_noeeprom_blue(); -      break; -    default: // for any other layers, or the default layer -      rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT + 3); -      get_japanese_mode() ? rgblight_sethsv_noeeprom_red() : rgblight_sethsv_noeeprom_green(); -      break; -  } -  return state; +    rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); +    switch (biton32(state)) { +        case L_EDVORAKJP_LOWER: +            rgblight_sethsv_noeeprom_red(); +            break; +        case L_EDVORAKJP_RAISE: +            rgblight_sethsv_noeeprom_green(); +            break; +        default:  // for any other layers, or the default layer +            rgblight_mode(RGBLIGHT_MODE_STATIC_GRADIENT + 3); +            rgblight_sethsv_red(); +            break; +    } +    return state;  }  #endif diff --git a/users/edvorakjp/edvorakjp.c b/users/edvorakjp/edvorakjp.c index 892ce4be3b..d0cd106fff 100644 --- a/users/edvorakjp/edvorakjp.c +++ b/users/edvorakjp/edvorakjp.c @@ -1,32 +1,22 @@  #include "edvorakjp.h"  void matrix_init_user(void) { -  edvorakjp_status_init(); -  matrix_init_keymap(); +    edvorakjp_status_init(); +    matrix_init_keymap();  } -__attribute__ ((weak)) -void matrix_init_keymap() {} +__attribute__((weak)) void matrix_init_keymap() {}  uint32_t layer_state_set_user(uint32_t state) { -  state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); -  return layer_state_set_keymap(state); +    state = update_tri_layer_state(state, L_EDVORAKJP_LOWER, L_EDVORAKJP_RAISE, L_EDVORAKJP_ADJUST); +    return layer_state_set_keymap(state);  } -__attribute__ ((weak)) -uint32_t layer_state_set_keymap(uint32_t state) { -  return state; -} +__attribute__((weak)) uint32_t layer_state_set_keymap(uint32_t state) { return state; }  bool process_record_user(uint16_t keycode, keyrecord_t *record) { -  return process_record_keymap(keycode, record) &&\ -         process_record_edvorakjp_swap_scln(keycode, record) &&\ -         process_record_edvorakjp_config(keycode, record) &&\ -         process_record_layer(keycode, record) &&\ -         process_record_ime(keycode, record); +    bool process_record_user_result = process_record_keymap(keycode, record) && process_record_edvorakjp_swap_scln(keycode, record) && process_record_edvorakjp_config(keycode, record) && process_record_layer(keycode, record) && process_record_ime(keycode, record); +    return process_record_user_result;  } -__attribute__ ((weak)) -bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { -  return true; -} +__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; } diff --git a/users/edvorakjp/edvorakjp.h b/users/edvorakjp/edvorakjp.h index 688cdeffb3..5f20762c65 100644 --- a/users/edvorakjp/edvorakjp.h +++ b/users/edvorakjp/edvorakjp.h @@ -1,54 +1,76 @@ -#ifndef EDVORAKJP -#define EDVORAKJP +#pragma once  #include "quantum.h"  #include "action_layer.h"  #define EECONFIG_EDVORAK (uint8_t *)20 +// clang-format off +#define __EDVORAKJP_BASE_L1__               KC_QUOTE,      KC_COMMA,               KC_DOT,           KC_Y,          KC_Q +#define __EDVORAKJP_BASE_L2__                   KC_A,  LALT_T(KC_O),         LGUI_T(KC_E),   LCTL_T(KC_I),          KC_U +#define __EDVORAKJP_BASE_L3__              KC_SCOLON,          KC_X,                 KC_C,           KC_V,          KC_Z + +#define __EDVORAKJP_BASE_R1__                   KC_F,          KC_G,                 KC_R,           KC_W,          KC_P +#define __EDVORAKJP_BASE_R2__                   KC_D,  RSFT_T(KC_T),         RGUI_T(KC_N),   RALT_T(KC_S),          KC_M +#define __EDVORAKJP_BASE_R3__                   KC_H,          KC_J,                 KC_K,           KC_L,          KC_B + +#define __EDVORAKJP_NUMBER_L__                  KC_1,  LALT_T(KC_2),         LGUI_T(KC_3),   LCTL_T(KC_4),          KC_5 +#define __EDVORAKJP_NUMBER_R__                  KC_6,  RSFT_T(KC_7),         RGUI_T(KC_8),   RALT_T(KC_9),          KC_0 + +#define __EDVORAKJP_FUNCTION_L__               KC_F1,         KC_F2,        LALT_T(KC_F3),  LGUI_T(KC_F4), LCTL_T(KC_F5),  KC_F6 +#define __EDVORAKJP_FUNCTION_R__               KC_F7, RSFT_T(KC_F8),        RGUI_T(KC_F9), RALT_T(KC_F10),        KC_F11, KC_F12 + +#define __EDVORAKJP_SYMBOL_L__            KC_EXCLAIM,         KC_AT,              KC_HASH,      KC_DOLLAR +#define __EDVORAKJP_SYMBOL_R__            KC_PERCENT, KC_CIRCUMFLEX,         KC_AMPERSAND,    KC_ASTERISK + +#define __EDVORAKJP_BRACKET_L__  KC_LEFT_CURLY_BRACE,   KC_LBRACKET,        KC_LEFT_PAREN +#define __EDVORAKJP_BRACKET_R__       KC_RIGHT_PAREN,   KC_RBRACKET, KC_RIGHT_CURLY_BRACE + +#define __EDVORAKJP_PAGE__                   KC_HOME,     KC_PGDOWN,              KC_PGUP,         KC_END +#define __EDVORAKJP_CURSOR__                 KC_LEFT,       KC_DOWN,                KC_UP,       KC_RIGHT + +#define LA_TAB  LALT_T(KC_TAB) +#define LS_SPC  LSFT_T(KC_SPACE) +#define RC_BSPC RCTL_T(KC_BSPACE) +#define RC_DEL  RCTL_T(KC_DELETE) +#define RG_ENT  RGUI_T(KC_ENTER) + +#define LOWER_TD TD(TD_EDVORAKJP_LOWER) +#define RAISE_TD TD(TD_EDVORAKJP_RAISE) +// clang-format on +  extern keymap_config_t keymap_config;  enum edvorakjp_layers { -  _EDVORAK = 0, -  _LOWER, -  _RAISE, -  _ADJUST, -  _EXTRA, +    L_EDVORAKJP_BASE = 0, +    L_EDVORAKJP_LOWER, +    L_EDVORAKJP_RAISE, +    L_EDVORAKJP_ADJUST, +    L_EDVORAKJP_EXTRA,  };  enum edvorakjp_keycodes { -  EDVORAK = SAFE_RANGE, -  LOWER, -  RAISE, -  KC_MAC, -  KC_WIN, -  KC_JPN, -  KC_ENG, -  NEW_SAFE_RANGE +    KC_EDVORAKJP_LOWER = SAFE_RANGE, +    KC_EDVORAKJP_RAISE, +    KC_MAC, +    KC_WIN, +    KC_JPN, +    KC_ENG, +    NEW_SAFE_RANGE,  }; -#define KC_LC(k) LCTL_T(KC_##k) -#define KC_LS(k) LSFT_T(KC_##k) -#define KC_LA(k) LALT_T(KC_##k) -#define KC_LG(k) LGUI_T(KC_##k) -#define KC_RC(k) RCTL_T(KC_##k) -#define KC_RS(k) RSFT_T(KC_##k) -#define KC_RG(k) RGUI_T(KC_##k) -#define KC_RA(k) RALT_T(KC_##k) -  enum tap_dance_code { -  TD_LOWER = 0, -  TD_RAISE +    TD_EDVORAKJP_LOWER = 0, +    TD_EDVORAKJP_RAISE,  };  // base -void dvorakj_layer_off(void); -void matrix_init_user(void); -void matrix_init_keymap(void); +void     matrix_init_user(void); +void     matrix_init_keymap(void);  uint32_t layer_state_set_user(uint32_t state);  uint32_t layer_state_set_keymap(uint32_t state); -bool process_record_user(uint16_t keycode, keyrecord_t *record); -bool process_record_keymap(uint16_t keycode, keyrecord_t *record); +bool     process_record_user(uint16_t keycode, keyrecord_t *record); +bool     process_record_keymap(uint16_t keycode, keyrecord_t *record);  // status  void edvorakjp_status_init(void); @@ -66,5 +88,3 @@ bool process_record_edvorakjp_swap_scln(uint16_t keycode, keyrecord_t *record);  bool process_record_edvorakjp_config(uint16_t keycode, keyrecord_t *record);  bool process_record_layer(uint16_t keycode, keyrecord_t *record);  bool process_record_ime(uint16_t keycode, keyrecord_t *record); - -#endif // EDVORAKJP diff --git a/users/edvorakjp/edvorakjp_process_record.c b/users/edvorakjp/edvorakjp_process_record.c index ecc8db9363..ac821c3935 100644 --- a/users/edvorakjp/edvorakjp_process_record.c +++ b/users/edvorakjp/edvorakjp_process_record.c @@ -9,81 +9,81 @@ static uint16_t time_on_pressed;   */  bool process_record_edvorakjp_swap_scln(uint16_t keycode, keyrecord_t *record) {  #ifdef SWAP_SCLN -  static const uint8_t shift_bits = MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT); -  static uint8_t last_mods_status; -  if (keycode == KC_SCLN) { -    if (record->event.pressed) { -      last_mods_status = get_mods(); +    static const uint8_t shift_bits = MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT); +    static uint8_t       last_mods_status; +    if (keycode == KC_SCLN) { +        if (record->event.pressed) { +            last_mods_status = get_mods(); -      // invert shift_bits -      if (last_mods_status & shift_bits) { -        set_mods(last_mods_status & ~shift_bits); -      } else { -        set_mods(last_mods_status | MOD_BIT(KC_LSFT)); -      } -    } else { -      set_mods(last_mods_status); -      last_mods_status = 0; +            // invert shift_bits +            if (last_mods_status & shift_bits) { +                set_mods(last_mods_status & ~shift_bits); +            } else { +                set_mods(last_mods_status | MOD_BIT(KC_LSFT)); +            } +        } else { +            set_mods(last_mods_status); +            last_mods_status = 0; +        }      } -  }  #endif -  return true; +    return true;  }  bool process_record_edvorakjp_config(uint16_t keycode, keyrecord_t *record) { -  switch (keycode) { -    case KC_MAC: -    case KC_WIN: -      if (record->event.pressed) { -        set_enable_kc_lang(keycode == KC_MAC); -      } -      return false; -  } -  return true; +    switch (keycode) { +        case KC_MAC: +        case KC_WIN: +            if (record->event.pressed) { +                set_enable_kc_lang(keycode == KC_MAC); +            } +            return false; +    } +    return true;  }  bool process_record_layer(uint16_t keycode, keyrecord_t *record) {  #if TAP_DANCE_ENABLE != yes -  switch (keycode) { -    case LOWER: -      if (record->event.pressed) { -        layer_on(_LOWER); -        time_on_pressed = record->event.time; -      } else { -        layer_off(_LOWER); +    switch (keycode) { +        case KC_EDVORAKJP_LOWER: +            if (record->event.pressed) { +                layer_on(L_EDVORAKJP_LOWER); +                time_on_pressed = record->event.time; +            } else { +                layer_off(L_EDVORAKJP_LOWER); -        if (TIMER_DIFF_16(record->event.time, time_on_pressed) < TAPPING_TERM) { -          set_japanese_mode(false); -        } -        time_on_pressed = 0; -      } -      return false; -    case RAISE: -      if (record->event.pressed) { -        layer_on(_RAISE); -        time_on_pressed = record->event.time; -      } else { -        layer_off(_RAISE); +                if (TIMER_DIFF_16(record->event.time, time_on_pressed) < TAPPING_TERM) { +                    set_japanese_mode(false); +                } +                time_on_pressed = 0; +            } +            return false; +        case KC_EDVORAKJP_RAISE: +            if (record->event.pressed) { +                layer_on(L_EDVORAKJP_RAISE); +                time_on_pressed = record->event.time; +            } else { +                layer_off(L_EDVORAKJP_RAISE); -        if (TIMER_DIFF_16(record->event.time, time_on_pressed) < TAPPING_TERM) { -          set_japanese_mode(true); -        } -        time_on_pressed = 0; -      } -      return false; -  } +                if (TIMER_DIFF_16(record->event.time, time_on_pressed) < TAPPING_TERM) { +                    set_japanese_mode(true); +                } +                time_on_pressed = 0; +            } +            return false; +    }  #endif -  return true; +    return true;  }  bool process_record_ime(uint16_t keycode, keyrecord_t *record) { -  switch (keycode) { -    case KC_JPN: -    case KC_ENG: -      if (record->event.pressed) { -        set_japanese_mode(keycode == KC_JPN); -      } -      return false; -  } -  return true; +    switch (keycode) { +        case KC_JPN: +        case KC_ENG: +            if (record->event.pressed) { +                set_japanese_mode(keycode == KC_JPN); +            } +            return false; +    } +    return true;  } diff --git a/users/edvorakjp/edvorakjp_status.c b/users/edvorakjp/edvorakjp_status.c index 128fc3bd28..c8a06c2255 100644 --- a/users/edvorakjp/edvorakjp_status.c +++ b/users/edvorakjp/edvorakjp_status.c @@ -2,63 +2,55 @@  #include "edvorakjp.h"  typedef union { -  uint8_t raw; -  struct { -    bool enable_kc_lang;  // for macOS -  }; +    uint8_t raw; +    struct { +        bool enable_kc_lang;  // for macOS +    };  } edvorakjp_config_t;  static edvorakjp_config_t edvorakjp_config;  typedef struct { -  bool japanese_mode; +    bool japanese_mode;  } edvorakjp_state_t;  static edvorakjp_state_t edvorakjp_state;  /*   * private methods   */ -uint8_t eeconfig_read_edvorakjp(void) { -  return eeprom_read_byte(EECONFIG_EDVORAK); -} +uint8_t eeconfig_read_edvorakjp(void) { return eeprom_read_byte(EECONFIG_EDVORAK); } -void eeconfig_update_edvorakjp(uint8_t val) { -  eeprom_update_byte(EECONFIG_EDVORAK, val); -} +void eeconfig_update_edvorakjp(uint8_t val) { eeprom_update_byte(EECONFIG_EDVORAK, val); }  /*   * public methods   */  void edvorakjp_status_init(void) { -  edvorakjp_state.japanese_mode = false; -  edvorakjp_config.raw = eeconfig_read_edvorakjp(); +    edvorakjp_state.japanese_mode = false; +    edvorakjp_config.raw          = eeconfig_read_edvorakjp();  } -bool get_enable_kc_lang(void) { -  return edvorakjp_config.enable_kc_lang; -} +bool get_enable_kc_lang(void) { return edvorakjp_config.enable_kc_lang; }  void set_enable_kc_lang(bool new_state) { -  edvorakjp_config.enable_kc_lang = new_state; -  eeconfig_update_edvorakjp(edvorakjp_config.raw); +    edvorakjp_config.enable_kc_lang = new_state; +    eeconfig_update_edvorakjp(edvorakjp_config.raw);  } -bool get_japanese_mode(void) { -  return edvorakjp_state.japanese_mode; -} +bool get_japanese_mode(void) { return edvorakjp_state.japanese_mode; }  void set_japanese_mode(bool new_state) { -  edvorakjp_state.japanese_mode = new_state; -  if (edvorakjp_state.japanese_mode) { -    if (edvorakjp_config.enable_kc_lang) { -      SEND_STRING(SS_TAP(X_LANG1)); -    } else { -      SEND_STRING(SS_LALT("`")); -    } -  } else { -    if (edvorakjp_config.enable_kc_lang) { -      SEND_STRING(SS_TAP(X_LANG2)); +    edvorakjp_state.japanese_mode = new_state; +    if (edvorakjp_state.japanese_mode) { +        if (edvorakjp_config.enable_kc_lang) { +            SEND_STRING(SS_TAP(X_LANG1)); +        } else { +            SEND_STRING(SS_LALT("`")); +        }      } else { -      SEND_STRING(SS_LALT("`")); +        if (edvorakjp_config.enable_kc_lang) { +            SEND_STRING(SS_TAP(X_LANG2)); +        } else { +            SEND_STRING(SS_LALT("`")); +        }      } -  }  } diff --git a/users/edvorakjp/edvorakjp_tap_dance.c b/users/edvorakjp/edvorakjp_tap_dance.c index d5369f9266..cee10de693 100644 --- a/users/edvorakjp/edvorakjp_tap_dance.c +++ b/users/edvorakjp/edvorakjp_tap_dance.c @@ -2,72 +2,68 @@  #include "process_keycode/process_tap_dance.h"  enum tap_state { -  NONE = 0, -  SINGLE_TAP = 1, -  DOUBLE_TAP = 2, -  HOLD +    NONE       = 0, +    SINGLE_TAP = 1, +    DOUBLE_TAP = 2, +    HOLD,  };  typedef struct { -  uint8_t lower; -  uint8_t raise; +    uint8_t lower; +    uint8_t raise;  } td_status_t;  static td_status_t td_status = {NONE, NONE}; -int cur_dance(qk_tap_dance_state_t *state) { -  if (state->interrupted || !state->pressed) { -    return state->count == 1 ? SINGLE_TAP : DOUBLE_TAP; -  } else { -    return HOLD; -  } +uint8_t cur_dance(qk_tap_dance_state_t *state) { +    if (state->interrupted || !state->pressed) { +        return state->count == 1 ? SINGLE_TAP : DOUBLE_TAP; +    } else { +        return HOLD; +    }  }  void td_lower_finished(qk_tap_dance_state_t *state, void *user_data) { -  td_status.lower = cur_dance(state); -  switch(td_status.lower) { -    case SINGLE_TAP: -      set_japanese_mode(false); -      break; -    case DOUBLE_TAP: -      set_japanese_mode(false); -      register_code(KC_ESC); -      break; -    case HOLD: -      break; -  } -  layer_on(_LOWER); +    td_status.lower = cur_dance(state); +    switch (td_status.lower) { +        case SINGLE_TAP: +            set_japanese_mode(false); +            break; +        case DOUBLE_TAP: +            set_japanese_mode(false); +            register_code(KC_ESC); +            break; +    } +    layer_on(L_EDVORAKJP_LOWER);  }  void td_lower_reset(qk_tap_dance_state_t *state, void *user_data) { -  if (td_status.lower == DOUBLE_TAP) { -    unregister_code(KC_ESC); -  } -  layer_off(_LOWER); -  td_status.lower = NONE; +    switch (td_status.lower) { +        case DOUBLE_TAP: +            unregister_code(KC_ESC); +            break; +    } +    layer_off(L_EDVORAKJP_LOWER); +    td_status.lower = NONE;  }  void td_raise_finished(qk_tap_dance_state_t *state, void *user_data) { -  td_status.raise = cur_dance(state); -  switch(td_status.raise) { -    case DOUBLE_TAP: -      // same as single -    case SINGLE_TAP: -      set_japanese_mode(true); -      break; -    case HOLD: -      break; -  } -  layer_on(_RAISE); +    td_status.raise = cur_dance(state); +    switch (td_status.raise) { +        case DOUBLE_TAP: +            // same as single +        case SINGLE_TAP: +            set_japanese_mode(true); +            break; +    } +    layer_on(L_EDVORAKJP_RAISE);  }  void td_raise_reset(qk_tap_dance_state_t *state, void *user_data) { -  layer_off(_RAISE); -  td_status.raise = NONE; +    layer_off(L_EDVORAKJP_RAISE); +    td_status.raise = NONE;  }  qk_tap_dance_action_t tap_dance_actions[] = { -  [TD_LOWER] = -    ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, td_lower_finished, td_lower_reset, 100), -  [TD_RAISE] = -    ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, td_raise_finished, td_raise_reset, 100) +    [TD_EDVORAKJP_LOWER] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, td_lower_finished, td_lower_reset, 150), +    [TD_EDVORAKJP_RAISE] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, td_raise_finished, td_raise_reset, 150),  }; | 
