|
@@ -140,7 +140,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
};
|
|
};
|
|
|
|
|
|
const uint16_t PROGMEM fn_actions[] = {
|
|
const uint16_t PROGMEM fn_actions[] = {
|
|
- [1] = ACTION_LAYER_TAP_TOGGLE(SYMB)
|
|
+ [1] = ACTION_LAYER_TAP_TOGGLE(SYMB),
|
|
|
|
+ [2] = ACTION_MACRO_TAP(0),
|
|
|
|
+ [3] = ACTION_MACRO_TAP(1)
|
|
};
|
|
};
|
|
|
|
|
|
static uint16_t key_timer;
|
|
static uint16_t key_timer;
|
|
@@ -148,33 +150,46 @@ static uint16_t key_timer;
|
|
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
|
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
|
{
|
|
{
|
|
switch(id) {
|
|
switch(id) {
|
|
- case 0: {
|
|
+ case 0:
|
|
- if (record->event.pressed) {
|
|
+ if (record->event.pressed) {
|
|
- key_timer = timer_read();
|
|
+ register_mods(MOD_BIT(KC_LSFT));
|
|
- register_code(KC_LSFT);
|
|
+ if (record->tap.count && !record->tap.interrupted) {
|
|
- } else {
|
|
+ register_code(KC_9);
|
|
- if (timer_elapsed(key_timer) < 70) {
|
|
+ }
|
|
- register_code(KC_9);
|
|
+ else {
|
|
- unregister_code(KC_9);
|
|
+ record->tap.count = 0;
|
|
- }
|
|
+ }
|
|
- unregister_code(KC_LSFT);
|
|
+ }
|
|
- }
|
|
+ else {
|
|
- break;
|
|
+ if (record->tap.count) {
|
|
- }
|
|
+ unregister_code(KC_9);
|
|
- case 1: {
|
|
+ }
|
|
- if (record->event.pressed) {
|
|
+ else {
|
|
- key_timer = timer_read();
|
|
+ }
|
|
- register_code(KC_RSFT);
|
|
+ unregister_mods(MOD_BIT(KC_LSFT));
|
|
- } else {
|
|
+ }
|
|
- if (timer_elapsed(key_timer) < 70) {
|
|
+ break;
|
|
- register_code(KC_0);
|
|
+
|
|
- unregister_code(KC_0);
|
|
+ case 1:
|
|
- }
|
|
+ if (record->event.pressed) {
|
|
- unregister_code(KC_RSFT);
|
|
+ register_mods(MOD_BIT(KC_LSFT));
|
|
- }
|
|
+ if (record->tap.count && !record->tap.interrupted) {
|
|
- break;
|
|
+ register_code(KC_0);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ record->tap.count = 0;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ if (record->tap.count) {
|
|
|
|
+ unregister_code(KC_0);
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ }
|
|
|
|
+ unregister_mods(MOD_BIT(KC_LSFT));
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
}
|
|
}
|
|
- }
|
|
|
|
return MACRO_NONE;
|
|
return MACRO_NONE;
|
|
};
|
|
};
|
|
|
|
|