keymap.c 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. #include QMK_KEYBOARD_H
  2. extern keymap_config_t keymap_config;
  3. #define _QWERTY 0
  4. #define _LOWER 1
  5. #define _RAISE 2
  6. #define _ADJUST 16
  7. enum custom_keycodes {
  8. QWERTY = SAFE_RANGE,
  9. LOWER,
  10. RAISE,
  11. ADJUST,
  12. };
  13. #define KC_ KC_TRNS
  14. #define _______ KC_TRNS
  15. #define KC_LOWR LOWER
  16. #define KC_RASE RAISE
  17. #define KC_RST RESET
  18. #define KC_BL_S BL_STEP
  19. #define KC_TGLW TG(_LOWER)
  20. #define KC_TGRS TG(_RAISE)
  21. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  22. [_QWERTY] = LAYOUT(
  23. KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,KC_BSPC,
  24. KC_TAB , KC_Q , KC_W ,KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P ,KC_MINS ,
  25. KC_LSFT, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L ,KC_SCLN,KC_QUOT,
  26. KC_LCTL, KC_Z , KC_X , KC_C , KC_V , KC_B ,KC_TGRS, KC_TGLW , KC_N , KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_BSLASH,
  27. KC_LGUI,KC_RASE,KC_SPC , KC_ENT ,KC_LOWR,KC_LALT
  28. ),
  29. [_LOWER] = LAYOUT(
  30. KC_TILD,KC_EXLM, KC_AT ,KC_HASH,KC_DLR ,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_BSPC,
  31. _______,_______,KC_PGUP,_______,_______,KC_LBRC, KC_RBRC, KC_P7 , KC_P8 , KC_P9 ,KC_PLUS,_______,
  32. _______ ,KC_HOME,KC_PGDN,KC_END,_______,KC_LPRN, KC_RPRN, KC_P4 , KC_P5 , KC_P6 ,KC_MINS,KC_PIPE,
  33. _______,_______,_______,_______,_______,_______,_______, _______ ,_______, KC_P1 , KC_P2 , KC_P3 ,KC_EQL ,KC_UNDS ,
  34. _______ ,_______,KC_DEL , KC_BSPC ,_______, KC_P0
  35. ),
  36. [_RAISE] = LAYOUT(
  37. KC_F12 , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 ,KC_F10 ,KC_F11 ,
  38. _______ ,_______, KC_UP ,_______,_______,KC_LBRC, KC_RBRC,_______,KC_NLCK,KC_INS ,KC_SLCK,KC_MUTE,
  39. _______ ,KC_LEFT,KC_DOWN,KC_RGHT,_______,KC_LPRN, KC_RPRN,KC_MPRV,KC_MPLY,KC_MNXT,_______,KC_VOLU,
  40. _______,_______,_______,_______,_______,_______,_______, KC_PLUS,_______,_______,_______,_______,_______,KC_VOLD,
  41. _______ ,_______,_______, KC_EQL,_______,_______
  42. ),
  43. [_ADJUST] = LAYOUT(
  44. //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------.
  45. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  46. //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
  47. RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______,
  48. //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
  49. RESET , DEBUG , RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______,
  50. //|--------+--------+--------+--------+--------+--------+--------. ,--------|--------+--------+--------+--------+--------+--------|
  51. BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  52. //`--------+--------+--------+----+---+--------+--------+--------/ \--------+--------+--------+---+----+--------+--------+--------'
  53. _______, _______, _______, _______, _______, _______
  54. // `--------+--------+--------' `--------+--------+--------'
  55. )
  56. };
  57. #ifdef AUDIO_ENABLE
  58. float tone_qwerty[][2] = SONG(QWERTY_SOUND);
  59. #endif
  60. void persistent_default_layer_set(uint16_t default_layer) {
  61. eeconfig_update_default_layer(default_layer);
  62. default_layer_set(default_layer);
  63. }
  64. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  65. switch (keycode) {
  66. case QWERTY:
  67. if (record->event.pressed) {
  68. #ifdef AUDIO_ENABLE
  69. PLAY_SONG(tone_qwerty);
  70. #endif
  71. persistent_default_layer_set(1UL<<_QWERTY);
  72. }
  73. return false;
  74. break;
  75. case LOWER:
  76. if (record->event.pressed) {
  77. layer_on(_LOWER);
  78. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  79. } else {
  80. layer_off(_LOWER);
  81. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  82. }
  83. return false;
  84. break;
  85. case RAISE:
  86. if (record->event.pressed) {
  87. layer_on(_RAISE);
  88. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  89. } else {
  90. layer_off(_RAISE);
  91. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  92. }
  93. return false;
  94. break;
  95. case ADJUST:
  96. if (record->event.pressed) {
  97. layer_on(_ADJUST);
  98. } else {
  99. layer_off(_ADJUST);
  100. }
  101. return false;
  102. break;
  103. }
  104. return true;
  105. }