Advertisement
Guest User

keymap.c

a guest
Aug 22nd, 2019
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.86 KB | None | 0 0
  1. #include QMK_KEYBOARD_H
  2.  
  3. void matrix_init_user(){
  4. set_unicode_input_mode(UC_WINC);
  5. }
  6.  
  7. enum {
  8. TD_Z_CUT = 0,
  9. TD_C_COPY,
  10. TD_V_PASTE,
  11. TD_MEME,
  12. TD_MAKE,
  13. TD_CD,
  14. MEME
  15. };
  16.  
  17.  
  18.  
  19. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  20. [0] = LAYOUT_all(
  21. KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
  22. KC_TAB, TD(TD_CD), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL,
  23. LCTL_T(KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_PENT,
  24. KC_LSFT, KC_LSFT, TD(TD_Z_CUT), KC_X, TD(TD_C_COPY), TD(TD_V_PASTE), KC_B, KC_N, TD(TD_MAKE), KC_COMM, KC_DOT, KC_SLSH, KC_LEFT, KC_UP, KC_RGHT,
  25. KC_NO, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, MO(1), KC_NO, KC_DOWN, KC_NO
  26. ),
  27.  
  28. [1] = LAYOUT_all(
  29. KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO,
  30. KC_NO, MEME, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_BRTG, BL_INC, BL_TOGG, KC_BSLS,
  31. KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, RGB_TOG, RESET,
  32. KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLD, KC_MPLY, KC_VOLU,
  33. KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO
  34. ),
  35. };
  36.  
  37.  
  38. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  39. switch (keycode) {
  40. case MEME:
  41. if (record->event.pressed) {
  42. send_unicode_hex_string("0028 0020 0361 00B0 0020 035C 0296 0020 0361 00B0 0029");
  43. } else {
  44.  
  45. }
  46. break;
  47. }
  48. return true;
  49. }
  50.  
  51.  
  52. //TAPDANCE ACTIONs
  53.  
  54.  
  55. void dance_cut_finished (qk_tap_dance_state_t *state, void *user_data) {
  56. if (state->count == 2) {
  57. register_code (KC_LCTL);
  58. register_code (KC_X);
  59. } else {
  60. register_code (KC_Z);
  61. }
  62. }
  63.  
  64. void dance_cut_reset (qk_tap_dance_state_t *state, void *user_data) {
  65. if (state->count == 2) {
  66. unregister_code (KC_LCTL);
  67. unregister_code (KC_X);
  68. } else {
  69. unregister_code (KC_Z);
  70. }
  71. }
  72.  
  73.  
  74. void dance_copy_finished (qk_tap_dance_state_t *state, void *user_data) {
  75. if (state->count == 2) {
  76. register_code (KC_LCTL);
  77. register_code (KC_C);
  78. } else {
  79. register_code (KC_C);
  80. }
  81. }
  82.  
  83. void dance_copy_reset (qk_tap_dance_state_t *state, void *user_data) {
  84. if (state->count == 2) {
  85. unregister_code (KC_LCTL);
  86. unregister_code (KC_C);
  87. } else {
  88. unregister_code (KC_C);
  89. }
  90. }
  91.  
  92. void dance_paste_finished (qk_tap_dance_state_t *state, void *user_data) {
  93. if (state->count == 2) {
  94. register_code (KC_LCTL);
  95. register_code (KC_V);
  96. } else {
  97. register_code (KC_V);
  98. }
  99. }
  100.  
  101. void dance_paste_reset (qk_tap_dance_state_t *state, void *user_data) {
  102. if (state->count == 2) {
  103. unregister_code (KC_LCTL);
  104. unregister_code (KC_V);
  105. } else {
  106. unregister_code (KC_V);
  107. }
  108. }
  109.  
  110. void make_qmk (qk_tap_dance_state_t *state, void *user_data) {
  111. if (state->count == 3) {
  112. SEND_STRING("make xw60:kentlam"SS_TAP(X_ENTER));
  113. } else {
  114. register_code (KC_M);
  115. unregister_code (KC_M);
  116. reset_tap_dance (state);
  117. }
  118. }
  119.  
  120. void cd_qmk (qk_tap_dance_state_t *state, void *user_data) {
  121. if (state->count == 3) {
  122. SEND_STRING("cd /d/keyboard/qmk_firmware"SS_TAP(X_ENTER));
  123. } else {
  124. register_code (KC_Q);
  125. unregister_code (KC_Q);
  126. reset_tap_dance (state);
  127. }
  128. }
  129.  
  130.  
  131.  
  132. //Tap Dance Definitions
  133. qk_tap_dance_action_t tap_dance_actions[] = {
  134. //Seperate by ","
  135. [TD_Z_CUT] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, dance_cut_finished, dance_cut_reset)
  136. ,[TD_C_COPY] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, dance_copy_finished, dance_copy_reset)
  137. ,[TD_V_PASTE] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, dance_paste_finished, dance_paste_reset)
  138. ,[TD_MAKE] = ACTION_TAP_DANCE_FN (make_qmk)
  139. ,[TD_CD] = ACTION_TAP_DANCE_FN (cd_qmk)
  140. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement