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.

85 lines
2.4 KiB

  1. #include "rossman360.h"
  2. void my_custom_function(void) {
  3. }
  4. __attribute__ ((weak))
  5. bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
  6. return true;
  7. }
  8. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  9. switch (keycode) {
  10. case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader
  11. if (!record->event.pressed) {
  12. uint8_t temp_mod = get_mods();
  13. uint8_t temp_osm = get_oneshot_mods();
  14. clear_mods(); clear_oneshot_mods();
  15. SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP);
  16. #ifndef FLASH_BOOTLOADER
  17. if ((temp_mod | temp_osm) & MOD_MASK_SHIFT)
  18. #endif
  19. {
  20. SEND_STRING(":flash");
  21. }
  22. if ((temp_mod | temp_osm) & MOD_MASK_CTRL) {
  23. SEND_STRING(" -j8 --output-sync");
  24. }
  25. tap_code(KC_ENT);
  26. set_mods(temp_mod);
  27. }
  28. break;
  29. case CSPEAK:
  30. if (record->event.pressed) {
  31. SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN));
  32. }
  33. break;
  34. case SPEAK1:
  35. if (record->event.pressed) {
  36. SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_1)));
  37. }
  38. break;
  39. case SPEAK2:
  40. if (record->event.pressed) {
  41. SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_2)));
  42. }
  43. break;
  44. case SPEAK3:
  45. if (record->event.pressed) {
  46. SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_3)));
  47. }
  48. break;
  49. case SPEAK4:
  50. if (record->event.pressed) {
  51. SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_4)));
  52. }
  53. break;
  54. case PARADOWN:
  55. if (record->event.pressed) {
  56. SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN));
  57. }
  58. break;
  59. case PMERGE:
  60. if (record->event.pressed) {
  61. SEND_STRING(SS_TAP(X_HOME) SS_TAP(X_BSPACE) SS_TAP(X_SPACE) SS_LCTRL(SS_TAP(X_BSPACE)) SS_TAP(X_SPACE));
  62. }
  63. break;
  64. case WREFRESH:
  65. if (record->event.pressed) {
  66. SEND_STRING(SS_TAP(X_SPACE) SS_TAP(X_BSPACE));
  67. }
  68. break;
  69. case REMCAPS:
  70. if (record->event.pressed) {
  71. SEND_STRING(SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_LCTRL(SS_TAP(X_LEFT)) SS_TAP(X_DELETE));
  72. }
  73. break;
  74. case EMDASH:
  75. if (record->event.pressed) {
  76. SEND_STRING(SS_LCTRL(SS_LSFT(SS_TAP(X_U))) SS_TAP(X_2) SS_TAP(X_0) SS_TAP(X_1) SS_TAP(X_4) SS_TAP(X_SPACE) SS_TAP(X_SPACE));
  77. }
  78. break;
  79. };
  80. return true;
  81. };