keymap.c 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. #include QMK_KEYBOARD_H
  2. enum chimera_ortho_layers
  3. {
  4. _BASE,
  5. _NAV,
  6. _SYM,
  7. _FUNC,
  8. _MOUSE
  9. };
  10. #define KC_NAV MO(_NAV)
  11. #define KC_SYM MO(_SYM)
  12. #define KC_FUNC MO(_FUNC)
  13. #define KC_MOUSE TT(_MOUSE)
  14. #define KC_DELSHFT SFT_T(KC_DEL)
  15. #define KC_CTLENT CTL_T(KC_ENT)
  16. #define KC_SYMSPC LT(_SYM, KC_SPC)
  17. #define KC_WK_LEFT LCA(KC_LEFT)
  18. #define KC_WK_DOWN LCA(KC_DOWN)
  19. #define KC_WK_UP LCA(KC_UP)
  20. #define KC_WK_RGHT LCA(KC_RGHT)
  21. #define KC_QUAKE LCTL(KC_GRAVE)
  22. #define LONGPRESS_DELAY 150
  23. // These are needed because of the 'KC_'-adding macro
  24. // This macro can be found in ../../chimera_ortho.h
  25. #define KC_RESET RESET
  26. #define KC_ KC_TRNS
  27. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  28. [_BASE] = LAYOUT_kc(
  29. //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------.
  30. LALT ,TAB ,QUOT ,COMM ,DOT ,P ,Y ,F ,G ,C ,R ,L ,SLSH ,FUNC
  31. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  32. ,LGUI ,ESC ,A ,O ,E ,U ,I ,D ,H ,T ,N ,S ,MINS ,MOUSE
  33. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  34. ,LCTL ,DELSHFT,SCLN ,Q ,J ,K ,X ,B ,M ,W ,V ,Z ,BSPC ,ENTER
  35. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  36. ,LSHIFT ,NAV ,SYMSPC ,CTLENT
  37. //\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/
  38. ),
  39. [_NAV] = LAYOUT_kc(
  40. //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------.
  41. , , , , , , , ,HOME ,PGDOWN ,PGUP ,END , ,
  42. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  43. , ,PSCR ,MENU , , , , , ,LEFT ,DOWN ,UP ,RIGHT , ,
  44. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  45. , ,CAPS ,NLCK ,INS , , , , ,WK_LEFT,WK_DOWN,WK_UP ,WK_RGHT, ,
  46. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  47. , , , ,
  48. //\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/
  49. ),
  50. [_SYM] = LAYOUT_kc(
  51. //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------.
  52. ,QUAKE ,GRAVE ,TILDE ,BSLASH ,PIPE ,LPRN ,RPRN ,7 ,8 ,9 ,SLSH ,EQUAL ,
  53. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  54. , , ,EXLM ,AT ,HASH ,DLR ,LCBR ,RCBR ,4 ,5 ,6 ,ASTR ,PLUS ,
  55. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  56. , , ,PERC ,CIRC ,AMPR ,ASTR ,LBRC ,RBRC ,1 ,2 ,3 ,MINUS , ,
  57. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  58. , , , ,0
  59. //\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/
  60. ),
  61. [_FUNC] = LAYOUT_kc(
  62. //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------.
  63. ,RESET ,SLEP ,MRWD ,MPLY ,MFFD , , ,F9 ,F10 ,F11 ,F12 , ,
  64. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  65. , , ,PWR ,MUTE ,VOLD ,VOLU , , ,F5 ,F6 ,F7 ,F8 , ,
  66. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  67. , , ,WAKE ,MPRV ,MPLY ,MNXT , , ,F1 ,F2 ,F3 ,F4 , ,
  68. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  69. , , , ,
  70. //\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/
  71. ),
  72. [_MOUSE] = LAYOUT_kc(
  73. //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------.
  74. , , , , , , , , , , , , ,
  75. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  76. , , , ,BTN1 ,BTN3 ,BTN2 , , ,MS_L ,MS_D ,MS_U ,MS_R , ,
  77. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  78. , , , ,ACL0 ,ACL1 ,ACL2 , , ,WH_L ,WH_D ,WH_U ,WH_R , ,
  79. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  80. , , , ,
  81. //\-------------------------------+-------+-------+-------/ \-------+-------+---------------------------------------/
  82. ),
  83. };
  84. // These control the color of the LED on the receiver
  85. // For color reference, see ../../chimera_ortho.h
  86. void matrix_scan_user(void) {
  87. uint8_t layer = biton32(layer_state);
  88. switch (layer) {
  89. case _BASE:
  90. set_led_cyan;
  91. break;
  92. case _NAV:
  93. set_led_blue;
  94. break;
  95. case _SYM:
  96. set_led_magenta;
  97. break;
  98. case _FUNC:
  99. set_led_yellow;
  100. default:
  101. set_led_white;
  102. break;
  103. }
  104. };