You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

102 lines
4.1 KiB

  1. /* A library to output the right key shortcut in any common app.
  2. Given a global variable babble_mode to show the environment and a
  3. key that calls the paste macro, do the right type of paste.
  4. Setting the context is done by another macro, or TBD interaction with the host.
  5. Huge thanks to https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts
  6. and
  7. https://github.com/qmk/qmk_firmware/blob/master/keyboards/planck/keymaps/jeebak/keymap.c
  8. */
  9. #include QMK_KEYBOARD_H
  10. #ifdef USE_BABBLEPASTE
  11. # include "babblePaste.h"
  12. # ifdef BABL_LINUX
  13. bool babblePaste_linux(uint16_t keycode) {
  14. # ifdef BABL_MOVE
  15. BABLM(BABL_GO_LEFT_1C, SS_TAP(X_LEFT));
  16. BABLM(BABL_GO_RIGHT_1C, SS_TAP(X_RIGHT));
  17. BABLM(BABL_GO_LEFT_WORD, IMCTL(X_LEFT));
  18. BABLM(BABL_GO_RIGHT_WORD, IMCTL(X_RIGHT));
  19. BABLM(BABL_GO_START_LINE, SS_TAP(X_HOME));
  20. BABLM(BABL_GO_END_LINE, SS_TAP(X_END));
  21. BABLM(BABL_GO_START_DOC, IMCTL(X_HOME));
  22. BABLM(BABL_GO_END_DOC, IMCTL(X_END));
  23. BABLM(BABL_GO_NEXT_LINE, SS_TAP(X_DOWN));
  24. BABLM(BABL_GO_PREV_LINE, SS_TAP(X_UP));
  25. BABLM(BABL_GO_PARA_START, IMCTL(X_UP));
  26. BABLM(BABL_GO_PARA_END, IMCTL(X_DOWN));
  27. BABLM(BABL_PGDN, SS_TAP(X_PGDOWN));
  28. BABLM(BABL_PGUP, SS_TAP(X_PGUP));
  29. BABLM(BABL_DEL_RIGHT_1C, SS_TAP(X_DELETE));
  30. BABLM(BABL_DEL_LEFT_WORD, IMCTL(X_BSPACE));
  31. BABLM(BABL_DEL_RIGHT_WORD, IMCTL(X_DELETE));
  32. BABLM(BABL_DEL_TO_LINE_END, IMSFT(X_HOME) SS_TAP(X_DELETE));
  33. BABLM(BABL_DEL_TO_LINE_START, IMSFT(X_END) SS_TAP(X_DELETE));
  34. BABLM(BABL_MODE, "Linux ");
  35. # endif
  36. # ifdef BABL_OSKEYS
  37. BABLM(BABL_UNDO, SS_LCTL("z"));
  38. BABLM(BABL_REDO, SS_LCTL("y"));
  39. BABLM(BABL_CUT, SS_LCTL("x"));
  40. BABLM(BABL_COPY, SS_LCTL("c"));
  41. BABLM(BABL_PASTE, SS_LCTL("v"));
  42. BABLM(BABL_SELECT_ALL, SS_LCTL("a"));
  43. BABLM(BABL_FIND, SS_LCTL("f"));
  44. BABLM(BABL_CLOSE_APP, IMALT(X_F4));
  45. BABLM(BABL_HELP, SS_TAP(X_F1));
  46. // BABLM(BABL_FIND_NEXT (SS_LALT(X_F3)) ); //KDE */
  47. BABLM(BABL_FIND_NEXT, SS_LCTL("g")); // Gnome*/
  48. BABLM(BABL_FIND_PREV, OMSFT(IMCTL(X_G))); // Gnome*/
  49. /* BABLM( BABL_FIND_REPLACE , (SS_LCTL("r")) ); // KDE */
  50. BABLM(BABL_FIND_REPLACE, SS_LCTL("h")); // Gnome*/
  51. BABLM(BABL_RUNAPP, IMALT(X_F2)); // Gnome
  52. BABLM(BABL_SWITCH_APP_NEXT, IMALT(X_TAB));
  53. BABLM(BABL_SWITCH_APP_LAST, OMSFT(IMALT(X_TAB)));
  54. BABLM(BABL_WINDOW_NEXT, OMCTL(IMALT(X_PGUP))); // Gnome, sometimes
  55. BABLM(BABL_WINDOW_PREV, OMCTL(IMALT(X_PGDOWN)));
  56. BABLM(BABL_WINDOW_NEW, IMCTL(X_N));
  57. // BABLM( BABL_HELP, (SS_TAP(X_F1)) ); // NA?
  58. BABLM(BABL_LOCK, OMCTL(IMALT(X_L)));
  59. BABLM(BABL_SCREENCAPTURE, IMSFT(X_PSCREEN));
  60. # endif
  61. # ifdef BABL_BROWSER
  62. BABLM(BABL_BROWSER_NEW_TAB, SS_LCTL("t"));
  63. BABLM(BABL_BROWSER_CLOSE_TAB, SS_LCTL("w"));
  64. BABLM(BABL_BROWSER_REOPEN_LAST_TAB, OMSFT(IMCTL(X_T)));
  65. BABLM(BABL_BROWSER_NEXT_TAB, SS_LCTL(SS_TAP(X_TAB)));
  66. BABLM(BABL_BROWSER_PREV_TAB, OMSFT(IMCTL(X_TAB)));
  67. BABLM(BABL_BROWSER_URL_BAR, SS_LCTL("l"));
  68. BABLM(BABL_BROWSER_FORWARD, IMALT(X_RIGHT));
  69. BABLM(BABL_BROWSER_BACK, IMALT(X_LEFT));
  70. BABLM(BABL_BROWSER_FIND, SS_LCTL("f"));
  71. BABLM(BABL_BROWSER_BOOKMARK, SS_LCTL("d"));
  72. BABLM(BABL_BROWSER_DEV_TOOLS, SS_LCTL("t")); // Chrome
  73. // chrome
  74. BABLM(BABL_BROWSER_RELOAD, IMCTL(X_F5)); // hard reload w/o cache
  75. BABLM(BABL_BROWSER_FULLSCREEN, SS_TAP(X_F11)); // command shift F
  76. BABLM(BABL_BROWSER_ZOOM_IN, OMSFT(IMCTL(X_EQUAL))); // ctr+ +
  77. BABLM(BABL_BROWSER_ZOOM_OUT, IMCTL(X_MINUS));
  78. BABLM(BABL_BROWSER_VIEWSRC, SS_LCTL("u")); // Chrome or firefox
  79. # endif
  80. # ifdef BABL_APP
  81. BABLM(BABL_APP_SAVE, SS_LCTL("s"));
  82. // on linux we'd probably use tmux or screen. Some terminal software also
  83. // allows this.
  84. // BABLM( BABL_SPLIT_FRAME_VERT, () );
  85. // BABLM( BABL_UNSPLIT_FRAME_VERT, () );
  86. // BABLM( BABL_SPLIT_FRAME_HORIZONTAL, () );
  87. // BABLM( BABL_UNSPLIT_FRAME_HORIZONTAL, () );
  88. // BABLM( BABL_NEXT_FRAME, () );
  89. // BABLM( BABL_PREV_FRAME, () );
  90. # endif
  91. // Todo, ring bell, flash light, show user this isn't supported
  92. return false;
  93. }
  94. # endif /* linux mode */
  95. #endif