You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
3.8 KiB

  1. #include QMK_KEYBOARD_H
  2. #include "edvorakjp.h"
  3. /*
  4. * enum custom_keycodes {
  5. * KC_LOCK = NEW_SAFE_RANGE,
  6. * };
  7. */
  8. #define KC_ KC_TRNS
  9. #define KC_TMB1 KC_LA(TAB)
  10. #define KC_TMB2 KC_LS(SPC)
  11. #define KC_TMB3 TD(TD_LOWER) // act as LOWER when hold, as KC_LANG2(=English) when tapped
  12. #define KC_TMB4 TD(TD_RAISE) // act as RAISE when hold, as KC_LANG1(=Japanese) when tapped
  13. #define KC_TMB5 KC_RC(BSPC)
  14. #define KC_TMB6 KC_RG(ENT)
  15. #define KC_TMB7 KC_RC(DEL)
  16. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  17. [_EDVORAK] = LAYOUT_kc(
  18. //,----+----+-----+-----+-----+----. ,----+-----+-----+-----+----+----.
  19. GRV ,EXLM, AT ,HASH , DLR ,PERC, CIRC,AMPR ,ASTR ,LPRN ,RPRN,BSPC,
  20. //|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
  21. TAB ,QUOT,COMM , DOT , Y , Q , F , G , R , W , P ,BSLS,
  22. //|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
  23. EQL , A ,LA(O),LG(E),LC(I), U , D ,RS(T),RG(N),RA(S), M ,MINS,
  24. //|----+----+-----+-----+-----+----+----. ,----+----+-----+-----+-----+----+----|
  25. ESC ,SCLN, X , C , V , Z , NO , NO , H , J , K , L , B ,SLSH,
  26. //`----+----+-----+-----+-----+----+----/ \----+----+-----+-----+-----+----+----'
  27. TMB1,TMB2,TMB3, TMB4,TMB5,TMB6
  28. // `----+----+----' `----+----+----'
  29. ),
  30. [_LOWER] = LAYOUT_kc(
  31. //,----+----+------+------+------+----. ,----+------+------+-------+----+----.
  32. , , , , , , , , , , , ,
  33. //|----+----+------+------+------+----| |----+------+------+-------+----+----|
  34. , , LCBR , LBRC , LPRN , , , RPRN , RBRC , RCBR , , ,
  35. //|----+----+------+------+------+----| |----+------+------+-------+----+----|
  36. F1 , F2 ,LA(F3),LG(F4),LC(F5), F6 , F7 ,RS(F8),RG(F9),RA(F10),F11 ,F12 ,
  37. //|----+----+------+------+------+----+----. ,----+----+------+------+-------+----+----|
  38. PSCR, , HOME , PGDN , PGUP ,END , , ,LEFT, DOWN , UP , RGHT , , ,
  39. //`----+----+------+------+------+----+----/ \----+----+------+------+-------+----+----'
  40. , , NO , MAC ,TMB7,
  41. // `----+----+----' `----+----+----'
  42. ),
  43. [_RAISE] = LAYOUT_kc(
  44. //,----+----+-----+-----+-----+----. ,----+-----+-----+-----+----+----.
  45. , , , , , , , , , , , ,
  46. //|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
  47. , ,EXLM , AT ,HASH ,DLR , PERC,CIRC ,AMPR ,ASTR , , ,
  48. //|----+----+-----+-----+-----+----| |----+-----+-----+-----+----+----|
  49. , 1 ,LA(2),LG(3),LC(4), 5 , 6 ,RS(7),RG(8),RA(9), 0 , ,
  50. //|----+----+-----+-----+-----+----+----. ,----+----+-----+-----+-----+----+----|
  51. PSCR, ,HOME ,PGDN ,PGUP ,END , , ,LEFT,DOWN , UP ,RGHT , , ,
  52. //`----+----+-----+-----+-----+----+----/ \----+----+-----+-----+-----+----+----'
  53. , ,WIN , NO , ,
  54. // `----+----+----' `----+----+----'
  55. )
  56. };
  57. void matrix_init_keymap() {
  58. }
  59. #ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
  60. uint32_t layer_state_set_keymap(uint32_t state) {
  61. rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
  62. switch (biton32(state)) {
  63. case _LOWER:
  64. rgblight_sethsv_noeeprom_red();
  65. break;
  66. case _RAISE:
  67. rgblight_sethsv_noeeprom_blue();
  68. break;
  69. default: // for any other layers, or the default layer
  70. rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT + 3);
  71. get_japanese_mode() ? rgblight_sethsv_noeeprom_red() : rgblight_sethsv_noeeprom_green();
  72. break;
  73. }
  74. return state;
  75. }
  76. #endif