summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config.h2
-rw-r--r--keymap.c88
2 files changed, 80 insertions, 10 deletions
diff --git a/config.h b/config.h
index 2163a63..343e6a8 100644
--- a/config.h
+++ b/config.h
@@ -4,5 +4,5 @@
*/
#define ORYX_CONFIGURATOR
#define USB_SUSPEND_WAKEUP_DELAY 0
-#define FIRMWARE_VERSION u8"ZQbJz/Dppab"
+#define FIRMWARE_VERSION u8"aG9Gb/jzQy4"
#define RGB_MATRIX_STARTUP_SPD 60
diff --git a/keymap.c b/keymap.c
index 3d28918..d47aef3 100644
--- a/keymap.c
+++ b/keymap.c
@@ -60,6 +60,8 @@ enum tap_dance_codes {
DANCE_0,
DANCE_1,
DANCE_2,
+ DANCE_3,
+ DANCE_4,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -68,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRACKET, KC_RBRACKET, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH,
KC_ESCAPE, KC_A, KC_S, KC_D, KC_F, KC_G, TG(1), TG(1), KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOTE,
KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSHIFT,
- KC_BSPACE, WEBUSB_PAIR, KC_DELETE, KC_LEFT, KC_RIGHT, KC_HYPR, MT(MOD_LCTL, KC_ESCAPE),KC_UP, KC_DOWN, KC_MEH, KC_TRANSPARENT, TD(DANCE_1),
+ KC_BSPACE, WEBUSB_PAIR, KC_DELETE, KC_LEFT, KC_RIGHT, KC_HYPR, MT(MOD_LCTL, KC_ESCAPE),TD(DANCE_1), TD(DANCE_2), KC_MEH, KC_TRANSPARENT, TD(DANCE_3),
KC_LCTRL, KC_BSPACE, KC_LGUI, KC_LALT, KC_ENTER, MT(MOD_LCTL, KC_SPACE)
),
[1] = LAYOUT_moonlander(
@@ -92,7 +94,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT,
- KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_SPACE, KC_SPACE, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, TD(DANCE_2),
+ KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_SPACE, KC_SPACE, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, TD(DANCE_4),
KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT
),
};
@@ -187,7 +189,7 @@ enum {
MORE_TAPS
};
-static tap dance_state[3];
+static tap dance_state[5];
uint8_t dance_step(qk_tap_dance_state_t *state);
@@ -237,44 +239,112 @@ void dance_0_reset(qk_tap_dance_state_t *state, void *user_data) {
}
dance_state[0].step = 0;
}
+void on_dance_1(qk_tap_dance_state_t *state, void *user_data);
void dance_1_finished(qk_tap_dance_state_t *state, void *user_data);
void dance_1_reset(qk_tap_dance_state_t *state, void *user_data);
+void on_dance_1(qk_tap_dance_state_t *state, void *user_data) {
+ if(state->count == 3) {
+ tap_code16(KC_UP);
+ tap_code16(KC_UP);
+ tap_code16(KC_UP);
+ }
+ if(state->count > 3) {
+ tap_code16(KC_UP);
+ }
+}
+
void dance_1_finished(qk_tap_dance_state_t *state, void *user_data) {
dance_state[1].step = dance_step(state);
switch (dance_state[1].step) {
- case SINGLE_HOLD: layer_on(2); break;
- case DOUBLE_TAP: layer_move(3); break;
+ case SINGLE_TAP: register_code16(KC_UP); break;
+ case DOUBLE_TAP: register_code16(KC_PGUP); break;
+ case DOUBLE_SINGLE_TAP: tap_code16(KC_UP); register_code16(KC_UP);
}
}
void dance_1_reset(qk_tap_dance_state_t *state, void *user_data) {
wait_ms(10);
switch (dance_state[1].step) {
- case SINGLE_HOLD: layer_off(2); break;
+ case SINGLE_TAP: unregister_code16(KC_UP); break;
+ case DOUBLE_TAP: unregister_code16(KC_PGUP); break;
+ case DOUBLE_SINGLE_TAP: unregister_code16(KC_UP); break;
}
dance_state[1].step = 0;
}
+void on_dance_2(qk_tap_dance_state_t *state, void *user_data);
void dance_2_finished(qk_tap_dance_state_t *state, void *user_data);
void dance_2_reset(qk_tap_dance_state_t *state, void *user_data);
+void on_dance_2(qk_tap_dance_state_t *state, void *user_data) {
+ if(state->count == 3) {
+ tap_code16(KC_DOWN);
+ tap_code16(KC_DOWN);
+ tap_code16(KC_DOWN);
+ }
+ if(state->count > 3) {
+ tap_code16(KC_DOWN);
+ }
+}
+
void dance_2_finished(qk_tap_dance_state_t *state, void *user_data) {
dance_state[2].step = dance_step(state);
switch (dance_state[2].step) {
- case DOUBLE_TAP: layer_move(0); break;
+ case SINGLE_TAP: register_code16(KC_DOWN); break;
+ case DOUBLE_TAP: register_code16(KC_PGDOWN); break;
+ case DOUBLE_SINGLE_TAP: tap_code16(KC_DOWN); register_code16(KC_DOWN);
}
}
void dance_2_reset(qk_tap_dance_state_t *state, void *user_data) {
wait_ms(10);
switch (dance_state[2].step) {
+ case SINGLE_TAP: unregister_code16(KC_DOWN); break;
+ case DOUBLE_TAP: unregister_code16(KC_PGDOWN); break;
+ case DOUBLE_SINGLE_TAP: unregister_code16(KC_DOWN); break;
}
dance_state[2].step = 0;
}
+void dance_3_finished(qk_tap_dance_state_t *state, void *user_data);
+void dance_3_reset(qk_tap_dance_state_t *state, void *user_data);
+
+void dance_3_finished(qk_tap_dance_state_t *state, void *user_data) {
+ dance_state[3].step = dance_step(state);
+ switch (dance_state[3].step) {
+ case SINGLE_HOLD: layer_on(2); break;
+ case DOUBLE_TAP: layer_move(3); break;
+ }
+}
+
+void dance_3_reset(qk_tap_dance_state_t *state, void *user_data) {
+ wait_ms(10);
+ switch (dance_state[3].step) {
+ case SINGLE_HOLD: layer_off(2); break;
+ }
+ dance_state[3].step = 0;
+}
+void dance_4_finished(qk_tap_dance_state_t *state, void *user_data);
+void dance_4_reset(qk_tap_dance_state_t *state, void *user_data);
+
+void dance_4_finished(qk_tap_dance_state_t *state, void *user_data) {
+ dance_state[4].step = dance_step(state);
+ switch (dance_state[4].step) {
+ case DOUBLE_TAP: layer_move(0); break;
+ }
+}
+
+void dance_4_reset(qk_tap_dance_state_t *state, void *user_data) {
+ wait_ms(10);
+ switch (dance_state[4].step) {
+ }
+ dance_state[4].step = 0;
+}
qk_tap_dance_action_t tap_dance_actions[] = {
[DANCE_0] = ACTION_TAP_DANCE_FN_ADVANCED(on_dance_0, dance_0_finished, dance_0_reset),
- [DANCE_1] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_1_finished, dance_1_reset),
- [DANCE_2] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_2_finished, dance_2_reset),
+ [DANCE_1] = ACTION_TAP_DANCE_FN_ADVANCED(on_dance_1, dance_1_finished, dance_1_reset),
+ [DANCE_2] = ACTION_TAP_DANCE_FN_ADVANCED(on_dance_2, dance_2_finished, dance_2_reset),
+ [DANCE_3] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_3_finished, dance_3_reset),
+ [DANCE_4] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_4_finished, dance_4_reset),
};