diff --git a/.vscode/settings.json b/.vscode/settings.json index 12c73c8..b2590f5 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -19,7 +19,8 @@ "cstdint": "c", "chrono": "c", "typeindex": "c", - "typeinfo": "c" + "typeinfo": "c", + "unordered_map": "c" }, "C_Cpp.errorSquiggles": "disabled", } diff --git a/keyboards/betalupi_voyager/keymaps/default/keymap.c b/keyboards/betalupi_voyager/keymaps/default/keymap.c index ac30ba3..13c6c51 100644 --- a/keyboards/betalupi_voyager/keymaps/default/keymap.c +++ b/keyboards/betalupi_voyager/keymaps/default/keymap.c @@ -3,7 +3,6 @@ #include "keymap_russian.h" #include "keymap_us_international.h" - // Values that should not be saved to git. // There should be a`secrets.h` in this directory // with the following contents: @@ -14,7 +13,8 @@ #include "secrets.h" // Macro keycodes -enum custom_keycodes { +enum custom_keycodes +{ M_SHUTDOWN = BETA_SAFE_RANGE, // Macros @@ -44,22 +44,19 @@ enum custom_keycodes { }; // LED colors -#define LC_OFF { 0, 0, 0} -#define LC_GRN { 85, 203, 158} -#define LC_YLW { 32, 176, 255} +#define LC_OFF {0, 0, 0} +#define LC_GRN {85, 203, 158} +#define LC_YLW {32, 176, 255} #define LC_PNK {243, 222, 234} #define LC_CYN {134, 255, 213} -#define LC_ORN { 14, 255, 255} -#define LC_WHT { 0, 0, 150} -#define LC_RED { 0, 255, 145} +#define LC_ORN {14, 255, 255} +#define LC_WHT {0, 0, 150} +#define LC_RED {0, 255, 145} #define LC_BLU {153, 255, 153} -#define LC_RUB { 0, 0, 165} +#define LC_RUB {0, 0, 165} #define LC_RUG {153, 255, 153} -#define LC_RUK { 0, 255, 145} - - - +#define LC_RUK {0, 255, 145} #ifdef ENABLE_HID_SPELLCHECK #include "features/hid_spellcheck.h" @@ -73,7 +70,7 @@ enum custom_keycodes { #include "features/leader/beta_leader.h" #endif -//#include "features/beta_rawhid.h" +// #include "features/beta_rawhid.h" /* // Send a special character. @@ -99,18 +96,20 @@ combo_t key_combos[] = { COMBO(combo6, LCTL(KC_DELETE)), }; - -void matrix_scan_user(void) { - #ifdef ENABLE_BETA_LEADER - beta_qk_leader_check(); - #endif +void matrix_scan_user(void) +{ +#ifdef ENABLE_BETA_LEADER + beta_qk_leader_check(); +#endif } // Must be done early, layers need this enum -enum tap_dance_codes { +enum tap_dance_codes +{ TD_WMLAYOUT, TD_SCREENSHOT, TD_ESCAPE, + TD_NOGAME }; // Include all other parts of configuration @@ -118,27 +117,32 @@ enum tap_dance_codes { #include "parts/leader.c" #include "parts/tapdance.c" -bool combo_should_trigger(uint16_t combo_index, combo_t *combo, uint16_t keycode, keyrecord_t *record) { +bool combo_should_trigger(uint16_t combo_index, combo_t *combo, uint16_t keycode, keyrecord_t *record) +{ if ( false //|| layer_state_is(LAYER_SIMPLEARROWS) - ) { + ) + { return false; } /* Disable combo `SOME_COMBO` on layer `_LAYER_A` */ if ( combo_index == 0 || - combo_index == 1 - ) { - if (layer_state_is(LAYER_RUSSIAN)) { + combo_index == 1) + { + if (layer_state_is(LAYER_RUSSIAN)) + { return false; } - } else if ( + } + else if ( combo_index == 2 || - combo_index == 3 - ) { - if (!layer_state_is(LAYER_RUSSIAN)) { + combo_index == 3) + { + if (!layer_state_is(LAYER_RUSSIAN)) + { return false; } } @@ -149,71 +153,86 @@ bool combo_should_trigger(uint16_t combo_index, combo_t *combo, uint16_t keycode // Process macros. // Return FALSE to halt key processing, // Return TRUE to allow QMK to handle keypress. -bool process_record_user(uint16_t keycode, keyrecord_t *record) { +bool process_record_user(uint16_t keycode, keyrecord_t *record) +{ - #ifdef ENABLE_BETA_LEADER - if (!beta_process_leader(keycode, record)) { return false; } - #endif +#ifdef ENABLE_BETA_LEADER + if (!beta_process_leader(keycode, record)) + { + return false; + } +#endif - #ifdef ENABLE_HID_SPELLCHECK - if (!process_spellcheck(keycode, record)) { return false; } - #endif +#ifdef ENABLE_HID_SPELLCHECK + if (!process_spellcheck(keycode, record)) + { + return false; + } +#endif - #ifdef ENABLE_AUTOCORRECT - if (!process_autocorrection(keycode, record)) { return false; } - #endif +#ifdef ENABLE_AUTOCORRECT + if (!process_autocorrection(keycode, record)) + { + return false; + } +#endif // Handle special chars - //if (record->event.pressed) { + // if (record->event.pressed) { // if (!send_special_character(keycode)) { return false; } //} // Handle macros - switch (keycode) { - case M_RESETWM: - if (record->event.pressed) { - SEND_STRING(SS_LCTL(SS_LGUI(SS_LSFT(SS_TAP(X_R))))); - } - return false; + switch (keycode) + { + case M_RESETWM: + if (record->event.pressed) + { + SEND_STRING(SS_LCTL(SS_LGUI(SS_LSFT(SS_TAP(X_R))))); + } + return false; - // Workaround for one-shot LGUI key. - // Using just LGUI with LAYER_DESKTOP as OSL - // does not allow you to hold lgui. This does. - case M_GUI: - if (record->event.pressed) { - register_code16(KC_LGUI); - } else { - unregister_code16(KC_LGUI); - } - return false; + // Workaround for one-shot LGUI key. + // Using just LGUI with LAYER_DESKTOP as OSL + // does not allow you to hold lgui. This does. + case M_GUI: + if (record->event.pressed) + { + register_code16(KC_LGUI); + } + else + { + unregister_code16(KC_LGUI); + } + return false; - case M_SHUTDOWN: - if (record->event.pressed) { - SEND_STRING(SS_LGUI(SS_TAP(X_P)) SS_DELAY(100) SS_TAP(X_Y) SS_DELAY(100) SS_TAP(X_ENTER)); - } - return false; -/* - case M_RU_CTRL: - if (record->event.pressed) { - layer_move(LAYER_MAIN); - register_code16(KC_LCTL); - } else { - unregister_code16(KC_LCTL); - layer_move(LAYER_RUSSIAN); - } - return false; + case M_SHUTDOWN: + if (record->event.pressed) + { + SEND_STRING(SS_LGUI(SS_TAP(X_P)) SS_DELAY(100) SS_TAP(X_Y) SS_DELAY(100) SS_TAP(X_ENTER)); + } + return false; + /* + case M_RU_CTRL: + if (record->event.pressed) { + layer_move(LAYER_MAIN); + register_code16(KC_LCTL); + } else { + unregister_code16(KC_LCTL); + layer_move(LAYER_RUSSIAN); + } + return false; - case M_RU_ALT: - if (record->event.pressed) { - layer_move(LAYER_MAIN); - register_code16(KC_LALT); - } else { - unregister_code16(KC_LALT); - layer_move(LAYER_RUSSIAN); - } - return false;*/ + case M_RU_ALT: + if (record->event.pressed) { + layer_move(LAYER_MAIN); + register_code16(KC_LALT); + } else { + unregister_code16(KC_LALT); + layer_move(LAYER_RUSSIAN); + } + return false;*/ } - return true; } \ No newline at end of file diff --git a/keyboards/betalupi_voyager/keymaps/default/layers/definitions/ctrl.h b/keyboards/betalupi_voyager/keymaps/default/layers/definitions/ctrl.h index 9ccb4ff..5a07d46 100644 --- a/keyboards/betalupi_voyager/keymaps/default/layers/definitions/ctrl.h +++ b/keyboards/betalupi_voyager/keymaps/default/layers/definitions/ctrl.h @@ -11,8 +11,8 @@ #define BETA_LAYER_CONTEXT_DATA LAYOUT_voyager(\ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\ - KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_V, KC_TRNS,\ + KC_TRNS, LGUI(KC_A), LGUI(KC_S), LGUI(KC_D), KC_TRNS, KC_TRNS,\ + KC_NO, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), KC_TRNS,\ KC_TRNS, KC_TRNS, \ \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,\ diff --git a/keyboards/betalupi_voyager/keymaps/default/layers/definitions/game.h b/keyboards/betalupi_voyager/keymaps/default/layers/definitions/game.h new file mode 100644 index 0000000..e20019b --- /dev/null +++ b/keyboards/betalupi_voyager/keymaps/default/layers/definitions/game.h @@ -0,0 +1,47 @@ +// See symbols.h for docs + +#define BETA_LAYER_MAGIC_MACRO BETA_LAYER(GAME) + +#ifdef BETA_LAYER_LAYOUTS +#define BETA_LAYER_CONTEXT_DATA LAYOUT_EN +BETA_LAYER_MAGIC_MACRO +#endif + +#ifdef BETA_LAYER_KEYS +#define BETA_LAYER_CONTEXT_DATA LAYOUT_voyager( \ + KC_ESCAPE, KC_1, KC_2, KC_3, KC_4, KC_5, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, \ + KC_DELETE, KC_A, KC_S, KC_D, KC_F, KC_G, \ + KC_LCTL, KC_Z, KC_X, KC_C, MO(LAYER_ARROWS), TD(TD_NOGAME), \ + \ + KC_SPACE, KC_BSPC, \ + \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO) + +BETA_LAYER_MAGIC_MACRO +#endif + +#ifdef BETA_LAYER_LEDS +#define BETA_LAYER_CONTEXT_DATA { \ + LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, \ + LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, \ + LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, \ + LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_RED, \ + LC_OFF, LC_OFF, \ + LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, \ + LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, \ + LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, \ + LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, \ + LC_OFF, LC_OFF} + +// This is important. +// The magic macro MUST be here, AFTER the RGBMatrix data. +BETA_LAYER_MAGIC_MACRO +#endif + +#undef BETA_LAYER_CONTEXT_DATA +#undef BETA_LAYER_MAGIC_MACRO \ No newline at end of file diff --git a/keyboards/betalupi_voyager/keymaps/default/layers/definitions/include.c b/keyboards/betalupi_voyager/keymaps/default/layers/definitions/include.c index efadf76..77cb494 100644 --- a/keyboards/betalupi_voyager/keymaps/default/layers/definitions/include.c +++ b/keyboards/betalupi_voyager/keymaps/default/layers/definitions/include.c @@ -3,22 +3,19 @@ // // Learned that the hard way. - // First layer will be "default" layer in QMK. // Second will have index 1, etc. See layers.h - // These MUST be first. // (For example, LAYER_ARROWS overlays on top of LAYER_MAIN) #include "main.h" +#include "game.h" #include "ctrl.h" #include "russian.h" - #include "numbers.h" // Must be under symbols and arrows - // The order of the layers below doesn't matter, // since they avoid transparent keys. #include "symbols.h" @@ -26,4 +23,3 @@ #include "macros.h" #include "fkeys.h" #include "keyboard.h" - diff --git a/keyboards/betalupi_voyager/keymaps/default/layers/definitions/macros.h b/keyboards/betalupi_voyager/keymaps/default/layers/definitions/macros.h index f99cfd3..a5b49a0 100644 --- a/keyboards/betalupi_voyager/keymaps/default/layers/definitions/macros.h +++ b/keyboards/betalupi_voyager/keymaps/default/layers/definitions/macros.h @@ -3,46 +3,42 @@ #define BETA_LAYER_MAGIC_MACRO BETA_LAYER(MACROS) #ifdef BETA_LAYER_LAYOUTS - #define BETA_LAYER_CONTEXT_DATA LAYOUT_EN - BETA_LAYER_MAGIC_MACRO +#define BETA_LAYER_CONTEXT_DATA LAYOUT_EN +BETA_LAYER_MAGIC_MACRO #endif #ifdef BETA_LAYER_KEYS - #define BETA_LAYER_CONTEXT_DATA LAYOUT_voyager(\ - TO(LAYER_MAIN), LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4), LGUI(KC_5),\ - KC_LGUI, KC_NO, TD(TD_SCREENSHOT), KC_NO, KC_NO, KC_NO,\ - KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, KC_NO, KC_NO, OSL(LAYER_FKEYS), KC_NO,\ - KC_NO, KC_MEDIA_PREV_TRACK, KC_NO, LGUI(LSFT(KC_C)), KC_NO, KC_NO,\ - LGUI(KC_ENTER), LGUI(KC_BSLS), \ - \ - M_SHUTDOWN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ - KC_NO, KC_NO, KC_NO, KC_NO, LGUI(KC_SPACE), TD(TD_WMLAYOUT), \ - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TT(LAYER_RUSSIAN), \ - LCTL(LGUI(LSFT(KC_R))), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ - KC_NO, KC_NO \ - ) +#define BETA_LAYER_CONTEXT_DATA LAYOUT_voyager( \ + TO(LAYER_MAIN), LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4), LGUI(KC_5), \ + KC_LGUI, KC_NO, TD(TD_SCREENSHOT), KC_NO, KC_NO, LGUI(KC_T), \ + KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, KC_NO, KC_NO, OSL(LAYER_FKEYS), KC_NO, \ + KC_NO, KC_MEDIA_PREV_TRACK, KC_NO, LGUI(KC_W), KC_NO, TO(LAYER_GAME), \ + LGUI(KC_ENTER), LGUI(KC_BSLS), \ + \ + M_SHUTDOWN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, LGUI(KC_SPACE), TD(TD_WMLAYOUT), \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TT(LAYER_RUSSIAN), \ + LCTL(LGUI(LSFT(KC_R))), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO) - BETA_LAYER_MAGIC_MACRO +BETA_LAYER_MAGIC_MACRO #endif - #ifdef BETA_LAYER_LEDS - #define BETA_LAYER_CONTEXT_DATA {\ - LC_RED, LC_PNK, LC_PNK, LC_PNK, LC_PNK, LC_PNK, \ - LC_CYN, LC_OFF, LC_CYN, LC_OFF, LC_OFF, LC_OFF, \ - LC_GRN, LC_GRN, LC_OFF, LC_OFF, LC_BLU, LC_OFF, \ - LC_OFF, LC_GRN, LC_OFF, LC_ORN, LC_OFF, LC_OFF, \ - LC_PNK, LC_PNK, \ - LC_RED, LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, \ - LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_RED, LC_RED, \ - LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_BLU, \ - LC_ORN, LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, \ - LC_OFF, LC_OFF \ - } +#define BETA_LAYER_CONTEXT_DATA { \ + LC_RED, LC_PNK, LC_PNK, LC_PNK, LC_PNK, LC_PNK, \ + LC_CYN, LC_OFF, LC_CYN, LC_OFF, LC_OFF, LC_OFF, \ + LC_GRN, LC_GRN, LC_OFF, LC_OFF, LC_BLU, LC_OFF, \ + LC_OFF, LC_GRN, LC_OFF, LC_ORN, LC_OFF, LC_RED, \ + LC_PNK, LC_PNK, \ + LC_RED, LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, \ + LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_RED, LC_RED, \ + LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_BLU, \ + LC_ORN, LC_OFF, LC_OFF, LC_OFF, LC_OFF, LC_OFF, \ + LC_OFF, LC_OFF} - BETA_LAYER_MAGIC_MACRO +BETA_LAYER_MAGIC_MACRO #endif - #undef BETA_LAYER_CONTEXT_DATA #undef BETA_LAYER_MAGIC_MACRO \ No newline at end of file diff --git a/keyboards/betalupi_voyager/keymaps/default/layers/definitions/main.h b/keyboards/betalupi_voyager/keymaps/default/layers/definitions/main.h index 550433e..2a3de0e 100644 --- a/keyboards/betalupi_voyager/keymaps/default/layers/definitions/main.h +++ b/keyboards/betalupi_voyager/keymaps/default/layers/definitions/main.h @@ -17,12 +17,12 @@ KC_ESCAPE, KC_1, KC_2, KC_3, KC_4, KC_5, \ OSL(LAYER_MACROS), KC_Q, KC_W, KC_E, KC_R, KC_T, \ KC_DELETE, MT(MOD_LALT, KC_A), KC_S, KC_D, KC_F, KC_G, \ - LM(MOD_LCTL, LAYER_CTRL), KC_Z, MT(MOD_LSFT, KC_X), KC_C, MO(LAYER_ARROWS), KC_B, \ + MO(LAYER_CTRL), KC_Z, MT(MOD_LSFT, KC_X), KC_C, MO(LAYER_ARROWS), KC_B, \ \ KC_SPACE, KC_BSPC, \ \ \ - KC_6, KC_7, KC_8, KC_9, KC_0, LGUI(KC_TAB), \ + KC_6, KC_7, KC_8, KC_9, KC_0, LGUI(KC_SPACE), \ KC_Y, KC_U, KC_I, KC_O, KC_NO, KC_NO, \ KC_H, KC_J, KC_K, MO(LAYER_SYMBOLS), KC_L, QK_LEAD, \ KC_N, KC_M, KC_P, KC_V, KC_NO, KC_NO, \ diff --git a/keyboards/betalupi_voyager/keymaps/default/parts/tapdance.c b/keyboards/betalupi_voyager/keymaps/default/parts/tapdance.c index e4d32b0..11e248a 100644 --- a/keyboards/betalupi_voyager/keymaps/default/parts/tapdance.c +++ b/keyboards/betalupi_voyager/keymaps/default/parts/tapdance.c @@ -1,21 +1,51 @@ -void td_screenshot(tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { +void td_screenshot(tap_dance_state_t *state, void *user_data) +{ + if (state->count == 1) + { tap_code16(KC_PSCR); - } else if (state->count == 2) { + } + else if (state->count == 2) + { tap_code16(LSFT(KC_PSCR)); - } else if (state->count == 3) { + } + else if (state->count == 3) + { tap_code16(LALT(KC_PSCR)); - } else { + } + else + { reset_tap_dance(state); } } -void td_wmlayout(tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { +void td_wmlayout(tap_dance_state_t *state, void *user_data) +{ + if (state->count == 1) + { tap_code16(LGUI(KC_COMMA)); - } else if (state->count == 2) { + } + else if (state->count == 2) + { tap_code16(LGUI(KC_DOT)); - } else { + } + else + { + reset_tap_dance(state); + } +} + +void td_nogame(tap_dance_state_t *state, void *user_data) +{ + if (state->count == 1) + { + tap_code16(KC_B); + } + else if (state->count == 2) + { + layer_move(LAYER_MAIN); + } + else + { reset_tap_dance(state); } } @@ -23,4 +53,5 @@ void td_wmlayout(tap_dance_state_t *state, void *user_data) { tap_dance_action_t tap_dance_actions[] = { [TD_WMLAYOUT] = ACTION_TAP_DANCE_FN(td_wmlayout), [TD_SCREENSHOT] = ACTION_TAP_DANCE_FN(td_screenshot), + [TD_NOGAME] = ACTION_TAP_DANCE_FN(td_nogame), };