logo

qmk_firmware

custom branch of QMK firmware git clone https://anongit.hacktivis.me/git/qmk_firmware.git

keymap.c (4466B)


  1. #include QMK_KEYBOARD_H
  2. #include "oled.c"
  3. // [Init Variables] ----------------------------------------------------------//
  4. // Tap Dance Enums Init
  5. enum {
  6. OP_QT = 0,
  7. CL_QT,
  8. TD_DQ,
  9. TL,
  10. };
  11. // Tap Dance Functions
  12. void tri_open(tap_dance_state_t *state, void *user_data) {
  13. if (state->count == 1) {
  14. tap_code16(KC_LPRN);
  15. } else if (state->count == 2) {
  16. tap_code(KC_LBRC);
  17. } else if (state->count == 3) {
  18. tap_code16(S(KC_LBRC));
  19. }
  20. }
  21. void tri_close(tap_dance_state_t *state, void *user_data) {
  22. if (state->count == 1) {
  23. tap_code16(KC_RPRN);
  24. } else if (state->count == 2) {
  25. tap_code(KC_RBRC);
  26. } else if (state->count == 3) {
  27. tap_code16(S(KC_RBRC));
  28. }
  29. }
  30. void dquote(tap_dance_state_t *state, void *user_data) {
  31. if (state->count == 1) {
  32. if (state->interrupted)
  33. tap_code(KC_QUOT);
  34. else if (state->pressed)
  35. tap_code(KC_QUOT);
  36. else
  37. tap_code16(KC_DQUO),
  38. tap_code(KC_SPC);
  39. }
  40. }
  41. void tilded(tap_dance_state_t *state, void *user_data) {
  42. if (state->count == 1) {
  43. if (state->interrupted)
  44. tap_code16(KC_TILD);
  45. else if (state->pressed)
  46. tap_code16(KC_TILD);
  47. else
  48. tap_code16(KC_AT);
  49. }
  50. }
  51. tap_dance_action_t tap_dance_actions[] = {
  52. [OP_QT] = ACTION_TAP_DANCE_FN(tri_open),
  53. [CL_QT] = ACTION_TAP_DANCE_FN(tri_close),
  54. [TD_DQ] = ACTION_TAP_DANCE_FN(dquote),
  55. [TL] = ACTION_TAP_DANCE_FN(tilded),
  56. };
  57. // [Layer Keymaps] -----------------------------------------------------------//
  58. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  59. [0] = LAYOUT(
  60. KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, KC_MINS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
  61. KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TD(OP_QT), TD(CL_QT), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
  62. KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, TD(TD_DQ),
  63. KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_CALC, KC_PSCR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
  64. KC_LCTL, KC_LGUI, KC_LALT, KC_DEL, LT(1,KC_BSPC), KC_SPC, KC_ENT, KC_ENT, KC_SPC, TD(TL), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
  65. ),
  66. [1] = LAYOUT(
  67. KC_ESC, 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_BSPC,
  68. KC_CAPS, KC_PDOT, KC_PPLS, KC_PMNS, KC_PAST, KC_PSLS, KC_MSEL, KC_MSTP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PWR, QK_BOOT,
  69. KC_TAB, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0, KC_SCRL, NK_ON, EE_CLR, KC_TRNS, KC_TRNS, KC_TRNS,
  70. KC_LSFT, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_MUTE, KC_MPLY, KC_NUM, NK_OFF, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  71. KC_LCTL, KC_LGUI, KC_LALT, KC_BSPC, KC_TRNS, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT, TO(2), KC_HOME, KC_PGDN, KC_PGUP, KC_END
  72. ),
  73. [2] = LAYOUT(
  74. KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
  75. KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_7, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
  76. KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
  77. KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_SPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
  78. KC_NO, KC_NO, KC_NO, KC_NO, KC_SPC, KC_SPC, KC_SPC, KC_NO, KC_NO, TO(3), KC_NO, KC_NO, KC_LALT, KC_TAB
  79. ),
  80. [3] = LAYOUT(
  81. KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
  82. KC_TAB, KC_A, KC_W, KC_E, KC_R, KC_T, KC_H, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
  83. KC_LSFT, KC_Z, KC_S, KC_D, KC_F, KC_G, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
  84. KC_LCTL, KC_NO, KC_X, KC_C, KC_V, KC_B, KC_M, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
  85. KC_NO, KC_NO, KC_NO, KC_NO, KC_SPC, KC_SPC, KC_Q, KC_NO, KC_NO, TO(0), KC_NO, KC_NO, KC_LALT, KC_TAB
  86. )
  87. };