keymap.c 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #include QMK_KEYBOARD_H
  2. #include "bootloader.h"
  3. #ifdef PROTOCOL_LUFA
  4. #include "lufa.h"
  5. #include "split_util.h"
  6. #endif
  7. extern keymap_config_t keymap_config;
  8. extern uint8_t is_master;
  9. #define _QWERTY 0
  10. #define _LOWER 1
  11. #define _RAISE 2
  12. enum custom_keycodes {
  13. QWERTY = SAFE_RANGE,
  14. LOWER,
  15. RAISE
  16. };
  17. #define KC______ KC_TRNS
  18. #define KC_XXXXX KC_NO
  19. #define KC_LOWER LOWER
  20. #define KC_RAISE RAISE
  21. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  22. [_QWERTY] = LAYOUT_kc( \
  23. //,-----------------------------------------. ,-----------------------------------------.
  24. Q, W, E, R, T, ESC, DEL, Y, U, I, O, P,\
  25. //|------+------+------+------+------+------| |------+------+------+------+------+------|
  26. A, S, D, F, G, SPC, BSPC, H, J, K, L, SCLN,\
  27. //|------+------+------+------+------+------| |------+------+------+------+------+------|
  28. Z, X, C, V, B, TAB, ENT, N, M, COMM, DOT, SLSH,\
  29. //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
  30. LALT, LGUI, LCTL, LSFT, RAISE, LOWER \
  31. //`--------------------' `--------------------'
  32. ),
  33. [_LOWER] = LAYOUT_kc( \
  34. //,-----------------------------------------. ,------------------------------------------.
  35. 1, 2, 3, 4, 5, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\
  36. //|------+------+------+------+------+------| |-------+------+------+------+------+------|
  37. 6, 7, 8, 9, 0, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\
  38. //|------+------+------+------+------+------| |-------+------+------+------+------+------|
  39. EQL, PLUS, MINS, SLSH, ASTR, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\
  40. //|------+------+------+------+------+------+------| |------+-------+------+------+------+------+------|
  41. LALT, LGUI, LCTL, LSFT, RAISE, LOWER \
  42. //`--------------------' `--------------------'
  43. ),
  44. [_RAISE] = LAYOUT_kc( \
  45. //,-----------------------------------------. ,------------------------------------------.
  46. EXLM, AT, HASH, DLR, PERC, LPRN, RPRN, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\
  47. //|------+------+------+------+------+------| |-------+------+------+------+------+------|
  48. CIRC, AMPR, ASTR, QUOT, DQUO, LCBR, RCBR, LEFT, DOWN, UP, RIGHT, XXXXX,\
  49. //|------+------+------+------+------+------| |-------+------+------+------+------+------|
  50. BSLS, TILD, GRV, UNDS, PIPE, LBRC, RBRC, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\
  51. //|------+------+------+------+------+------+------| |------+-------+------+------+------+------+------|
  52. LALT, LGUI, LCTL, LSFT, RAISE, LOWER \
  53. //`--------------------' `--------------------'
  54. )
  55. };
  56. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  57. switch (keycode) {
  58. case LOWER:
  59. if (record->event.pressed) {
  60. layer_on(_LOWER);
  61. } else {
  62. layer_off(_LOWER);
  63. }
  64. return false;
  65. break;
  66. case RAISE:
  67. if (record->event.pressed) {
  68. layer_on(_RAISE);
  69. } else {
  70. layer_off(_RAISE);
  71. }
  72. return false;
  73. break;
  74. }
  75. return true;
  76. }