Last active
March 19, 2017 09:18
-
-
Save d-yoshi/baf7ab6a2390c32735d2f041bc28e3ac to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#define MOD_LCTL 0x1 | |
#define MOD_LGUI 0x2 | |
#define MOD_LSFT 0x4 | |
#define MOD_LALT 0x8 | |
static uint16_t mod_state = 0; | |
// {mod_state, remap_src, remap_dest} | |
const uint16_t key_combo[][3] = { | |
{(MOD_LCTL|MOD_LGUI), KC_H, KC_LEFT}, | |
{(MOD_LCTL|MOD_LGUI), KC_J, KC_DOWN}, | |
{(MOD_LCTL|MOD_LGUI), KC_K, KC_UP}, | |
{(MOD_LCTL|MOD_LGUI), KC_L, KC_RGHT} | |
}; | |
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |
/* amazing your code */ | |
if (keycode == KC_LCTL) { | |
if (record->event.pressed) { | |
mod_state |= MOD_LCTL; | |
} else { | |
mod_state &= ~(MOD_LCTL); | |
} | |
} | |
if (keycode == KC_LGUI) { | |
if (record->event.pressed) { | |
mod_state |= MOD_LGUI; | |
} else { | |
mod_state &= ~(MOD_LGUI); | |
} | |
} | |
if (keycode == KC_LSFT) { | |
if (record->event.pressed) { | |
mod_state |= MOD_LSFT; | |
} else { | |
mod_state &= ~(MOD_LSFT); | |
} | |
} | |
if (keycode == KC_LALT) { | |
if (record->event.pressed) { | |
mod_state |= MOD_LALT; | |
} else { | |
mod_state &= ~(MOD_LALT); | |
} | |
} | |
for(int i = 0; i < sizeof(key_combo) / sizeof(key_combo[0]); i++) { | |
if (mod_state == key_combo[i][0]) { | |
if(keycode == key_combo[i][1]) { | |
if (record->event.pressed) { | |
clear_mods(); | |
register_code(key_combo[i][2]); | |
} else { | |
unregister_code(key_combo[i][2]); | |
} | |
return false; | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment