-
-
Notifications
You must be signed in to change notification settings - Fork 39.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Keymap] initial user directory for milestogo + babblepaste (#7698)
* initial user directory * fix missing endif in vi mode * fix includes per drashna and a few typos. I have not tested the userspace keymap, it is just there to help keep the user space and keymap in sync * move babblepaste docs to md format * clean up block quotes * TIL clang-format - miles2go userspace
- Loading branch information
Showing
19 changed files
with
2,478 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,125 @@ | ||
/* 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" | ||
|
||
// small function that we might also want to call from a keymap. | ||
|
||
// GLOBAL variable to determine mode. Sets startup default if no eeppom | ||
uint8_t babble_mode = 0; | ||
|
||
// function to tell the user that the mode has changed | ||
__attribute__((weak)) void babble_led_user(void) {} | ||
|
||
void set_babble_mode(uint8_t id) { babble_mode = id; } | ||
|
||
void babble_mode_increment() { | ||
babble_mode += 1; | ||
if (babble_mode >= BABL_MODEMAX) { | ||
babble_mode = 0; | ||
} | ||
} | ||
|
||
void babble_mode_decrement() { | ||
if (babble_mode >= 1) { | ||
babble_mode -= 1; | ||
} else { | ||
babble_mode = BABL_MODEMAX - 1; | ||
} | ||
} | ||
|
||
/* 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 two functions sorted by keycode range | ||
But that makes for a *lot* of ifdefs. | ||
*/ | ||
bool babblePaste(uint16_t keycode) { | ||
// handle the OS/mode switching first | ||
|
||
# ifdef BABL_MAC | ||
if (keycode == BABL_DO_MAC) { | ||
set_babble_mode(BABL_MAC_MODE); | ||
babble_led_user(); | ||
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_led_user(); | ||
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_led_user(); | ||
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_led_user(); | ||
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_led_user(); | ||
return true; | ||
} | ||
if (babble_mode == BABL_EMACS_MODE) { | ||
babblePaste_emacs(keycode); | ||
} | ||
# endif | ||
# ifdef BABL_CHROME | ||
if (keycode == BABL_DO_CHROMEOS) { | ||
set_babble_mode(BABL_CHROMEOS_MODE); | ||
babble_led_user(); | ||
return true; | ||
} | ||
if (babble_mode == BABL_CHROMEOS_MODE) { | ||
babblePaste_readmux(keycode); | ||
} | ||
# endif | ||
# ifdef BABL_READMUX | ||
if (keycode == BABL_DO_READMUX) { | ||
set_babble_mode(BABL_READMUX_MODE); | ||
babble_led_user(); | ||
return true; | ||
} | ||
if (babble_mode == BABL_READMUX_MODE) { | ||
babblePaste_readmux(keycode); | ||
} | ||
# endif | ||
|
||
return false; | ||
} | ||
|
||
#endif // USE_BABBLEPASTE |
Oops, something went wrong.