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.md | |
parent | aa73411c14487465d7af9d9f1ca7cb5d157e9343 (diff) |
[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.md')
-rw-r--r-- | users/miles2go/babblePaste.md | 71 |
1 files changed, 54 insertions, 17 deletions
diff --git a/users/miles2go/babblePaste.md b/users/miles2go/babblePaste.md index cc1c31bd0d..4f68cc4ae8 100644 --- a/users/miles2go/babblePaste.md +++ b/users/miles2go/babblePaste.md @@ -26,6 +26,7 @@ To switch modes, run the switch_babble_mode() function, or a pre defined BABL_DO #define BABL_MAC #define BABL_LINUX #define BABL_EMACS + #define BABL_NANO #define BABL_CHROMEOS //// These enable subsets of babble macros. Disable options to save space @@ -56,22 +57,22 @@ To switch modes, run the switch_babble_mode() function, or a pre defined BABL_DO Add the following to your keymap in process_record_user, before the main switch statement. ``` - #ifdef USE_BABBLEPASTE - if( keycode > BABBLE_START && keycode < BABBLE_END_RANGE ) { - if (record->event.pressed) { // is there a case where this isn't desired? - babblePaste ( keycode ); - } else{ - return true; - } +#ifdef USE_BABBLEPASTE + if (keycode > BABBLE_START && keycode < BABBLE_END_RANGE) { + if (record->event.pressed) { + babblePaste(keycode, 1); + } else { + babblePaste(keycode, 0); } - #endif + } +#endif ``` #### Add makefile rules Update your rules.mk to include the modes you want. - `SRC += babblePaste.c babl_windows.c babl_mac.c babl_vi.c babl_readmux.c babl_chromeos.c babl_emacs.c babl_linux.c` + `SRC += babblePaste.c babl_windows.c babl_mac.c babl_nano babl_vi.c babl_readmux.c babl_chromeos.c babl_emacs.c babl_linux.c` #### Custom Keycodes @@ -97,9 +98,18 @@ See the full list in babblePaste.h, or the list below B_LNX // switch to linux B_VI // switch to Vi mode B_EMAX // switch mode to emacs + B_NANO // switch mode to emacs B_READ // switch to readline /tmux mode B_CROM // switch to chromeos mode. - + + // Swap meaning of modifier key in most ergonomic location based on babble + // mode. Eg Thumb gets CTL on Win/Linux, pinky gets Windows key. Reverse for + // OS X. See first line in babblepaste function. + #define B_1ME BABL_PRIMARY_OS_MOD + #define B_2ME BABL_SECONDARY_OS_MOD + #define B_3ME BABL_TERTIARY_OS_MOD + +// Macros #define B_L1C BABL_GO_LEFT_1C #define B_R1C BABL_GO_RIGHT_1C #define B_L1W BABL_GO_LEFT_WORD @@ -137,6 +147,10 @@ See the full list in babblePaste.h, or the list below #define B_PAPP BABL_SWITCH_APP_LAST // previous #define B_CAPP BABL_CLOSE_APP #define B_HELP BABL_HELP + #define B_HELP BABL_HELP + #define B_LOCK BABL_LOCK + #define B_SCAP BABL_SCREENCAPTURE + #define B_KEYB BABL_SWITCH_KEYBOARD_LAYOUT #define B_NTAB BABL_BROWSER_NEW_TAB #define B_CTAB BABL_BROWSER_CLOSE_TAB @@ -151,9 +165,10 @@ See the full list in babblePaste.h, or the list below #define B_BDEV BABL_BROWSER_DEV_TOOLS // hard one to remember #define B_BRLD BABL_BROWSER_RELOAD #define B_BFULL BABL_BROWSER_FULLSCREEN - #define B_ZIN BABL_BROWSER_ZOOM_IN + #define B_ZIN BABL_BROWSER_ZOOM_IN #define B_ZOUT BABL_BROWSER_ZOOM_OUT + #define B_SAVE BABL_APP_SAVE #define B_PASTV BABL_APP_PASTE_VALUES #define B_CALN BABL_APP_CENTER_ALIGN #define B_CFMT BABL_APP_CLEAR_FORMATTING @@ -167,6 +182,7 @@ See the full list in babblePaste.h, or the list below #define B_SELR BABL_SELECT_ROW #define B_MSEL BABL_APP_MULTI_SELECT + #define B_MARK BABL_APP_SET_MARK #define B_VSPLIT BABL_SPLIT_FRAME_VERT #define B_VUNSPT BABL_UNSPLIT_FRAME_VERT #define B_HSPLIT BABL_SPLIT_FRAME_HORIZONTAL @@ -175,27 +191,48 @@ See the full list in babblePaste.h, or the list below #define B_PRVFM BABL_PREV_FRAME ``` +####Add babblepaste functions to your keyboard or userspace +Functions babble_led_user() and babble_led_kb() are called when babble mode is changed. +``` +void babble_modeswitch_kb(uint8_t mode){ + #ifdef USE_BABBLEPASTE + writePinLow(B3); writePinLow(B2); + switch(mode) { + case(BABL_LINUX_MODE): + writePinHigh(B2); + backlight_level(1); + break; + case(BABL_MAC_MODE): + writePinHigh(B3); + backlight_level(4); + break; + } + // call the user function + babble_modeswitch_user(mode); + #endif +``` + + ## Development FAQs **Todos** -eeprom store state of babble_mode? or update docs so that people can change the order of the enum in -babblespace.h? +eeprom store state of babble_mode? or update docs so that people can change the order of the enum in babblespace.h? **You have huge ifdef stanzas instead of functions** This fails gracefully if you don't have all options defined. Patch if you can think how to use fewer defines. -** Why not an array of arrays as a lookup instead of a function?** +**Why not an array of arrays as a lookup instead of a function?** This would allow you to store the lookup table in PROGMEM. True, but that takes more pre-processor skill than I have, and may be less portable to ARM or other flash mappings. -** Have you tested every key on every platform?** +**Have you tested every key on every platform?** No. Be careful, submit a patch. -** Why not update Apps at the same global level as the OS? ** +**Why not change apps App babble modes at the same global level as the OS?** This is only a good thing if it doesn't confuse the user. If you can show state of OS vs App, it's probably a good thing. -** Can the OS tell the keyboard what mode to use? ** +**Can the OS tell the keyboard what mode to use?** The keyboard side is easy to do with virtser_recv & a function that updates babble_mode. It still needs a PC side app to track where the keyboard focus is. One could use a keyboard macro to launch an app & switch modes for that app. |