aboutsummaryrefslogtreecommitdiff
path: root/users/miles2go/babl_readmux.c
diff options
context:
space:
mode:
authormilestogo <milestogo@users.noreply.github.com>2020-05-08 23:15:26 -0700
committerGitHub <noreply@github.com>2020-05-08 23:15:26 -0700
commit803610a284ac886eaeb319b4a8d25ffbd2861152 (patch)
tree46c074727b4015bdd345d762e78f89144498ce24 /users/miles2go/babl_readmux.c
parentcd0edbb1fba91df97be233e30c145f352eda31c0 (diff)
downloadqmk_firmware-803610a284ac886eaeb319b4a8d25ffbd2861152.tar.gz
qmk_firmware-803610a284ac886eaeb319b4a8d25ffbd2861152.zip
[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
Diffstat (limited to 'users/miles2go/babl_readmux.c')
-rw-r--r--users/miles2go/babl_readmux.c86
1 files changed, 86 insertions, 0 deletions
diff --git a/users/miles2go/babl_readmux.c b/users/miles2go/babl_readmux.c
new file mode 100644
index 000000000..8887d523b
--- /dev/null
+++ b/users/miles2go/babl_readmux.c
@@ -0,0 +1,86 @@
1// Readline command line editing + tmux windowing
2// I haven't decided how much to do readline and how much tmux
3// see https://tiswww.case.edu/php/chet/readline/rluserman.html for other possible
4// keybindings.
5
6#include QMK_KEYBOARD_H
7
8#ifdef USE_BABBLEPASTE
9# include "babblePaste.h"
10
11# ifdef BABL_READMUX
12
13// Redefine if you use something other than CTRL-B to activate tmux.
14# define TMUX SS_LCTL("b")
15
16bool babblePaste_readmux(uint16_t keycode) {
17# ifdef BABL_MOVE
18 BABLM(BABL_GO_LEFT_1C, SS_TAP(X_LEFT));
19 BABLM(BABL_GO_RIGHT_1C, SS_TAP(X_RIGHT));
20 BABLM(BABL_GO_LEFT_WORD, SS_LALT("b"));
21 BABLM(BABL_GO_RIGHT_WORD, SS_LALT("f"));
22 BABLM(BABL_GO_START_LINE, SS_LCTL("a"));
23 BABLM(BABL_GO_END_LINE, SS_LCTL("e"));
24 // BABLM( BABL_GO_START_DOC ,END );// tmux?
25 // BABLM( BABL_GO_END_DOC ,END ); // tmux?
26 BABLM(BABL_GO_NEXT_LINE, SS_LCTL("n"));
27 BABLM(BABL_GO_PREV_LINE, SS_LCTL("p"));
28 // BABLM( BABL_GO_PARA_START, // undefined
29 // BABLM( BABL_GO_PARA_END, // undefinedBABLM( BABL_PGDN ,
30
31 BABLM(BABL_PGUP, SS_TAP(X_PGUP));
32 BABLM(BABL_PGDN, SS_TAP(X_PGDOWN));
33 BABLM(BABL_DEL_RIGHT_1C, SS_LCTL("d"));
34 BABLM(BABL_DEL_LEFT_WORD, SS_LCTL("w")); // meta-DEL instead?
35 BABLM(BABL_DEL_RIGHT_WORD, SS_LALT("d"));
36 BABLM(BABL_DEL_TO_LINE_END, SS_LCTL("k"));
37 BABLM(BABL_DEL_TO_LINE_START, SS_LCTL("u"));
38 BABLM(BABL_MODE, "Readline ");
39# endif
40# ifdef BABL_OSKEYS
41 BABLM(BABL_UNDO, SS_LALT("r"));
42 BABLM(BABL_REDO, SS_LCTL("x") "c"); // arguably
43 BABLM(BABL_CUT, SS_LCTL("k")); // wrong half the time
44 // BABLM( BABL_COPY ,END );
45 BABLM(BABL_PASTE, SS_LCTL("y"));
46 BABLM(BABL_SELECT_ALL, SS_LCTL("aky"));
47 BABLM(BABL_FIND, SS_LCTL("r")); // search history
48 BABLM(BABL_FIND_NEXT, SS_LCTL("r"));
49 BABLM(BABL_FIND_PREV, SS_LCTL("s"));
50 // BABLM( BABL_FIND_REPLACE ,END ); // not offered in readline
51 BABLM(BABL_RUNAPP, TMUX "c"); // tmux
52 BABLM(BABL_SWITCH_APP_NEXT, TMUX "n"); // tmux
53 BABLM(BABL_SWITCH_APP_LAST, TMUX "p"); // tmux
54 BABLM(BABL_CLOSE_APP, TMUX "d"); // usually what I want
55 BABLM(BABL_HELP, TMUX IMSFT(X_SLASH));
56 BABLM(BABL_LOCK, TMUX "L"); // assuming you set up VLOCK yourself
57 BABLM(BABL_SCREENCAPTURE, TMUX ":capture-pane");
58# endif
59# ifdef BABL_BROWSER
60/* Add lynx shortcuts, brow.sh?
61 */
62# ifdef BABL_MAC
63 // this is stock OS X Terminal, alter for windows &etc.
64 BABLM(BABL_BROWSER_NEW_TAB, IMGUI(X_T));
65 BABLM(BABL_BROWSER_CLOSE_TAB, SS_LGUI("w"));
66 BABLM(BABL_BROWSER_NEXT_TAB, IMCTL(X_TAB));
67 BABLM(BABL_BROWSER_PREV_TAB, OMSFT(IMCTL(X_TAB)));
68# endif
69# endif
70# ifdef BABL_APP
71 // Save makes no sense here
72 BABLM(BABL_SPLIT_FRAME_VERT, TMUX IMSFT(X_5));
73 // BUG - misleading. This is currently set to convert frame to a window.
74 BABLM(BABL_UNSPLIT_FRAME_VERT, TMUX IMSFT(X_1));
75 BABLM(BABL_SPLIT_FRAME_HORIZONTAL, TMUX IMSFT(X_QUOTE));
76 // This one closes the current pane.
77 BABLM(BABL_UNSPLIT_FRAME_HORIZONTAL, SS_LCTL("b") "x");
78 BABLM(BABL_NEXT_FRAME, SS_LCTL("b") "o");
79 BABLM(BABL_PREV_FRAME, SS_LCTL("w") SS_TAP(X_SCOLON));
80# endif
81
82 // Todo, ring bell, flash light, show user this isn't supported
83 return false;
84}
85# endif /* readmux*/
86#endif