diff options
| author | Benjamin Grosse <ste3ls@gmail.com> | 2020-10-29 09:26:15 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-29 01:26:15 -0700 |
| commit | db9204c7e1d1da9ba041aa34a50e92083d5726e9 (patch) | |
| tree | 6db387533aa60e402db334f8f999b45e8b96fc10 | |
| parent | 27b80468670d5895a8ccb2d9603ffae325fe900a (diff) | |
| download | qmk_firmware-db9204c7e1d1da9ba041aa34a50e92083d5726e9.tar.gz qmk_firmware-db9204c7e1d1da9ba041aa34a50e92083d5726e9.zip | |
[Keymap] add an autoclicker to my plaid keymap (#10743)
| -rw-r--r-- | keyboards/dm9records/plaid/keymaps/gipsy-king/keymap.c | 31 | ||||
| -rw-r--r-- | keyboards/dm9records/plaid/keymaps/gipsy-king/readme.md | 2 |
2 files changed, 31 insertions, 2 deletions
diff --git a/keyboards/dm9records/plaid/keymaps/gipsy-king/keymap.c b/keyboards/dm9records/plaid/keymaps/gipsy-king/keymap.c index c02c62244..0abd3f849 100644 --- a/keyboards/dm9records/plaid/keymaps/gipsy-king/keymap.c +++ b/keyboards/dm9records/plaid/keymaps/gipsy-king/keymap.c | |||
| @@ -15,6 +15,7 @@ | |||
| 15 | */ | 15 | */ |
| 16 | 16 | ||
| 17 | #include QMK_KEYBOARD_H | 17 | #include QMK_KEYBOARD_H |
| 18 | #include "mousekey.h" | ||
| 18 | 19 | ||
| 19 | 20 | ||
| 20 | enum plaid_layers { | 21 | enum plaid_layers { |
| @@ -25,9 +26,13 @@ enum plaid_layers { | |||
| 25 | }; | 26 | }; |
| 26 | 27 | ||
| 27 | enum plaid_keycodes { | 28 | enum plaid_keycodes { |
| 28 | QWERTY = SAFE_RANGE | 29 | AUTOCLICK = SAFE_RANGE |
| 29 | }; | 30 | }; |
| 30 | 31 | ||
| 32 | static bool autoclick = false; | ||
| 33 | static bool autoclick_state = false; | ||
| 34 | static uint16_t autoclick_timer = 0; | ||
| 35 | |||
| 31 | #define XMONAD LM(_XMONAD, MOD_LGUI) | 36 | #define XMONAD LM(_XMONAD, MOD_LGUI) |
| 32 | #define SPC_LWR LT(_LOWER, KC_SPACE) | 37 | #define SPC_LWR LT(_LOWER, KC_SPACE) |
| 33 | #define ENT_RSE LT(_RAISE, KC_ENT) | 38 | #define ENT_RSE LT(_RAISE, KC_ENT) |
| @@ -89,7 +94,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 89 | KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, | 94 | KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, |
| 90 | _______, _______, MU_MOD, AU_ON, AU_OFF, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, RESET, | 95 | _______, _______, MU_MOD, AU_ON, AU_OFF, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, RESET, |
| 91 | _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF,_______, _______, _______, | 96 | _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF,_______, _______, _______, |
| 92 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | 97 | _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, AUTOCLICK |
| 93 | ) | 98 | ) |
| 94 | }; | 99 | }; |
| 95 | 100 | ||
| @@ -167,6 +172,16 @@ void matrix_scan_user(void) { | |||
| 167 | break; | 172 | break; |
| 168 | } | 173 | } |
| 169 | } | 174 | } |
| 175 | if (autoclick && timer_elapsed(autoclick_timer) > (autoclick_state ? 20 : 100)) { | ||
| 176 | if (!autoclick_state) { | ||
| 177 | mousekey_on(KC_MS_BTN1); | ||
| 178 | } else { | ||
| 179 | mousekey_off(KC_MS_BTN1); | ||
| 180 | } | ||
| 181 | mousekey_send(); | ||
| 182 | autoclick_state = !autoclick_state; | ||
| 183 | autoclick_timer = timer_read(); | ||
| 184 | } | ||
| 170 | } | 185 | } |
| 171 | 186 | ||
| 172 | layer_state_t layer_state_set_user(layer_state_t state) { | 187 | layer_state_t layer_state_set_user(layer_state_t state) { |
| @@ -186,3 +201,15 @@ layer_state_t layer_state_set_user(layer_state_t state) { | |||
| 186 | } | 201 | } |
| 187 | return state; | 202 | return state; |
| 188 | } | 203 | } |
| 204 | |||
| 205 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 206 | switch (keycode) { | ||
| 207 | case AUTOCLICK: | ||
| 208 | if (record->event.pressed) { | ||
| 209 | autoclick = !autoclick; | ||
| 210 | autoclick_timer = timer_read(); | ||
| 211 | } | ||
| 212 | break; | ||
| 213 | } | ||
| 214 | return true; | ||
| 215 | }; | ||
diff --git a/keyboards/dm9records/plaid/keymaps/gipsy-king/readme.md b/keyboards/dm9records/plaid/keymaps/gipsy-king/readme.md index 1dc2bba12..999d92c84 100644 --- a/keyboards/dm9records/plaid/keymaps/gipsy-king/readme.md +++ b/keyboards/dm9records/plaid/keymaps/gipsy-king/readme.md | |||
| @@ -15,3 +15,5 @@ old machine. | |||
| 15 | 15 | ||
| 16 | When any layer is active, the LEDs are "startled". | 16 | When any layer is active, the LEDs are "startled". |
| 17 | 17 | ||
| 18 | There is an autoclicker for minecraft. | ||
| 19 | |||
