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), }; |