keymap.c 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. #include QMK_KEYBOARD_H
  2. #include "spacebarracecar.h"
  3. #define LOWER MO(_LOWER)
  4. #define RAISE MO(_RAISE)
  5. enum layers {
  6. _BASE,
  7. _RAISE,
  8. _LOWER,
  9. _MUSICMODE
  10. };
  11. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  12. /* Base
  13. ,-----------------------------------------------------------------------------------------------------------------------.
  14. |Tab |Q |W |E |R |T |Z |U |I |O |P |Backspace|
  15. |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
  16. |Esc/Nav |A |S |D |F |G |H |J |K |L |; |' |
  17. |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
  18. |Shift |Y |X |C |V |B |N |M |, |. |/ |Shift |
  19. |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
  20. |LCtrl | |Win |Alt |Lower |Space |Enter |Raise |AltGr |Win |Menu |RCtrl |
  21. `-----------------------------------------------------------------------------------------------------------------------'
  22. */
  23. [_BASE] = LAYOUT_ortho(
  24. KC_TAB, DE_Q, DE_W, DE_E, DE_R, DE_T, CU_Z, DE_U, DE_I, DE_O, DE_P, KC_BSPC,
  25. CU_NAV, DE_A, DE_S, DE_D, DE_F, DE_G, DE_H, DE_J, DE_K, DE_L, CU_SCLN, CU_QUOT,
  26. CU_LSFT, CU_Y, DE_X, DE_C, DE_V, DE_B, DE_N, DE_M, CU_COMM, CU_DOT, CU_SLSH, CU_RSFT,
  27. KC_LCTL, XXXXXXX, KC_LGUI, KC_LALT, LOWER, KC_SPC, CTLENT, RAISE, KC_RALT, KC_RGUI, KC_APP, KC_RCTL
  28. ),
  29. /* Lower
  30. ,-----------------------------------------------------------------------------------------------------------------------.
  31. |~ |! |" |# |$ |% |^ |& |* |( |) | |
  32. |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
  33. | |@ |Strg+X |Strg+C |Strg+V | | |_ |+ |{ |} || |
  34. |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
  35. | |? | | | | | | | | | | |
  36. |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
  37. | | | | | | | | | | | | |
  38. `-----------------------------------------------------------------------------------------------------------------------'
  39. */
  40. [_LOWER] = LAYOUT_ortho(
  41. DE_TILD, DE_EXLM, DE_DQUO, DE_HASH, DE_DLR, DE_PERC, CU_CIRC, DE_AMPR, DE_ASTR, DE_LPRN, DE_RPRN, _______,
  42. _______, DE_AT, CTRLX, CTRLC, CTRLV, XXXXXXX, XXXXXXX, DE_UNDS, DE_PLUS, DE_LCBR, DE_RCBR, DE_PIPE,
  43. _______, DE_EURO, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DE_MINS, CU_EQL, CU_LBRC, CU_RBRC, _______,
  44. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
  45. ),
  46. /* Raise
  47. ,-----------------------------------------------------------------------------------------------------------------------.
  48. |` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 | |
  49. |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
  50. | |F1 |F2 |F3 |F4 |F5 |F6 |- |= |[ |] |\ |
  51. |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
  52. | |F7 |F8 |F9 |F10 |F11 |F12 | | | | | |
  53. |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
  54. | | | | | | | | | | | | |
  55. `-----------------------------------------------------------------------------------------------------------------------'
  56. */
  57. [_RAISE] = LAYOUT_ortho(
  58. CU_GRV, DE_1, DE_2, CU_3, DE_4, DE_5, CU_6, CU_7, CU_8, CU_9, CU_0, _______,
  59. _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, DE_MINS, CU_EQL, CU_LBRC, CU_RBRC, CU_BSLS,
  60. _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, _______, _______, _______, _______,
  61. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
  62. ),
  63. /* Deadkey
  64. ,-----------------------------------------------------------------------------------------------------------------------.
  65. | | | | | | | |Ü | |Ö | | |
  66. |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
  67. | |Ä |ß | | | | | | | | | |
  68. |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
  69. | | | | | | | | | | | | |
  70. |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
  71. | | | | | |" |" | | | | | |
  72. `-----------------------------------------------------------------------------------------------------------------------'
  73. */
  74. [_DEADKEY] = LAYOUT_ortho(
  75. KC_TAB, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_UE, CU_ED, CU_OE, CU_ED, KC_BSPC,
  76. CU_NAV, CU_AE, CU_SS, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_DDQ,
  77. CU_LSFT, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_RSFT,
  78. KC_LCTL, XXXXXXX, KC_LGUI, KC_LALT, LOWER, CU_DDQ, CU_DDQ, RAISE, KC_RALT, KC_RGUI, KC_APP, KC_RCTL
  79. ),
  80. /* Navigation
  81. ,-----------------------------------------------------------------------------------------------------------------------.
  82. |ALT F4 |PageDown |Up |PageUp |Home | | | |Win+Up | | |Del |
  83. |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
  84. | |Left |Down |Right |End | | |Win+Left |Win+Down |Win+Right| |Enter |
  85. |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
  86. | |Prev |Pause |Next |LowerVol |RaiseVol |Mute | | | | | |
  87. |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
  88. |RESET |ESCT | | | | | | | | | |Game |
  89. `-----------------------------------------------------------------------------------------------------------------------'
  90. */
  91. [_NAV] = LAYOUT_ortho(
  92. _______, KC_PGDN, KC_UP, KC_PGUP, KC_HOME, XXXXXXX, XXXXXXX, XXXXXXX, GUIU, XXXXXXX, XXXXXXX, KC_DEL,
  93. _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, XXXXXXX, XXXXXXX, GUIL, GUID, GUIR, EMOJI, KC_ENT,
  94. _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, RGB_TOG, RGB_MOD, RGB_HUI, CU_RGBV, _______,
  95. RESET, CU_ESCT, ALTF4, _______, _______, KC_SPC, CTLENT, RGB_M_P, _______, _______, _______, CU_GAME
  96. )
  97. };
  98. bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
  99. switch (keycode) {
  100. case MO(_LOWER):
  101. if (game){
  102. if(record->event.pressed) {
  103. register_code(KC_SPC);
  104. } else {
  105. unregister_code(KC_SPC);
  106. }
  107. return false;
  108. } else {
  109. return true;
  110. }
  111. case KC_LALT:
  112. if (game) {
  113. if (record->event.pressed){
  114. layer_on(_RAISE);
  115. } else {
  116. layer_off(_RAISE);
  117. }
  118. return false;
  119. } else {
  120. return true;
  121. }
  122. default:
  123. return true;
  124. }
  125. }