keymap.c 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. #include "infinity60.h"
  2. #include "led_controller.h"
  3. //Helpful Defines
  4. #define _______ KC_TRNS
  5. //Define Layer Names
  6. #define _BASE 0
  7. #define _NUMPAD 1
  8. #define _FNAV 2
  9. #define _MEDIA 3
  10. #define _TILDE 4
  11. const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  12. /* Layer 0: Default Layer
  13. * ,-----------------------------------------------------------.
  14. * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backs|
  15. * |-----------------------------------------------------------|
  16. * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
  17. * |-----------------------------------------------------------|
  18. * |CapsLo| A| S| D| F| G| H| J| K| L| ;| '|Enter |
  19. * |-----------------------------------------------------------|
  20. * |Shif| | Z| X| C| V| B| N| M| ,| .| /|Shift |
  21. * |-----------------------------------------------------------|
  22. * |Ctrl|Gui |Alt | Space |Alt |Gui | FN | Ctrl |
  23. * `-----------------------------------------------------------'
  24. */
  25. /* default */
  26. [_BASE] = KEYMAP( \
  27. KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSLS,KC_NO,\
  28. KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSPC, \
  29. TT(_FNAV), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_ENT, \
  30. F(1), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,KC_NO, \
  31. KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,TG(_NUMPAD),MO(_MEDIA), KC_RCTL \
  32. ),
  33. /* F-, arrow, and media keys */
  34. [_FNAV] = KEYMAP( \
  35. KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,KC_NO,\
  36. KC_CAPS,_______,_______,_______,_______,_______,_______,KC_PGUP,KC_UP,KC_PGDN,KC_PSCR,_______,_______,KC_DEL, \
  37. _______,M(0),KC_BTN2,_______,_______,_______,KC_HOME,KC_LEFT,KC_DOWN,KC_RGHT,KC_INS,_______,_______, \
  38. _______,KC_APP,KC_BTN1,KC_CALC,_______,_______,KC_END,_______,_______,_______,_______,_______,KC_NO, \
  39. _______,_______,_______, _______, F(0),KC_NLCK,_______,_______ \
  40. ),
  41. /* numpad */
  42. [_NUMPAD] = KEYMAP( \
  43. _______,_______,_______,_______,_______,_______,_______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______,_______,_______,KC_NO,\
  44. _______,_______,_______,_______,_______,_______,_______, KC_P4, KC_P5, KC_P6, KC_PAST, _______,_______,_______, \
  45. MO(_FNAV),_______,_______,_______,_______,_______,_______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______,_______, \
  46. _______,_______,_______,_______,_______,_______,_______, KC_P0,KC_COMM,KC_PDOT,KC_PPLS, _______,KC_NO, \
  47. _______,_______,_______, MO(_BASE), _______,_______,_______,_______ \
  48. ),
  49. /* media */
  50. [_MEDIA] = KEYMAP( \
  51. _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,KC_MUTE, KC_VOLD, KC_VOLU,_______,KC_NO,\
  52. _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,\
  53. _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______, \
  54. _______,_______,F(2),F(3),_______,_______,_______, _______, KC_MPRV, KC_MNXT,KC_MSTP, _______,KC_NO, \
  55. _______,_______,_______, KC_MPLY, _______,_______, _______,_______ \
  56. ),
  57. /* ~ */
  58. [_TILDE] = KEYMAP( \
  59. KC_GRV,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,KC_NO,\
  60. _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,\
  61. _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______, \
  62. _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,KC_NO, \
  63. _______,_______,_______, _______, _______,_______, _______,_______ \
  64. ),
  65. /* template */
  66. [5] = KEYMAP( \
  67. _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,KC_NO,\
  68. _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,\
  69. _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______, \
  70. _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,KC_NO, \
  71. _______,_______,_______, _______, _______,_______, _______,_______ \
  72. ),
  73. };
  74. //id for user defined functions and macros
  75. enum function_id {
  76. NONE,
  77. };
  78. enum macro_id {
  79. ACTION_LEDS_ALL,
  80. ACTION_LEDS_GAME
  81. };
  82. const uint16_t fn_actions[] = {
  83. [0] = ACTION_KEY(LALT(LCTL(KC_DEL))),
  84. [1] = ACTION_LAYER_MODS(_TILDE, MOD_LSFT),
  85. [2] = ACTION_FUNCTION(ACTION_LEDS_ALL),
  86. [3] = ACTION_FUNCTION(ACTION_LEDS_GAME)
  87. /* [1] = ACTION_FUNCTION(ACTION_LEDS_GAME),
  88. [4] = ACTION_USAGE_CONSUMER(0x1B4),
  89. [5] = ACTION_USAGE_CONSUMER(0x196),
  90. [6] = ACTION_USAGE_CONSUMER(0x1A6),
  91. [7] = ACTION_USAGE_CONSUMER(0x1A0)
  92. */
  93. };
  94. /* custom action function */
  95. void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
  96. (void)opt;
  97. switch(id) {
  98. case ACTION_LEDS_ALL:
  99. if(record->event.pressed) {
  100. // signal the LED controller thread
  101. chMBPost(&led_mailbox, LED_MSG_GAME_TOGGLE, TIME_IMMEDIATE);
  102. }
  103. break;
  104. case ACTION_LEDS_GAME:
  105. if(record->event.pressed) {
  106. // signal the LED controller thread
  107. chMBPost(&led_mailbox, LED_MSG_ALL_TOGGLE, TIME_IMMEDIATE);
  108. }
  109. break;
  110. }
  111. }
  112. const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
  113. {
  114. switch(id) {
  115. case 0:
  116. if (record->event.pressed) {
  117. }
  118. break;
  119. case 1:
  120. if (record->event.pressed) {
  121. }
  122. break;
  123. }
  124. return MACRO_NONE;
  125. };
  126. // Runs just one time when the keyboard initializes.
  127. void matrix_init_user(void) {
  128. led_controller_init();
  129. };
  130. // Runs constantly in the background, in a loop.
  131. void matrix_scan_user(void) {
  132. };