diff options
| author | milestogo <milestogo@users.noreply.github.com> | 2021-03-14 12:23:30 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-03-14 12:23:30 -0700 |
| commit | 7b7689d30796c977b95197091c16e8bb97000101 (patch) | |
| tree | dc81a91d109041e34a90940fdceaeede7d512e4f /users/miles2go/babblePaste.c | |
| parent | aa73411c14487465d7af9d9f1ca7cb5d157e9343 (diff) | |
| download | qmk_firmware-7b7689d30796c977b95197091c16e8bb97000101.tar.gz qmk_firmware-7b7689d30796c977b95197091c16e8bb97000101.zip | |
[Keymap] miles2go userspace update, add functions for babblepaste library, add prime_e keybard keymap (#9196)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Diffstat (limited to 'users/miles2go/babblePaste.c')
| -rw-r--r-- | users/miles2go/babblePaste.c | 130 |
1 files changed, 114 insertions, 16 deletions
diff --git a/users/miles2go/babblePaste.c b/users/miles2go/babblePaste.c index 2a32024cd..cd032882b 100644 --- a/users/miles2go/babblePaste.c +++ b/users/miles2go/babblePaste.c | |||
| @@ -12,13 +12,14 @@ and https://github.com/qmk/qmk_firmware/blob/master/keyboards/planck/keymaps/jee | |||
| 12 | #ifdef USE_BABBLEPASTE | 12 | #ifdef USE_BABBLEPASTE |
| 13 | # include "babblePaste.h" | 13 | # include "babblePaste.h" |
| 14 | 14 | ||
| 15 | // small function that we might also want to call from a keymap. | ||
| 16 | |||
| 17 | // GLOBAL variable to determine mode. Sets startup default if no eeppom | 15 | // GLOBAL variable to determine mode. Sets startup default if no eeppom |
| 18 | uint8_t babble_mode = 0; | 16 | uint8_t babble_mode = 0; |
| 19 | 17 | ||
| 20 | // function to tell the user that the mode has changed | 18 | // functions to tell the user that the mode has changed |
| 21 | __attribute__((weak)) void babble_led_user(void) {} | 19 | __attribute__((weak)) void babble_modeswitch_user(uint8_t mode) {} |
| 20 | __attribute__((weak)) void babble_modeswitch_kb(uint8_t mode) { babble_modeswitch_user( mode); } | ||
| 21 | |||
| 22 | |||
| 22 | 23 | ||
| 23 | void set_babble_mode(uint8_t id) { babble_mode = id; } | 24 | void set_babble_mode(uint8_t id) { babble_mode = id; } |
| 24 | 25 | ||
| @@ -27,6 +28,7 @@ void babble_mode_increment() { | |||
| 27 | if (babble_mode >= BABL_MODEMAX) { | 28 | if (babble_mode >= BABL_MODEMAX) { |
| 28 | babble_mode = 0; | 29 | babble_mode = 0; |
| 29 | } | 30 | } |
| 31 | babble_modeswitch_kb(babble_mode); | ||
| 30 | } | 32 | } |
| 31 | 33 | ||
| 32 | void babble_mode_decrement() { | 34 | void babble_mode_decrement() { |
| @@ -35,21 +37,97 @@ void babble_mode_decrement() { | |||
| 35 | } else { | 37 | } else { |
| 36 | babble_mode = BABL_MODEMAX - 1; | 38 | babble_mode = BABL_MODEMAX - 1; |
| 37 | } | 39 | } |
| 40 | babble_modeswitch_kb(babble_mode); | ||
| 38 | } | 41 | } |
| 39 | 42 | ||
| 40 | /* this function runs the appropriate babblepaste macro, given | 43 | /* this function runs the appropriate babblepaste macro, given |
| 41 | the global babble_mode and a keycode defined in the babble_keycodes enum. | 44 | the global babble_mode and a keycode defined in the babble_keycodes enum. |
| 42 | 45 | ||
| 43 | This could be made faster by splitting into two functions sorted by keycode range | 46 | This could be made faster by splitting into functions sorted by keycode range |
| 44 | But that makes for a *lot* of ifdefs. | 47 | But that makes for a *lot* of ifdefs. |
| 45 | */ | 48 | */ |
| 46 | bool babblePaste(uint16_t keycode) { | 49 | bool babblePaste(uint16_t keycode, bool is_pressed ) { |
| 47 | // handle the OS/mode switching first | 50 | // handle keys that have up & down behavior first, then OS/mode switching, then macros |
| 51 | |||
| 52 | // This is the key used for cut & paste (Propeller on Mac, Control elsewhere) | ||
| 53 | # ifdef BABL_MODSWAP | ||
| 54 | // WARNING, this assumes you have BABL_MAC_MODE defined. | ||
| 55 | if (keycode == BABL_PRIMARY_OS_MOD ) { | ||
| 56 | if (babble_mode == BABL_MAC_MODE) { | ||
| 57 | if (is_pressed) { | ||
| 58 | register_code(KC_LGUI); | ||
| 59 | } else { | ||
| 60 | unregister_code(KC_LGUI); | ||
| 61 | } | ||
| 62 | } else { // everybody else | ||
| 63 | |||
| 64 | if (is_pressed) { | ||
| 65 | register_code(KC_LCTL); | ||
| 66 | } else { | ||
| 67 | unregister_code(KC_LCTL); | ||
| 68 | } | ||
| 69 | } | ||
| 70 | } | ||
| 71 | |||
| 72 | // This is the os key not used in cut & paste. (CTRL on mac, GUI elsewhere) | ||
| 73 | if (keycode == BABL_SECONDARY_OS_MOD ) { | ||
| 74 | if (babble_mode == BABL_MAC_MODE) { | ||
| 75 | if (is_pressed) { | ||
| 76 | register_code(KC_LCTL); | ||
| 77 | } else { | ||
| 78 | unregister_code(KC_LCTL); | ||
| 79 | } | ||
| 80 | |||
| 81 | } else { // everybody else | ||
| 82 | if (is_pressed) { | ||
| 83 | register_code(KC_LGUI); | ||
| 84 | } else { | ||
| 85 | unregister_code(KC_LGUI); | ||
| 86 | } | ||
| 87 | } | ||
| 88 | } | ||
| 89 | |||
| 90 | // This is the alt key in most OSes. Mostly useful if you want to do hyper on one OS, Meh on another. | ||
| 91 | if (keycode == BABL_TERTIARY_OS_MOD ) { | ||
| 92 | if (babble_mode == BABL_MAC_MODE) { | ||
| 93 | if (is_pressed) { | ||
| 94 | register_code(KC_LALT); | ||
| 95 | } else { | ||
| 96 | unregister_code(KC_LALT); | ||
| 97 | } | ||
| 98 | } else { // everybody else | ||
| 99 | |||
| 100 | if (is_pressed) { | ||
| 101 | register_code(KC_LALT); | ||
| 102 | } else { | ||
| 103 | unregister_code(KC_LALT); | ||
| 104 | } | ||
| 105 | } | ||
| 106 | } | ||
| 107 | |||
| 108 | # endif | ||
| 109 | |||
| 110 | // below here we are only running macros - don't serve any key up events. | ||
| 111 | if (is_pressed == 0 ) { | ||
| 112 | return true; | ||
| 113 | } | ||
| 114 | |||
| 115 | // handle increment functions. | ||
| 116 | |||
| 117 | if (keycode == BABL_MODE_INCREMENT) { | ||
| 118 | babble_mode_increment(); | ||
| 119 | return true; | ||
| 120 | } | ||
| 121 | |||
| 122 | if (keycode == BABL_MODE_DECREMENT) { | ||
| 123 | babble_mode_decrement(); | ||
| 124 | return true; | ||
| 125 | } | ||
| 48 | 126 | ||
| 49 | # ifdef BABL_MAC | 127 | # ifdef BABL_MAC |
| 50 | if (keycode == BABL_DO_MAC) { | 128 | if (keycode == BABL_DO_MAC) { |
| 51 | set_babble_mode(BABL_MAC_MODE); | 129 | set_babble_mode(BABL_MAC_MODE); |
| 52 | babble_led_user(); | 130 | babble_modeswitch_kb(babble_mode); |
| 53 | return true; | 131 | return true; |
| 54 | } | 132 | } |
| 55 | 133 | ||
| @@ -61,7 +139,7 @@ bool babblePaste(uint16_t keycode) { | |||
| 61 | # ifdef BABL_VI | 139 | # ifdef BABL_VI |
| 62 | if (keycode == BABL_DO_VI) { | 140 | if (keycode == BABL_DO_VI) { |
| 63 | set_babble_mode(BABL_VI_MODE); | 141 | set_babble_mode(BABL_VI_MODE); |
| 64 | babble_led_user(); | 142 | babble_modeswitch_kb(babble_mode); |
| 65 | return true; | 143 | return true; |
| 66 | } | 144 | } |
| 67 | if (babble_mode == BABL_VI_MODE) { | 145 | if (babble_mode == BABL_VI_MODE) { |
| @@ -71,7 +149,7 @@ bool babblePaste(uint16_t keycode) { | |||
| 71 | # ifdef BABL_WINDOWS | 149 | # ifdef BABL_WINDOWS |
| 72 | if (keycode == BABL_DO_WINDOWS) { | 150 | if (keycode == BABL_DO_WINDOWS) { |
| 73 | set_babble_mode(BABL_WINDOWS_MODE); | 151 | set_babble_mode(BABL_WINDOWS_MODE); |
| 74 | babble_led_user(); | 152 | babble_modeswitch_kb(babble_mode); |
| 75 | return true; | 153 | return true; |
| 76 | } | 154 | } |
| 77 | if (babble_mode == BABL_WINDOWS_MODE) { | 155 | if (babble_mode == BABL_WINDOWS_MODE) { |
| @@ -81,7 +159,7 @@ bool babblePaste(uint16_t keycode) { | |||
| 81 | # ifdef BABL_LINUX | 159 | # ifdef BABL_LINUX |
| 82 | if (keycode == BABL_DO_LINUX) { | 160 | if (keycode == BABL_DO_LINUX) { |
| 83 | set_babble_mode(BABL_LINUX_MODE); | 161 | set_babble_mode(BABL_LINUX_MODE); |
| 84 | babble_led_user(); | 162 | babble_modeswitch_kb(babble_mode); |
| 85 | return true; | 163 | return true; |
| 86 | } | 164 | } |
| 87 | if (babble_mode == BABL_LINUX_MODE) { | 165 | if (babble_mode == BABL_LINUX_MODE) { |
| @@ -91,27 +169,47 @@ bool babblePaste(uint16_t keycode) { | |||
| 91 | # ifdef BABL_EMACS | 169 | # ifdef BABL_EMACS |
| 92 | if (keycode == BABL_DO_EMACS) { | 170 | if (keycode == BABL_DO_EMACS) { |
| 93 | set_babble_mode(BABL_EMACS_MODE); | 171 | set_babble_mode(BABL_EMACS_MODE); |
| 94 | babble_led_user(); | 172 | babble_modeswitch_kb(babble_mode); |
| 95 | return true; | 173 | return true; |
| 96 | } | 174 | } |
| 97 | if (babble_mode == BABL_EMACS_MODE) { | 175 | if (babble_mode == BABL_EMACS_MODE) { |
| 98 | babblePaste_emacs(keycode); | 176 | babblePaste_emacs(keycode); |
| 99 | } | 177 | } |
| 100 | # endif | 178 | # endif |
| 101 | # ifdef BABL_CHROME | 179 | # ifdef BABL_NANO |
| 180 | if (keycode == BABL_DO_NANO) { | ||
| 181 | set_babble_mode(BABL_NANO_MODE); | ||
| 182 | babble_modeswitch_kb(babble_mode); | ||
| 183 | return true; | ||
| 184 | } | ||
| 185 | if (babble_mode == BABL_NANO_MODE) { | ||
| 186 | babblePaste_nano(keycode); | ||
| 187 | } | ||
| 188 | # endif | ||
| 189 | # ifdef BABL_KITTY | ||
| 190 | if (keycode == BABL_DO_KITTY) { | ||
| 191 | set_babble_mode(BABL_KITTY_MODE); | ||
| 192 | babble_modeswitch_kb(babble_mode); | ||
| 193 | return true; | ||
| 194 | } | ||
| 195 | if (babble_mode == BABL_KITTY_MODE) { | ||
| 196 | babblePaste_kitty(keycode); | ||
| 197 | } | ||
| 198 | # endif | ||
| 199 | # ifdef BABL_CHROMEOS | ||
| 102 | if (keycode == BABL_DO_CHROMEOS) { | 200 | if (keycode == BABL_DO_CHROMEOS) { |
| 103 | set_babble_mode(BABL_CHROMEOS_MODE); | 201 | set_babble_mode(BABL_CHROMEOS_MODE); |
| 104 | babble_led_user(); | 202 | babble_modeswitch_kb(babble_mode); |
| 105 | return true; | 203 | return true; |
| 106 | } | 204 | } |
| 107 | if (babble_mode == BABL_CHROMEOS_MODE) { | 205 | if (babble_mode == BABL_CHROMEOS_MODE) { |
| 108 | babblePaste_readmux(keycode); | 206 | babblePaste_chromeos(keycode); |
| 109 | } | 207 | } |
| 110 | # endif | 208 | # endif |
| 111 | # ifdef BABL_READMUX | 209 | # ifdef BABL_READMUX |
| 112 | if (keycode == BABL_DO_READMUX) { | 210 | if (keycode == BABL_DO_READMUX) { |
| 113 | set_babble_mode(BABL_READMUX_MODE); | 211 | set_babble_mode(BABL_READMUX_MODE); |
| 114 | babble_led_user(); | 212 | babble_modeswitch_kb(babble_mode); |
| 115 | return true; | 213 | return true; |
| 116 | } | 214 | } |
| 117 | if (babble_mode == BABL_READMUX_MODE) { | 215 | if (babble_mode == BABL_READMUX_MODE) { |
