2
0

keymap.c 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. // this is the style you want to emulate.
  2. // This is the canonical layout file for the Quantum project. If you want to add another keyboard,
  3. #include "telophase.h"
  4. // Each layer gets a name for readability, which is then used in the keymap matrix below.
  5. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
  6. // Layer names don't all need to be of the same length, obviously, and you can also skip them
  7. // entirely and just use numbers.
  8. enum telophase_layers
  9. {
  10. _QWERTY,
  11. _LOWER,
  12. _RAISE,
  13. _ADJUST,
  14. };
  15. enum telophase_keycodes
  16. {
  17. LOWER = SAFE_RANGE,
  18. RAISE,
  19. ADJUST
  20. };
  21. #define LONGPRESS_DELAY 150
  22. #define LAYER_TOGGLE_DELAY 300
  23. // Fillers to make layering more clear
  24. #define _______ KC_TRNS
  25. #define XXXXXXX KC_NO
  26. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  27. [_QWERTY] = { /*QWERTY*/
  28. {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC },
  29. {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT },
  30. {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
  31. {KC_LCTL, KC_LGUI, KC_LALT, ADJUST, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT }
  32. },
  33. [_LOWER] = { /*Lower*/
  34. {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL },
  35. {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE },
  36. {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______ },
  37. {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY }
  38. },
  39. [_RAISE] = { /*Raise*/
  40. {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL },
  41. {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS },
  42. {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______ },
  43. {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY }
  44. },
  45. [_ADJUST] = { /*Adjust*/
  46. {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
  47. {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
  48. {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
  49. {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }
  50. },
  51. };
  52. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  53. switch (keycode) {
  54. case LOWER:
  55. if (record->event.pressed) {
  56. layer_on(_LOWER);
  57. } else {
  58. layer_off(_LOWER);
  59. }
  60. return false;
  61. break;
  62. case RAISE:
  63. if (record->event.pressed) {
  64. layer_on(_RAISE);
  65. } else {
  66. layer_off(_RAISE);
  67. }
  68. return false;
  69. break;
  70. case ADJUST:
  71. if (record->event.pressed) {
  72. layer_on(_ADJUST);
  73. } else {
  74. layer_off(_ADJUST);
  75. }
  76. return false;
  77. break;
  78. }
  79. return true;
  80. }
  81. void matrix_scan_user(void) {
  82. return;
  83. };