[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
This commit is contained in:
parent
cd0edbb1fb
commit
803610a284
19 changed files with 2478 additions and 0 deletions
125
users/miles2go/babblePaste.c
Normal file
125
users/miles2go/babblePaste.c
Normal file
|
@ -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
|
Loading…
Add table
Add a link
Reference in a new issue