keymap.c 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. /*
  2. tap danc eis turned on in the rules now...
  3. */
  4. #include QMK_KEYBOARD_H
  5. #define _EMOJI 0
  6. #define _TAPLAND 1
  7. #define _LEDCNTL 2
  8. enum custom_keycodes {
  9. SHRUG,
  10. DISFACE,
  11. FU,
  12. TFLIP,
  13. TFLIP2,
  14. SAD_EYES,
  15. TPUT,
  16. HAPPYFACE,
  17. HEARTFACE,
  18. CLOUD,
  19. CHANFACE,
  20. CMDCLEAR
  21. };
  22. //Tap Dance Declarations
  23. enum {
  24. TD_EXAMPLE1 = 0,
  25. TD_EXAMPLE2,
  26. TD_EXAMPLE3,
  27. TD_EXAMPLE4
  28. };
  29. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  30. /* EMOJI Pad
  31. * ,-------------------------------.
  32. * |TFLIP | TFlIP2|DISFACE| FU |
  33. * |------+-------+-------+--------|
  34. * | CLOUD| | | CLEAR |
  35. * |------+-------+-------+--------|
  36. * |SHRUG |DISFACE| HRTFAC| HAPPYF |
  37. * |------+-------+-------+--------|
  38. * | ENTER| |LEDCNTR| tapland|
  39. * `-------------------------------'
  40. */
  41. //purple
  42. [_EMOJI] = LAYOUT_ortho_4x4(
  43. TFLIP, TFLIP2, KC_NO, FU ,
  44. CLOUD, KC_NO, KC_NO, CMDCLEAR,
  45. SHRUG, DISFACE, HEARTFACE, HAPPYFACE,
  46. KC_ENT, RGB_TOG, MO(_LEDCNTL), MO(_TAPLAND)
  47. ),
  48. /* TapLand //
  49. * ,-------------------------------.
  50. * | str1 | str2 | str3 | str4 |
  51. * |------+-------+-------+--------|
  52. * | | | | |
  53. * |------+-------+-------+--------|
  54. * | | | | |
  55. * |------+-------+-------+--------|
  56. * | | | | |
  57. * `-------------------------------'
  58. */
  59. //blue
  60. [_TAPLAND] = LAYOUT_ortho_4x4(
  61. TD(TD_EXAMPLE1), TD(TD_EXAMPLE2), TD(TD_EXAMPLE3), TD(TD_EXAMPLE4),
  62. KC_NO, KC_NO, KC_NO, KC_NO,
  63. KC_NO, KC_NO, KC_NO, KC_NO,
  64. KC_NO, KC_NO, KC_NO, KC_NO
  65. ),
  66. /* LEDControl Pad
  67. * ,-------------------------------.
  68. * | snake|breathe|rainbow|gradient|
  69. * |------+-------+-------+--------|
  70. * | xmas | Val+ | Sat+ | HUE+ |
  71. * |------+-------+-------+--------|
  72. * |kngrdr| Val- | Sat- | HUE- |
  73. * |------+-------+-------+--------|
  74. * | swirl| PLAIN | | ON/OFF |
  75. * `-------------------------------'
  76. */
  77. //blue
  78. [_LEDCNTL] = LAYOUT_ortho_4x4(
  79. RGB_M_SN, RGB_M_B, RGB_M_R, RGB_M_G,
  80. RGB_M_X, RGB_VAI, RGB_SAI, RGB_HUI,
  81. RGB_M_K, RGB_VAD, RGB_SAD, RGB_HUD,
  82. RGB_M_SW, RGB_M_P, KC_NO, RGB_TOG
  83. ),
  84. };
  85. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  86. if (record->event.pressed) {
  87. switch(keycode) {
  88. case CLOUD: // (っ◕‿◕)っ
  89. if(record->event.pressed){
  90. send_unicode_hex_string("0028 3063 25D5 203F 25D5 0029 3063");
  91. }
  92. return false;
  93. break;
  94. case FU: // t(-_-t)
  95. if(record->event.pressed){
  96. SEND_STRING("t(-_-t)");
  97. }
  98. return false;
  99. break;
  100. case HAPPYFACE: // ʘ‿ʘ
  101. if(record->event.pressed){
  102. send_unicode_hex_string("0298 203F 0298");
  103. }
  104. return false;
  105. break;
  106. case CMDCLEAR:
  107. if (record->event.pressed) {
  108. register_code(KC_LGUI);
  109. tap_code(KC_A);
  110. unregister_code(KC_LGUI);
  111. tap_code(KC_DEL);
  112. }
  113. return false;
  114. break;
  115. case SHRUG: // ¯\_(ツ)_/¯
  116. if (record->event.pressed) {
  117. send_unicode_hex_string("00AF 005C 005F 0028 30C4 0029 005F 002F 00AF");
  118. }
  119. return false;
  120. break;
  121. case HEARTFACE: // ♥‿♥
  122. if(record->event.pressed){
  123. send_unicode_hex_string("2665 203F 2665");
  124. }
  125. return false;
  126. break;
  127. case DISFACE: // ಠ_ಠ
  128. if(record->event.pressed){
  129. send_unicode_hex_string("0CA0 005F 0CA0");
  130. }
  131. return false;
  132. break;
  133. case TFLIP: // (╯°□°)╯ ︵ ┻━┻
  134. if(record->event.pressed){
  135. send_unicode_hex_string("0028 256F 00B0 25A1 00B0 0029 256F 0020 FE35 0020 253B 2501 253B");
  136. }
  137. return false;
  138. break;
  139. case TFLIP2: // ┻━┻︵ \(°□°)/ ︵ ┻━┻
  140. if(record->event.pressed){
  141. send_unicode_hex_string("253B 2501 253B FE35 0020 005C 0028 00B0 25A1 00B0 0029 002F 0020 FE35 0020 253B 2501 253B");
  142. }
  143. return false;
  144. break;
  145. }
  146. }
  147. return true;
  148. }
  149. /* tap dance time */
  150. void tdexample1(qk_tap_dance_state_t *state, void *user_data) {
  151. if (state->count >= 2) {
  152. SEND_STRING(EXAMPLESTRING1);
  153. reset_tap_dance (state);
  154. }
  155. }
  156. void tdexample2(qk_tap_dance_state_t *state, void *user_data) {
  157. if (state->count >= 2) {
  158. SEND_STRING(EXAMPLESTRING2);
  159. reset_tap_dance (state);
  160. }
  161. }
  162. void tdexample3(qk_tap_dance_state_t *state, void *user_data) {
  163. if (state->count >= 2) {
  164. SEND_STRING(EXAMPLESTRING3);
  165. reset_tap_dance (state);
  166. }
  167. }
  168. void tdexample4(qk_tap_dance_state_t *state, void *user_data) {
  169. if (state->count >= 2) {
  170. SEND_STRING(EXAMPLESTRING4);
  171. reset_tap_dance (state);
  172. }
  173. }
  174. qk_tap_dance_action_t tap_dance_actions[] = {
  175. [TD_EXAMPLE1] = ACTION_TAP_DANCE_FN(tdexample1),
  176. [TD_EXAMPLE2] = ACTION_TAP_DANCE_FN(tdexample2),
  177. [TD_EXAMPLE3] = ACTION_TAP_DANCE_FN(tdexample3),
  178. [TD_EXAMPLE4] = ACTION_TAP_DANCE_FN(tdexample4)
  179. };
  180. // Runs just one time when the keyboard initializes.
  181. void matrix_scan_user(void) {
  182. static bool has_ran_yet;
  183. if (!has_ran_yet) {
  184. has_ran_yet = true;
  185. rgblight_setrgb (16, 0, 16);
  186. }
  187. }
  188. uint32_t layer_state_set_user(uint32_t state) {
  189. switch (biton32(state)) {
  190. case _TAPLAND:
  191. rgblight_setrgb(0, 16, 0); //green
  192. break;
  193. case _LEDCNTL:
  194. rgblight_setrgb(0, 0, 16); //blue
  195. break;
  196. case _EMOJI:
  197. rgblight_setrgb (16, 0, 16); //purple
  198. break;
  199. default: // for any other layers, or the default layer
  200. rgblight_setrgb (16, 0, 16); //purple
  201. break;
  202. }
  203. return state;
  204. }