Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove LAYOUT_kc macros from edvorakjp keymaps #12217

Merged
merged 12 commits into from
Apr 10, 2021
Merged
Prev Previous commit
Next Next commit
Run clang-format -style=file -i users/edvorakjp/*.{c,h}
  • Loading branch information
epaew committed Mar 26, 2021
commit 900744267cf18af6ec56da5d3bd12d35741bb57f
29 changes: 9 additions & 20 deletions users/edvorakjp/edvorakjp.c
Original file line number Diff line number Diff line change
@@ -1,32 +1,21 @@
#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, _LOWER, _RAISE, _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; }
42 changes: 21 additions & 21 deletions users/edvorakjp/edvorakjp.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,22 @@
extern keymap_config_t keymap_config;

enum edvorakjp_layers {
_EDVORAK = 0,
_LOWER,
_RAISE,
_ADJUST,
_EXTRA,
_EDVORAK = 0,
_LOWER,
_RAISE,
_ADJUST,
_EXTRA,
};

enum edvorakjp_keycodes {
EDVORAK = SAFE_RANGE,
LOWER,
RAISE,
KC_MAC,
KC_WIN,
KC_JPN,
KC_ENG,
NEW_SAFE_RANGE
EDVORAK = SAFE_RANGE,
LOWER,
RAISE,
KC_MAC,
KC_WIN,
KC_JPN,
KC_ENG,
NEW_SAFE_RANGE,
};

#define KC_LC(k) LCTL_T(KC_##k)
Expand All @@ -37,18 +37,18 @@ enum edvorakjp_keycodes {
#define KC_RA(k) RALT_T(KC_##k)

enum tap_dance_code {
TD_LOWER = 0,
TD_RAISE
TD_LOWER = 0,
TD_RAISE,
};

// base
void dvorakj_layer_off(void);
void matrix_init_user(void);
void matrix_init_keymap(void);
void dvorakj_layer_off(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);
Expand All @@ -67,4 +67,4 @@ 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
#endif // EDVORAKJP
122 changes: 61 additions & 61 deletions users/edvorakjp/edvorakjp_process_record.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 LOWER:
if (record->event.pressed) {
layer_on(_LOWER);
time_on_pressed = record->event.time;
} else {
layer_off(_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 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(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;
}
58 changes: 25 additions & 33 deletions users/edvorakjp/edvorakjp_status.c
Original file line number Diff line number Diff line change
Expand Up @@ -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("`"));
}
}
}
}
Loading