rossman360.c 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. #include "rossman360.h"
  2. void my_custom_function(void) {
  3. }
  4. #define PGMOD LT(_NUM, KC_PGDN)
  5. #define TABMOD LT(_FN1, KC_TAB)
  6. #define SPCMOD LT(_FN1, KC_SPACE)
  7. #define ENTMOD LT(_FN2, KC_ENTER)
  8. #define ESCMOD LT(_NUM, KC_ESC)
  9. #define RSMOD LT(_FN1, KC_RSHIFT)
  10. #define CMDBSP MT(MOD_LGUI, KC_BSPC)
  11. #define ALTDEL MT(MOD_LALT, KC_DEL)
  12. #define CTRLSP MT(MOD_LCTL, KC_SPACE)
  13. #define BWORD LCTL(KC_BSPC)
  14. #define JUMPBACK LSFT(KC_TAB)
  15. #define LWORD LCTL(KC_LEFT)
  16. #define RWORD LCTL(KC_RIGHT)
  17. #define UNDO LCTL(KC_Z)
  18. #define NTAB LCTL(KC_T)
  19. #define CTAB LCTL(KC_W)
  20. #define XPANDR LCTL(LSFT(KC_X))
  21. #define TAB1 LCTL(KC_1)
  22. #define TAB2 LCTL(KC_2)
  23. #define TAB3 LCTL(KC_3)
  24. #define TAB4 LCTL(KC_4)
  25. #define RVOLU LCTL(KC_RBRC)
  26. #define RVOLD LCTL(KC_LBRC)
  27. __attribute__ ((weak))
  28. bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
  29. return true;
  30. }
  31. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  32. switch (keycode) {
  33. case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader
  34. if (!record->event.pressed) {
  35. uint8_t temp_mod = get_mods();
  36. uint8_t temp_osm = get_oneshot_mods();
  37. clear_mods(); clear_oneshot_mods();
  38. SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP);
  39. #ifndef FLASH_BOOTLOADER
  40. if ((temp_mod | temp_osm) & MOD_MASK_SHIFT)
  41. #endif
  42. {
  43. SEND_STRING(":flash");
  44. }
  45. if ((temp_mod | temp_osm) & MOD_MASK_CTRL) {
  46. SEND_STRING(" -j8 --output-sync");
  47. }
  48. tap_code(KC_ENT);
  49. set_mods(temp_mod);
  50. }
  51. break;
  52. case CSPEAK:
  53. if (record->event.pressed) {
  54. SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN));
  55. }
  56. break;
  57. case SPEAK1:
  58. if (record->event.pressed) {
  59. SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_1)));
  60. }
  61. break;
  62. case SPEAK2:
  63. if (record->event.pressed) {
  64. SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_2)));
  65. }
  66. break;
  67. case SPEAK3:
  68. if (record->event.pressed) {
  69. SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_3)));
  70. }
  71. break;
  72. case SPEAK4:
  73. if (record->event.pressed) {
  74. SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN) SS_LCTRL(SS_TAP(X_4)));
  75. }
  76. break;
  77. case PARADOWN:
  78. if (record->event.pressed) {
  79. SEND_STRING(SS_TAP(X_PGDOWN) SS_TAP(X_ENTER) SS_TAP(X_PGDOWN));
  80. }
  81. break;
  82. case PMERGE:
  83. if (record->event.pressed) {
  84. SEND_STRING(SS_TAP(X_HOME) SS_TAP(X_BSPACE) SS_TAP(X_SPACE) SS_LCTRL(SS_TAP(X_BSPACE)) SS_TAP(X_SPACE));
  85. }
  86. break;
  87. case WREFRESH:
  88. if (record->event.pressed) {
  89. SEND_STRING(SS_TAP(X_SPACE) SS_TAP(X_BSPACE));
  90. }
  91. break;
  92. case REMCAPS:
  93. if (record->event.pressed) {
  94. SEND_STRING(SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_LCTRL(SS_TAP(X_LEFT)) SS_TAP(X_DELETE));
  95. }
  96. break;
  97. };
  98. return true;
  99. };