keymap_joe.c 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. #include "keymap_common.h"
  2. const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  3. [0] = KEYMAP( /* Joe colemak */
  4. ESC, Q, W, F, P, G, J, L, U, Y, SCLN, MINS,
  5. BSPC, A, R, S, T, D, H, N, E, I, O, ENT,
  6. TAB, Z, X, C, V, B, K, M, COMM, DOT, SLSH, QUOT,
  7. LCTL, LGUI, LALT, LSFT, FN1, SPC, FN0, LEFT, DOWN, UP, RGHT),
  8. [1] = KEYMAP( /* Joe qwerty */
  9. ESC, Q, W, E, R, T, Y, U, I, O, P, MINS,
  10. BSPC, A, S, D, F, G, H, J, K, L, SCLN, ENT,
  11. TAB, Z, X, C, V, B, N, M, COMM, DOT, SLSH, QUOT,
  12. LCTL, LGUI, LALT, LSFT, FN1, SPC, FN0, LEFT, DOWN, UP, RGHT),
  13. [2] = KEYMAP( /* Joe RAISE */
  14. F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12,
  15. DEL, FN10, FN11, FN12, FN13, FN14, FN15, FN16, FN17, FN18, FN19, TRNS,
  16. BSLS, FN5, FN6, TRNS, TRNS, MENU, CAPS, INS, PSCR, LBRC, RBRC, FN21,
  17. TRNS, TRNS, TRNS, TRNS, FN2, TRNS, FN0, FN26, FN27, FN28, FN29),
  18. [3] = KEYMAP( /* Joe LOWER */
  19. TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN7, FN8, FN9, FN30, FN31,
  20. DEL, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, TRNS,
  21. FN25, FN3, FN4, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN23, FN24, EQL,
  22. TRNS, TRNS, TRNS, TRNS, FN1, TRNS, FN2, HOME, PGDN, PGUP, END),
  23. [4] = KEYMAP( /* Joe LOWER + RAISE */
  24. TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
  25. TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
  26. TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
  27. TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, MNXT, VOLD, VOLU, MPLY),
  28. };
  29. enum macro_id {
  30. M_Q0,
  31. M_Q1,
  32. M_Q2,
  33. M_Q3,
  34. M_Q4
  35. };
  36. const uint16_t PROGMEM fn_actions[] = {
  37. [0] = ACTION_LAYER_MOMENTARY(2), // to Fn overlay
  38. [1] = ACTION_LAYER_MOMENTARY(3), // to Fn overlay
  39. [2] = ACTION_LAYER_MOMENTARY(4), // to Fn overlay
  40. [3] = ACTION_DEFAULT_LAYER_SET(0),
  41. [4] = ACTION_DEFAULT_LAYER_SET(1),
  42. [5] = ACTION_MODS_KEY(MOD_LCTL, KC_PGDN),
  43. [6] = ACTION_MODS_KEY(MOD_LCTL, KC_PGUP),
  44. [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1),
  45. [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2),
  46. [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3),
  47. [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4),
  48. [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5),
  49. [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6),
  50. [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7),
  51. [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8),
  52. [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9),
  53. [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0),
  54. [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS),
  55. [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL),
  56. [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV),
  57. [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC),
  58. [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC),
  59. [25] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS),
  60. [7] = ACTION_MACRO(M_Q0),
  61. [8] = ACTION_MACRO(M_Q1),
  62. [9] = ACTION_MACRO(M_Q2),
  63. [30] = ACTION_MACRO(M_Q3),
  64. [31] = ACTION_MACRO(M_Q4),
  65. [26] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT, KC_LEFT),
  66. [27] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT, KC_DOWN),
  67. [28] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT, KC_UP),
  68. [29] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT, KC_RGHT),
  69. };
  70. const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
  71. {
  72. keyevent_t event = record->event;
  73. switch (id) {
  74. case M_Q0:
  75. return event.pressed ?
  76. MACRO( D(LSFT), T(SCLN), U(LSFT), T(SLSH), END ) :
  77. MACRO_NONE;
  78. case M_Q1:
  79. return event.pressed ?
  80. MACRO( D(LSFT), T(SCLN), T(9), U(LSFT), END ) :
  81. MACRO_NONE;
  82. case M_Q2:
  83. return event.pressed ?
  84. MACRO( D(LSFT), T(0), T(SCLN), U(LSFT), END ) :
  85. MACRO_NONE;
  86. case M_Q3:
  87. return event.pressed ?
  88. MACRO( D(LSFT), T(9), T(SCLN), U(LSFT), END ) :
  89. MACRO_NONE;
  90. case M_Q4:
  91. return event.pressed ?
  92. MACRO( D(LSFT), T(SCLN), T(0), U(LSFT), END ) :
  93. MACRO_NONE;
  94. }
  95. return MACRO_NONE;
  96. }