keymap.c 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. #include QMK_KEYBOARD_H
  2. #include "muse.h"
  3. // Custom Keycode Definitions
  4. #define LOWER MO(_LOWER)
  5. #define RAISE MO(_RAISE)
  6. #define META MO(_META)
  7. #define KC_PRS LGUI(LALT(LCTL(KC_4)))
  8. #define KC_EUR LALT(KC_4)
  9. #define KC_MGRV LALT(KC_GRV)
  10. #define KC_FORMAT LGUI(LALT(KC_L))
  11. #define KC_FBSP LALT(KC_BSPC)
  12. #define KC_FDEL LALT(KC_DEL)
  13. #define KC_PS3 LSFT(LCTL(LGUI(KC_3)))
  14. #define KC_PS4 LSFT(LCTL(LGUI(KC_4)))
  15. #define HK_TM LALT(KC_2)
  16. #define HK_AF9 LALT(KC_F9)
  17. #define KC_SRC LGUI(KC_F12)
  18. #define KC_RNME LSFT(KC_F6)
  19. #define M_LGSPC LGUI_T(KC_SPC)
  20. #define M_LCENT LCTL_T(KC_ENT)
  21. #define M_LGENT LGUI_T(KC_ENT)
  22. enum planck_layers {
  23. _DEFAULT = 0,
  24. _LOWER,
  25. _RAISE,
  26. _META,
  27. _ADJUST
  28. };
  29. enum planck_keycodes {
  30. KC_ARR = SAFE_RANGE, // ->
  31. KC_FARR, // =>
  32. HK_CLOS, // />
  33. XD1, // :D
  34. XD3, // :DDD
  35. XD5, // :DDDDD
  36. XD15, // :DDDDDDDDDDDDDDD
  37. };
  38. enum tapdancers {
  39. T_BR = 0, // [, ]
  40. T_PA, // (, )
  41. T_CU, // {, }
  42. T_DL, // $, €
  43. T_SL, // slash, backslash
  44. };
  45. //Tap Dance Definitions
  46. qk_tap_dance_action_t tap_dance_actions[] = {
  47. [T_BR] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC),
  48. [T_PA] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, KC_RPRN),
  49. [T_CU] = ACTION_TAP_DANCE_DOUBLE(KC_LCBR, KC_RCBR),
  50. [T_DL] = ACTION_TAP_DANCE_DOUBLE(KC_DLR, KC_EUR),
  51. [T_SL] = ACTION_TAP_DANCE_DOUBLE(KC_SLSH, KC_BSLS),
  52. };
  53. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  54. [_DEFAULT] = LAYOUT_planck_grid(
  55. KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
  56. KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, XXXXXXX, KC_ENT,
  57. KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, XXXXXXX, KC_LEAD,
  58. KC_LGUI, KC_LCTL, KC_LALT, KC_LALT, LOWER, KC_SPC, META, RAISE, KC_RALT, KC_MPRV, KC_MPLY, KC_MNXT
  59. ),
  60. [_LOWER] = LAYOUT_planck_grid(
  61. KC_F1, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, XXXXXXX, XXXXXXX, XXXXXXX,
  62. _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX,
  63. _______, HK_TM, XD1, XD3, XD5, XD15, XXXXXXX, XXXXXXX, KC_ARR, KC_FARR, HK_CLOS, XXXXXXX,
  64. _______, _______, _______, _______, _______, KC_DEL, KC_FBSP, RAISE, KC_RALT, KC_VOLD, KC_MUTE, KC_VOLU
  65. ),
  66. [_RAISE] = LAYOUT_planck_grid(
  67. KC_MGRV, KC_MINUS, KC_EQL, KC_EXLM, KC_QUES, KC_PLUS, KC_PGUP, KC_HOME, KC_UP, KC_END, XXXXXXX, KC_FBSP,
  68. KC_TILD, TD(T_BR), TD(T_CU), TD(T_PA), TD(T_DL), KC_SLSH, KC_RNME, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, KC_FORMAT,
  69. _______, KC_UNDS, KC_DQUO, KC_QUOT, KC_PIPE, KC_BSLS, XXXXXXX, KC_SCLN, KC_COLN, XXXXXXX, XXXXXXX, XXXXXXX,
  70. _______, _______, _______, _______, _______, KC_DEL, KC_FDEL, _______, XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU
  71. ),
  72. [_META] = LAYOUT_planck_grid(
  73. XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SRC, XXXXXXX,
  74. XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
  75. XXXXXXX, KC_F10, KC_F11, KC_F12, HK_AF9, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
  76. XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
  77. ),
  78. [_ADJUST] = LAYOUT_planck_grid(
  79. XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, CG_TOGG, XXXXXXX,
  80. XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
  81. XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
  82. XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET
  83. )
  84. };
  85. layer_state_t layer_state_set_user(layer_state_t state) {
  86. return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
  87. }
  88. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  89. switch (keycode) {
  90. case KC_ARR:
  91. if (record->event.pressed) {
  92. SEND_STRING("->");
  93. }
  94. return false;
  95. case KC_FARR:
  96. if (record->event.pressed) {
  97. SEND_STRING("=>");
  98. }
  99. return false;
  100. case XD1:
  101. if (record->event.pressed) {
  102. SEND_STRING(":D");
  103. }
  104. return false;
  105. case XD3:
  106. if (record->event.pressed) {
  107. SEND_STRING(":DDD");
  108. }
  109. return false;
  110. case XD5:
  111. if (record->event.pressed) {
  112. SEND_STRING(":DDDDD");
  113. }
  114. return false;
  115. case XD15:
  116. if (record->event.pressed) {
  117. SEND_STRING(":DDDDDDDDDDDDDDD");
  118. }
  119. return false;
  120. case HK_CLOS:
  121. if (record->event.pressed) {
  122. SEND_STRING("/>");
  123. }
  124. return false;
  125. }
  126. return true;
  127. }
  128. LEADER_EXTERNS();
  129. void matrix_scan_user(void) {
  130. LEADER_DICTIONARY() {
  131. leading = false;
  132. leader_end();
  133. // Screenshot
  134. SEQ_ONE_KEY(KC_S) {
  135. tap_code16(G(C(S(KC_4))));
  136. }
  137. // 1Pass browser
  138. SEQ_ONE_KEY(KC_A) {
  139. tap_code16(G(A(KC_BSLS)));
  140. }
  141. // 1Pass mini
  142. SEQ_TWO_KEYS(KC_A, KC_A) {
  143. tap_code16(G(KC_BSLS));
  144. }
  145. // Comment out
  146. SEQ_ONE_KEY(KC_F) {
  147. tap_code16(G(KC_SLSH));
  148. }
  149. // Spotlight
  150. SEQ_ONE_KEY(KC_SPC) {
  151. tap_code16(G(KC_SPC));
  152. }
  153. // Auto format
  154. SEQ_ONE_KEY(KC_ENT) {
  155. tap_code16(S(G(A(KC_F))));
  156. }
  157. }
  158. }