aboutsummaryrefslogtreecommitdiff
path: root/users/miles2go/babblePaste.c
diff options
context:
space:
mode:
Diffstat (limited to 'users/miles2go/babblePaste.c')
-rw-r--r--users/miles2go/babblePaste.c223
1 files changed, 0 insertions, 223 deletions
diff --git a/users/miles2go/babblePaste.c b/users/miles2go/babblePaste.c
deleted file mode 100644
index 65c9981186..0000000000
--- a/users/miles2go/babblePaste.c
+++ /dev/null
@@ -1,223 +0,0 @@
-/* A library to output the right key shortcut in any common app.
-Given a global variable babble_mode to show the environment and a
-key that calls the paste macro, do the right type of paste.
-Setting the context is done by another macro, or TBD interaction with the host.
-
-Huge thanks to https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts
-and https://github.com/qmk/qmk_firmware/blob/master/keyboards/planck/keymaps/jeebak/keymap.c
-*/
-
-#include QMK_KEYBOARD_H
-
-#ifdef USE_BABBLEPASTE
-# include "babblePaste.h"
-
-// GLOBAL variable to determine mode. Sets startup default if no eeppom
-uint8_t babble_mode = 0;
-
-// functions to tell the user that the mode has changed
-__attribute__((weak)) void babble_modeswitch_user(uint8_t mode) {}
-__attribute__((weak)) void babble_modeswitch_kb(uint8_t mode) { babble_modeswitch_user( mode); }
-
-
-
-void set_babble_mode(uint8_t id) { babble_mode = id; }
-
-void babble_mode_increment(void) {
- babble_mode += 1;
- if (babble_mode >= BABL_MODEMAX) {
- babble_mode = 0;
- }
- babble_modeswitch_kb(babble_mode);
-}
-
-void babble_mode_decrement(void) {
- if (babble_mode >= 1) {
- babble_mode -= 1;
- } else {
- babble_mode = BABL_MODEMAX - 1;
- }
- babble_modeswitch_kb(babble_mode);
-}
-
-/* this function runs the appropriate babblepaste macro, given
-the global babble_mode and a keycode defined in the babble_keycodes enum.
-
-This could be made faster by splitting into functions sorted by keycode range
-But that makes for a *lot* of ifdefs.
-*/
-bool babblePaste(uint16_t keycode, bool is_pressed ) {
- // handle keys that have up & down behavior first, then OS/mode switching, then macros
-
-// This is the key used for cut & paste (Propeller on Mac, Control elsewhere)
-# ifdef BABL_MODSWAP
- // WARNING, this assumes you have BABL_MAC_MODE defined.
- if (keycode == BABL_PRIMARY_OS_MOD ) {
- if (babble_mode == BABL_MAC_MODE) {
- if (is_pressed) {
- register_code(KC_LGUI);
- } else {
- unregister_code(KC_LGUI);
- }
- } else { // everybody else
-
- if (is_pressed) {
- register_code(KC_LCTL);
- } else {
- unregister_code(KC_LCTL);
- }
- }
- }
-
-// This is the os key not used in cut & paste. (CTRL on mac, GUI elsewhere)
- if (keycode == BABL_SECONDARY_OS_MOD ) {
- if (babble_mode == BABL_MAC_MODE) {
- if (is_pressed) {
- register_code(KC_LCTL);
- } else {
- unregister_code(KC_LCTL);
- }
-
- } else { // everybody else
- if (is_pressed) {
- register_code(KC_LGUI);
- } else {
- unregister_code(KC_LGUI);
- }
- }
- }
-
-// This is the alt key in most OSes. Mostly useful if you want to do hyper on one OS, Meh on another.
- if (keycode == BABL_TERTIARY_OS_MOD ) {
- if (babble_mode == BABL_MAC_MODE) {
- if (is_pressed) {
- register_code(KC_LALT);
- } else {
- unregister_code(KC_LALT);
- }
- } else { // everybody else
-
- if (is_pressed) {
- register_code(KC_LALT);
- } else {
- unregister_code(KC_LALT);
- }
- }
- }
-
-# endif
-
-// below here we are only running macros - don't serve any key up events.
- if (is_pressed == 0 ) {
- return true;
- }
-
-// handle increment functions.
-
-if (keycode == BABL_MODE_INCREMENT) {
- babble_mode_increment();
- return true;
-}
-
-if (keycode == BABL_MODE_DECREMENT) {
- babble_mode_decrement();
- return true;
-}
-
-# ifdef BABL_MAC
- if (keycode == BABL_DO_MAC) {
- set_babble_mode(BABL_MAC_MODE);
- babble_modeswitch_kb(babble_mode);
- return true;
- }
-
- if (babble_mode == BABL_MAC_MODE) {
- babblePaste_mac(keycode);
- }
-# endif
-
-# ifdef BABL_VI
- if (keycode == BABL_DO_VI) {
- set_babble_mode(BABL_VI_MODE);
- babble_modeswitch_kb(babble_mode);
- return true;
- }
- if (babble_mode == BABL_VI_MODE) {
- babblePaste_vi(keycode);
- }
-# endif
-# ifdef BABL_WINDOWS
- if (keycode == BABL_DO_WINDOWS) {
- set_babble_mode(BABL_WINDOWS_MODE);
- babble_modeswitch_kb(babble_mode);
- return true;
- }
- if (babble_mode == BABL_WINDOWS_MODE) {
- babblePaste_win(keycode);
- }
-# endif
-# ifdef BABL_LINUX
- if (keycode == BABL_DO_LINUX) {
- set_babble_mode(BABL_LINUX_MODE);
- babble_modeswitch_kb(babble_mode);
- return true;
- }
- if (babble_mode == BABL_LINUX_MODE) {
- babblePaste_linux(keycode);
- }
-# endif
-# ifdef BABL_EMACS
- if (keycode == BABL_DO_EMACS) {
- set_babble_mode(BABL_EMACS_MODE);
- babble_modeswitch_kb(babble_mode);
- return true;
- }
- if (babble_mode == BABL_EMACS_MODE) {
- babblePaste_emacs(keycode);
- }
-# endif
-# ifdef BABL_NANO
- if (keycode == BABL_DO_NANO) {
- set_babble_mode(BABL_NANO_MODE);
- babble_modeswitch_kb(babble_mode);
- return true;
- }
- if (babble_mode == BABL_NANO_MODE) {
- babblePaste_nano(keycode);
- }
-# endif
-# ifdef BABL_KITTY
- if (keycode == BABL_DO_KITTY) {
- set_babble_mode(BABL_KITTY_MODE);
- babble_modeswitch_kb(babble_mode);
- return true;
- }
- if (babble_mode == BABL_KITTY_MODE) {
- babblePaste_kitty(keycode);
- }
-# endif
-# ifdef BABL_CHROMEOS
- if (keycode == BABL_DO_CHROMEOS) {
- set_babble_mode(BABL_CHROMEOS_MODE);
- babble_modeswitch_kb(babble_mode);
- return true;
- }
- if (babble_mode == BABL_CHROMEOS_MODE) {
- babblePaste_chromeos(keycode);
- }
-# endif
-# ifdef BABL_READMUX
- if (keycode == BABL_DO_READMUX) {
- set_babble_mode(BABL_READMUX_MODE);
- babble_modeswitch_kb(babble_mode);
- return true;
- }
- if (babble_mode == BABL_READMUX_MODE) {
- babblePaste_readmux(keycode);
- }
-# endif
-
- return false;
-}
-
-#endif // USE_BABBLEPASTE