keymap.c 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #include QMK_KEYBOARD_H
  2. #include "edvorakjp.h"
  3. /*
  4. * enum custom_keycodes {
  5. * KC_LOCK = NEW_SAFE_RANGE,
  6. * };
  7. */
  8. #define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
  9. #define __KC_TRNS_x6__ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
  10. // clang-format off
  11. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  12. [L_EDVORAKJP_BASE] = LAYOUT_wrapper(
  13. //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
  14. KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24,
  15. //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
  16. KC_GRV, __EDVORAKJP_BASE_L1__ , __EDVORAKJP_BASE_R1__ , KC_BSLS,
  17. //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
  18. KC_EQL, __EDVORAKJP_BASE_L2__ , __EDVORAKJP_BASE_R2__ , KC_MINS,
  19. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  20. KC_ESC, __EDVORAKJP_BASE_L3__ , XXXXXXX, XXXXXXX, __EDVORAKJP_BASE_R3__ , KC_SLSH,
  21. //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
  22. LA_TAB, LS_SPC,LOWER_TD, RAISE_TD, RC_BSPC, RG_ENT
  23. // └────────┴────────┴────────┘ └────────┴────────┴────────┘
  24. ),
  25. [L_EDVORAKJP_LOWER] = LAYOUT_wrapper(
  26. //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
  27. __KC_TRNS_x6__ , __KC_TRNS_x6__ ,
  28. //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
  29. XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_L__ , XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_R__ , XXXXXXX, XXXXXXX,
  30. //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
  31. __EDVORAKJP_FUNCTION_L__ , __EDVORAKJP_FUNCTION_R__ ,
  32. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  33. KC_PSCR, XXXXXXX, __EDVORAKJP_PAGE__ , XXXXXXX, XXXXXXX, __EDVORAKJP_CURSOR__ , XXXXXXX, XXXXXXX,
  34. //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
  35. KC_TRNS, KC_TRNS, XXXXXXX, KC_MAC, RC_DEL, KC_TRNS
  36. // └────────┴────────┴────────┘ └────────┴────────┴────────┘
  37. ),
  38. [L_EDVORAKJP_RAISE] = LAYOUT_wrapper(
  39. //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
  40. __KC_TRNS_x6__ , __KC_TRNS_x6__ ,
  41. //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
  42. XXXXXXX, XXXXXXX, __EDVORAKJP_SYMBOL_L__ , __EDVORAKJP_SYMBOL_R__ , XXXXXXX, XXXXXXX,
  43. //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
  44. XXXXXXX, __EDVORAKJP_NUMBER_L__ , __EDVORAKJP_NUMBER_R__ , XXXXXXX,
  45. //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
  46. KC_PSCR, XXXXXXX, __EDVORAKJP_PAGE__ , XXXXXXX, XXXXXXX, __EDVORAKJP_CURSOR__ , XXXXXXX, XXXXXXX,
  47. //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
  48. KC_TRNS, KC_TRNS, KC_WIN, XXXXXXX, KC_TRNS, KC_TRNS
  49. // └────────┴────────┴────────┘ └────────┴────────┴────────┘
  50. )
  51. };
  52. // clang-format on
  53. void matrix_init_keymap() {}
  54. #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
  55. uint32_t layer_state_set_keymap(uint32_t state) {
  56. rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
  57. switch (biton32(state)) {
  58. case L_EDVORAKJP_LOWER:
  59. rgblight_sethsv_noeeprom_red();
  60. break;
  61. case L_EDVORAKJP_RAISE:
  62. rgblight_sethsv_noeeprom_green();
  63. break;
  64. default: // for any other layers, or the default layer
  65. rgblight_mode(RGBLIGHT_MODE_STATIC_GRADIENT + 3);
  66. rgblight_sethsv_red();
  67. break;
  68. }
  69. return state;
  70. }
  71. #endif