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.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

keymap_hasu.c 8.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. #include "keymap_common.h"
  2. const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
  3. /* Layer 0: Default Layer
  4. * ,-----------------------------------------------------------.
  5. * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `|
  6. * |-----------------------------------------------------------|
  7. * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Backs|
  8. * |-----------------------------------------------------------|
  9. * |Contro| A| S| D| F| G| H| J| K| L|Fn3| '|Fn6 |
  10. * |-----------------------------------------------------------|
  11. * |Fn7 | Z| X| C| V| B| N| M| ,| .|Fn2|Shift |Fn1|
  12. * `-----------------------------------------------------------'
  13. * |Gui|Alt | Fn4 |Fn5 |Gui|
  14. * `-------------------------------------------'
  15. */
  16. [0] = \
  17. KEYMAP(
  18. ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK,
  19. ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
  20. TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9,
  21. LCTL,A, S, D, F, G, H, J, K, L, FN3, QUOT, FN6, P4, P5, P6, PPLS,
  22. FN7, Z, X, C, V, B, N, M, COMM,DOT, FN2, RSFT, UP, P1, P2, P3,
  23. LCTL,LGUI,LALT, FN4, RALT,FN5, FN5, FN1, LEFT,DOWN,RGHT, P0, PDOT,PENT
  24. ),
  25. /* Layer 1: HHKB mode[HHKB Fn]
  26. * ,-----------------------------------------------------------.
  27. * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
  28. * |-----------------------------------------------------------|
  29. * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Backs|
  30. * |-----------------------------------------------------------|
  31. * |Contro|VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter |
  32. * |-----------------------------------------------------------|
  33. * |Shift | | | | | | +| -|End|PgD|Dow|Shift | |
  34. * `-----------------------------------------------------------'
  35. * |Gui|Alt | Space |Alt |Gui|
  36. * `-------------------------------------------'
  37. */
  38. [1] = \
  39. KEYMAP(
  40. ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK,
  41. GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
  42. CAPS,NO, NO, NO, NO, NO, NO, NO, PSCR,SLCK,PAUS, UP, NO, BSLS, DEL, END, PGDN, P7, P8, P9,
  43. LCTL,VOLD,VOLU,MUTE,NO, NO, PAST,PSLS,HOME,PGUP,LEFT,RGHT, ENT, P4, P5, P6, PPLS,
  44. LSFT,NO, NO, NO, NO, NO, PPLS,PMNS,END, PGDN,DOWN, RSFT, UP, P1, P2, P3,
  45. LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, TRNS, LEFT,DOWN,RGHT, P0, PDOT,PENT
  46. ),
  47. /* Layer 2: Vi mode[Slash]
  48. * ,-----------------------------------------------------------.
  49. * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
  50. * |-----------------------------------------------------------|
  51. * |Tab |Hom|PgD|Up |PgU|End|Hom|PgD|PgUlEnd| | | |Backs|
  52. * |-----------------------------------------------------------|
  53. * |Contro| |Lef|Dow|Rig| |Lef|Dow|Up |Rig| | |Return |
  54. * |-----------------------------------------------------------|
  55. * |Shift | | | | | |Hom|PgD|PgUlEnd|Fn0|Shift | |
  56. * `-----------------------------------------------------------'
  57. * |Gui|Alt | Space |Alt |Gui|
  58. * `-------------------------------------------'
  59. */
  60. [2] = \
  61. KEYMAP(
  62. ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK,
  63. GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
  64. TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, NO, NO, NO, BSLS, DEL, END, PGDN, P7, P8, P9,
  65. LCTL,NO, LEFT,DOWN,RGHT,NO, LEFT,DOWN,UP, RGHT,NO, NO, ENT, P4, P5, P6, PPLS,
  66. LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, TRNS, RSFT, UP, P1, P2, P3,
  67. LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
  68. ),
  69. /* Layer 3: Mouse mode(IJKL)[Semicolon]
  70. * ,-----------------------------------------------------------.
  71. * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
  72. * |-----------------------------------------------------------|
  73. * |Tab | | | | | |MwL|MwD|McU|MwU|MwR|Wbk|Wfr|Alt-T|
  74. * |-----------------------------------------------------------|
  75. * |Contro| | | | | |Mb2|McL|McD|McR|Fn | |Return |
  76. * |-----------------------------------------------------------|
  77. * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | |
  78. * `-----------------------------------------------------------'
  79. * |Gui |Alt | Mb1 |Fn |Fn |
  80. * `--------------------------------------------'
  81. * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel8
  82. */
  83. [3] = \
  84. KEYMAP(
  85. ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK,
  86. GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, FN8, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
  87. FN8, NO, NO, NO, NO, NO, WH_L,WH_D,MS_U,WH_U,WH_R,WBAK,WFWD,FN8, DEL, END, PGDN, P7, P8, P9,
  88. LCTL,ACL0,ACL1,ACL2,ACL2,NO, NO, MS_L,MS_D,MS_R,TRNS,NO, ENT, P4, P5, P6, PPLS,
  89. LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,BTN4,BTN5,NO, RSFT, UP, P1, P2, P3,
  90. LCTL,LGUI,LALT, BTN1, RALT,TRNS,TRNS,RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
  91. ),
  92. /* Layer 5: Mouse mode(IJKL)[Space]
  93. * ,-----------------------------------------------------------.
  94. * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
  95. * |-----------------------------------------------------------|
  96. * |Tab | | | | | |MwL|MwD|McU|MwU|MwR|Wbk|Wfr|Alt-T|
  97. * |-----------------------------------------------------------|
  98. * |Contro| | | | | |Mb2|McL|McD|McR|Mb1| |Return |
  99. * |-----------------------------------------------------------|
  100. * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | |
  101. * `-----------------------------------------------------------'
  102. * |Gui |Alt | Mb1 |Fn |Fn |
  103. * `--------------------------------------------'
  104. * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel8
  105. */
  106. [4] = \
  107. KEYMAP(
  108. ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK,
  109. GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, FN8, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
  110. FN8, NO, NO, NO, NO, NO, WH_L,WH_D,MS_U,WH_U,WH_R,WBAK,WFWD,FN8, DEL, END, PGDN, P7, P8, P9,
  111. LCTL,ACL0,ACL1,ACL2,ACL2,NO, NO, MS_L,MS_D,MS_R,BTN1,NO, ENT, P4, P5, P6, PPLS,
  112. LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,BTN4,BTN5,NO, RSFT, UP, P1, P2, P3,
  113. LCTL,LGUI,LALT, TRNS, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
  114. ),
  115. };
  116. /*
  117. * Macro definition
  118. */
  119. enum macro_id {
  120. ALT_TAB,
  121. };
  122. const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
  123. {
  124. switch (id) {
  125. case ALT_TAB:
  126. return (record->event.pressed ?
  127. MACRO( D(LALT), D(TAB), END ) :
  128. MACRO( U(TAB), END ));
  129. }
  130. return MACRO_NONE;
  131. }
  132. /*
  133. * Fn action definition
  134. */
  135. #ifdef KEYMAP_SECTION_ENABLE
  136. const uint16_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = {
  137. #else
  138. const uint16_t fn_actions[] PROGMEM = {
  139. #endif
  140. [0] = ACTION_DEFAULT_LAYER_SET(0), // Default layer(not used)
  141. [1] = ACTION_LAYER_TAP_TOGGLE(1), // HHKB layer(toggle with 5 taps)
  142. [2] = ACTION_LAYER_TAP_KEY(2, KC_SLASH), // Cursor layer with Slash*
  143. [3] = ACTION_LAYER_TAP_KEY(3, KC_SCLN), // Mousekey layer with Semicolon*
  144. [4] = ACTION_LAYER_TAP_KEY(4, KC_SPC), // Mousekey layer with Space
  145. [5] = ACTION_LAYER_MOMENTARY(3), // Mousekey layer
  146. [6] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENT), // RControl with tap Enter
  147. [7] = ACTION_MODS_ONESHOT(MOD_LSFT), // Oneshot Shift
  148. [8] = ACTION_MACRO(ALT_TAB), // Application switching
  149. };