keymap.c 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #include "gamenum.h"
  2. #include "action_layer.h"
  3. #include "eeconfig.h"
  4. #define _______ KC_TRNS
  5. #define DEF 0
  6. #define HDN 1
  7. #define OSY 2
  8. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  9. [DEF] = KEYMAP(
  10. KC_FN0, KC_SLSH, KC_ASTR, KC_MINS, \
  11. KC_7, KC_8, KC_9, KC_PLUS, \
  12. KC_4, KC_5, KC_6, \
  13. KC_1, KC_2, KC_3, \
  14. KC_0, KC_DOT, KC_ENT \
  15. ),
  16. [HDN] = KEYMAP(
  17. KC_FN1, KC_1, KC_2, KC_3, \
  18. KC_Q, KC_W, KC_E, KC_R, \
  19. KC_A, KC_S, KC_D, \
  20. KC_Z, KC_X, KC_C, \
  21. KC_LSFT, KC_LALT, KC_SPC \
  22. ),
  23. [OSY] = KEYMAP(
  24. KC_A, KC_Q, KC_1, KC_FN2, \
  25. KC_S, KC_W, KC_2, KC_LALT, \
  26. KC_D, KC_E, KC_3, \
  27. KC_F, KC_R, KC_4, \
  28. KC_SPC, KC_T, KC_TAB \
  29. )
  30. };
  31. const uint16_t PROGMEM fn_actions[] = {
  32. [0] = ACTION_LAYER_SET(HDN, ON_PRESS),
  33. [1] = ACTION_LAYER_SET(OSY, ON_PRESS),
  34. [2] = ACTION_LAYER_SET(DEF, ON_PRESS),
  35. };
  36. const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
  37. return MACRO_NONE;
  38. };
  39. bool process_record_user (uint16_t keycode, keyrecord_t *record) {
  40. switch(keycode) {
  41. case KC_FN0:
  42. if (record->event.pressed) {
  43. PORTC |= (1 << 6); // PC6 goes high
  44. }
  45. break;
  46. case KC_FN1:
  47. if (record->event.pressed) {
  48. PORTC &= ~(1 << 6); // PC6 goes high
  49. PORTD |= (1<<4);
  50. }
  51. break;
  52. case KC_FN2:
  53. if (record->event.pressed) {
  54. PORTD &= ~(1 << 4); // PC6 goes high
  55. }
  56. break;
  57. }
  58. return true;
  59. }