diff options
| author | Konstantin Lepa <const.lepa+github@gmail.com> | 2018-07-17 18:16:01 +0300 |
|---|---|---|
| committer | Drashna Jaelre <drashna@live.com> | 2018-07-17 08:16:01 -0700 |
| commit | 85d2d4fee5c6801b5f492bedc55b54f57e75c594 (patch) | |
| tree | c1c48fa446472ddfec6b62a32056dcad74256fed | |
| parent | a57c9648e9712208e816bcc5b412c53882d9d48f (diff) | |
| download | qmk_firmware-85d2d4fee5c6801b5f492bedc55b54f57e75c594.tar.gz qmk_firmware-85d2d4fee5c6801b5f492bedc55b54f57e75c594.zip | |
Keymap: Change Satan layout lepa (rev 2) (#3427)
* Change Satan keymap lepa (rev 2)
* Remove unused code from satan keymap lepa.
| -rw-r--r-- | keyboards/satan/keymaps/lepa/keymap.c | 113 | ||||
| -rw-r--r-- | keyboards/satan/keymaps/lepa/readme.md | 11 |
2 files changed, 80 insertions, 44 deletions
diff --git a/keyboards/satan/keymaps/lepa/keymap.c b/keyboards/satan/keymaps/lepa/keymap.c index 080068427..85fdb743d 100644 --- a/keyboards/satan/keymaps/lepa/keymap.c +++ b/keyboards/satan/keymaps/lepa/keymap.c | |||
| @@ -1,29 +1,36 @@ | |||
| 1 | #include QMK_KEYBOARD_H | 1 | #include QMK_KEYBOARD_H |
| 2 | 2 | ||
| 3 | #define MY_LESC LT(1, KC_ESC) | 3 | #define MY_ESC LT(1, KC_ESC) |
| 4 | #define MY_RENT LT(1, KC_ENT) | 4 | #define MY_ENT LT(1, KC_ENT) |
| 5 | #define MY_LCA TD(TD_LCA) | 5 | #define MY_APP LT(2, KC_APP) |
| 6 | #define MY_RCA TD(TD_RCA) | 6 | |
| 7 | #define MY_LGA TD(TD_LGA) | 7 | #define MY_LCA TD(TD_LCTL_ALT) |
| 8 | #define MY_RGA TD(TD_RGA) | 8 | #define MY_RCA TD(TD_RCTL_ALT) |
| 9 | #define MY_APP TD(TD_APP_HYPR) | 9 | #define MY_LGA TD(TD_LGUI_ALT) |
| 10 | #define MY_RGA TD(TD_RGUI_ALT) | ||
| 11 | #define MY_LCG TD(TD_LCTL_GUI) | ||
| 12 | #define MY_RCG TD(TD_RCTL_GUI) | ||
| 13 | #define MY_LSH TD(TD_LSFT_HPR) | ||
| 14 | #define MY_RSH TD(TD_RSFT_HPR) | ||
| 10 | 15 | ||
| 11 | enum { | 16 | enum { |
| 12 | TD_LCA, | 17 | TD_LCTL_ALT, |
| 13 | TD_RCA, | 18 | TD_RCTL_ALT, |
| 14 | TD_LGA, | 19 | TD_LGUI_ALT, |
| 15 | TD_RGA, | 20 | TD_RGUI_ALT, |
| 16 | TD_APP_HYPR | 21 | TD_LCTL_GUI, |
| 22 | TD_RCTL_GUI, | ||
| 23 | TD_LSFT_HPR, | ||
| 24 | TD_RSFT_HPR | ||
| 17 | }; | 25 | }; |
| 18 | 26 | ||
| 19 | |||
| 20 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 27 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
| 21 | LAYOUT_60_ansi( | 28 | LAYOUT_60_ansi( |
| 22 | KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, | 29 | KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, |
| 23 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, | 30 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, |
| 24 | MY_LESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, MY_RENT, | 31 | MY_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, MY_ENT, |
| 25 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, | 32 | MY_LSH, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MY_RSH, |
| 26 | MY_LGA, KC_LALT, MY_LCA, KC_SPC, MY_RCA, KC_RALT, MY_APP, MY_RGA), | 33 | MY_LGA, MY_LCG, MY_LCA, KC_SPC, MY_RCA, MY_RCG, MY_APP, MY_RGA), |
| 27 | 34 | ||
| 28 | LAYOUT_60_ansi( | 35 | LAYOUT_60_ansi( |
| 29 | KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, | 36 | KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, |
| @@ -31,6 +38,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 31 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, | 38 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, |
| 32 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 39 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 33 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), | 40 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), |
| 41 | |||
| 42 | LAYOUT_60_ansi( | ||
| 43 | 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, | ||
| 44 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 45 | KC_TRNS, KC_TRNS, KC_TRNS, DEBUG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 46 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 47 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), | ||
| 34 | }; | 48 | }; |
| 35 | 49 | ||
| 36 | enum { | 50 | enum { |
| @@ -66,7 +80,8 @@ int cur_dance(qk_tap_dance_state_t *state) { | |||
| 66 | return UNKNOWN_TAP; | 80 | return UNKNOWN_TAP; |
| 67 | } | 81 | } |
| 68 | 82 | ||
| 69 | #define my_dance_combo(N, K1, K2) \ | 83 | #define my_dance_combo(N, K0, REGFN, UNREGFN) my_dance_combo_expanded(N, K0, REGFN, UNREGFN) |
| 84 | #define my_dance_combo_expanded(N, K0, REGFN, UNREGFN) \ | ||
| 70 | static tap N ## _state = { \ | 85 | static tap N ## _state = { \ |
| 71 | .is_press_action = true, \ | 86 | .is_press_action = true, \ |
| 72 | .state = 0 \ | 87 | .state = 0 \ |
| @@ -75,45 +90,57 @@ static tap N ## _state = { \ | |||
| 75 | void N ## _finished(qk_tap_dance_state_t *state, void *user_data) { \ | 90 | void N ## _finished(qk_tap_dance_state_t *state, void *user_data) { \ |
| 76 | N ## _state.state = cur_dance(state); \ | 91 | N ## _state.state = cur_dance(state); \ |
| 77 | switch (N ## _state.state) { \ | 92 | switch (N ## _state.state) { \ |
| 78 | case SINGLE_TAP: \ | 93 | case SINGLE_TAP: case SINGLE_HOLD: \ |
| 79 | case SINGLE_HOLD: \ | 94 | register_code(K0); \ |
| 80 | register_code(K1); \ | ||
| 81 | break; \ | 95 | break; \ |
| 82 | case DOUBLE_TAP: \ | 96 | case DOUBLE_TAP: case DOUBLE_SINGLE_TAP: case DOUBLE_HOLD: \ |
| 83 | case DOUBLE_SINGLE_TAP: \ | 97 | register_code(K0); \ |
| 84 | case DOUBLE_HOLD: \ | 98 | REGFN; \ |
| 85 | register_code(K1); \ | ||
| 86 | register_code(K2); \ | ||
| 87 | break; \ | 99 | break; \ |
| 88 | } \ | 100 | } \ |
| 89 | } \ | 101 | } \ |
| 90 | \ | 102 | \ |
| 91 | void N ## _reset(qk_tap_dance_state_t *state, void *user_data) { \ | 103 | void N ## _reset(qk_tap_dance_state_t *state, void *user_data) { \ |
| 92 | switch (N ## _state.state) { \ | 104 | switch (N ## _state.state) { \ |
| 93 | case SINGLE_TAP: \ | 105 | case SINGLE_TAP: case SINGLE_HOLD: \ |
| 94 | case SINGLE_HOLD: \ | 106 | unregister_code(K0); \ |
| 95 | unregister_code(K1); \ | ||
| 96 | break; \ | 107 | break; \ |
| 97 | case DOUBLE_TAP: \ | 108 | case DOUBLE_TAP: case DOUBLE_SINGLE_TAP: case DOUBLE_HOLD: \ |
| 98 | case DOUBLE_SINGLE_TAP: \ | 109 | UNREGFN; \ |
| 99 | case DOUBLE_HOLD: \ | 110 | unregister_code(K0); \ |
| 100 | unregister_code(K2); \ | ||
| 101 | unregister_code(K1); \ | ||
| 102 | break; \ | 111 | break; \ |
| 103 | } \ | 112 | } \ |
| 104 | N ## _state.state = 0; \ | 113 | N ## _state.state = 0; \ |
| 105 | } | 114 | } |
| 106 | 115 | ||
| 107 | my_dance_combo(lca, KC_LCTL, KC_LALT) | 116 | #define my_dance_reg_code_1(K1) register_code(K1) |
| 108 | my_dance_combo(rca, KC_RCTL, KC_RALT) | 117 | #define my_dance_unreg_code_1(K1) unregister_code(K1) |
| 109 | my_dance_combo(lga, KC_LGUI, KC_LALT) | 118 | #define my_dance_combo_1(N, K0, K1) \ |
| 110 | my_dance_combo(rga, KC_RGUI, KC_RALT) | 119 | my_dance_combo(N, K0, my_dance_reg_code_1(K1), my_dance_unreg_code_1(K1)) |
| 111 | 120 | ||
| 112 | qk_tap_dance_action_t tap_dance_actions[] = { | 121 | #define my_dance_reg_code_3(K1, K2, K3) \ |
| 113 | [TD_LCA] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lca_finished, lca_reset), | 122 | do { register_code(K1); register_code(K2); register_code(K3); } while (0) |
| 114 | [TD_RCA] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rca_finished, rca_reset), | 123 | #define my_dance_unreg_code_3(K1, K2, K3) \ |
| 115 | [TD_LGA] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lga_finished, lga_reset), | 124 | do { unregister_code(K3); unregister_code(K2); unregister_code(K1); } while (0) |
| 116 | [TD_RGA] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rga_finished, rga_reset), | 125 | #define my_dance_combo_3(N, K0, K1, K2, K3) \ |
| 126 | my_dance_combo(N, K0, my_dance_reg_code_3(K1, K2, K3), my_dance_unreg_code_3(K1, K2, K3)) | ||
| 117 | 127 | ||
| 118 | [TD_APP_HYPR] = ACTION_TAP_DANCE_DOUBLE(KC_APP, KC_HYPR) | 128 | my_dance_combo_1(lca, KC_LCTL, KC_LALT) |
| 129 | my_dance_combo_1(rca, KC_RCTL, KC_RALT) | ||
| 130 | my_dance_combo_1(lga, KC_LGUI, KC_LALT) | ||
| 131 | my_dance_combo_1(rga, KC_RGUI, KC_RALT) | ||
| 132 | my_dance_combo_1(lcg, KC_LCTL, KC_LGUI) | ||
| 133 | my_dance_combo_1(rcg, KC_RCTL, KC_RGUI) | ||
| 134 | my_dance_combo_3(lsh, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI) | ||
| 135 | my_dance_combo_3(rsh, KC_RSFT, KC_RCTL, KC_RALT, KC_RGUI) | ||
| 136 | |||
| 137 | qk_tap_dance_action_t tap_dance_actions[] = { | ||
| 138 | [TD_LCTL_ALT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lca_finished, lca_reset), | ||
| 139 | [TD_RCTL_ALT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rca_finished, rca_reset), | ||
| 140 | [TD_LGUI_ALT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lga_finished, lga_reset), | ||
| 141 | [TD_RGUI_ALT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rga_finished, rga_reset), | ||
| 142 | [TD_LCTL_GUI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lcg_finished, lcg_reset), | ||
| 143 | [TD_RCTL_GUI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rcg_finished, rcg_reset), | ||
| 144 | [TD_LSFT_HPR] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lsh_finished, lsh_reset), | ||
| 145 | [TD_RSFT_HPR] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rsh_finished, rsh_reset) | ||
| 119 | }; | 146 | }; |
diff --git a/keyboards/satan/keymaps/lepa/readme.md b/keyboards/satan/keymaps/lepa/readme.md index 99ee135f0..a53693d03 100644 --- a/keyboards/satan/keymaps/lepa/readme.md +++ b/keyboards/satan/keymaps/lepa/readme.md | |||
| @@ -1,4 +1,13 @@ | |||
| 1 | # Satan GH60 ANSI Layout that uses tap dance | 1 | # Satan GH60 ANSI Layout that uses tap dance |
| 2 | 2 | ||
| 3 |  | 3 |  |
| 4 | |||
| 5 | Notes: | ||
| 6 | - Enter and Esc keys activate layer Fn1 when held, and work as usual when tapped. | ||
| 7 | - Menu key activates layer Fn2 when held, and works as usual when tapped. | ||
| 8 | - For the next keys a first key is used when held, and a second one is used when tapped 2 times: | ||
| 9 | - Shift and Hyper; | ||
| 10 | - Win and Win+Alt; | ||
| 11 | - Ctrl and Ctrl+Alt; | ||
| 12 | - Alt and Win+Ctrl. | ||
| 4 | 13 | ||
