1
0
Fork 0

[Keymap] miles2go userspace update, add functions for babblepaste library, add prime_e keybard keymap (#9196)

Co-authored-by: Drashna Jaelre <drashna@live.com>
This commit is contained in:
milestogo 2021-03-14 12:23:30 -07:00 committed by GitHub
parent aa73411c14
commit 7b7689d307
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 843 additions and 222 deletions

View file

@ -12,13 +12,14 @@ and https://github.com/qmk/qmk_firmware/blob/master/keyboards/planck/keymaps/jee
#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) {}
// 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; }
@ -27,6 +28,7 @@ void babble_mode_increment() {
if (babble_mode >= BABL_MODEMAX) {
babble_mode = 0;
}
babble_modeswitch_kb(babble_mode);
}
void babble_mode_decrement() {
@ -35,21 +37,97 @@ void babble_mode_decrement() {
} 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 two functions sorted by keycode range
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) {
// handle the OS/mode switching first
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_led_user();
babble_modeswitch_kb(babble_mode);
return true;
}
@ -61,7 +139,7 @@ bool babblePaste(uint16_t keycode) {
# ifdef BABL_VI
if (keycode == BABL_DO_VI) {
set_babble_mode(BABL_VI_MODE);
babble_led_user();
babble_modeswitch_kb(babble_mode);
return true;
}
if (babble_mode == BABL_VI_MODE) {
@ -71,7 +149,7 @@ bool babblePaste(uint16_t keycode) {
# ifdef BABL_WINDOWS
if (keycode == BABL_DO_WINDOWS) {
set_babble_mode(BABL_WINDOWS_MODE);
babble_led_user();
babble_modeswitch_kb(babble_mode);
return true;
}
if (babble_mode == BABL_WINDOWS_MODE) {
@ -81,7 +159,7 @@ bool babblePaste(uint16_t keycode) {
# ifdef BABL_LINUX
if (keycode == BABL_DO_LINUX) {
set_babble_mode(BABL_LINUX_MODE);
babble_led_user();
babble_modeswitch_kb(babble_mode);
return true;
}
if (babble_mode == BABL_LINUX_MODE) {
@ -91,27 +169,47 @@ bool babblePaste(uint16_t keycode) {
# ifdef BABL_EMACS
if (keycode == BABL_DO_EMACS) {
set_babble_mode(BABL_EMACS_MODE);
babble_led_user();
babble_modeswitch_kb(babble_mode);
return true;
}
if (babble_mode == BABL_EMACS_MODE) {
babblePaste_emacs(keycode);
}
# endif
# ifdef BABL_CHROME
# 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_led_user();
babble_modeswitch_kb(babble_mode);
return true;
}
if (babble_mode == BABL_CHROMEOS_MODE) {
babblePaste_readmux(keycode);
babblePaste_chromeos(keycode);
}
# endif
# ifdef BABL_READMUX
if (keycode == BABL_DO_READMUX) {
set_babble_mode(BABL_READMUX_MODE);
babble_led_user();
babble_modeswitch_kb(babble_mode);
return true;
}
if (babble_mode == BABL_READMUX_MODE) {