Keyboard firmwares for Atmel AVR and Cortex-M
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.

actionmap_hasu.c 7.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. #include "actionmap.h"
  2. #include "action_code.h"
  3. #include "actionmap_common.h"
  4. /*
  5. * Actions
  6. */
  7. #define AC_LM1 ACTION_LAYER_MOMENTARY(1) // HHKB layer
  8. #define AC_LT1 ACTION_LAYER_TAP_KEY(1, KC_ENTER) // HHKB layer
  9. #define AC_LT2 ACTION_LAYER_TAP_KEY(2, KC_SLASH) // Cursor layer with Slash*
  10. #define AC_LT3 ACTION_LAYER_TAP_KEY(3, KC_SCLN) // Mousekey layer with Semicolon*
  11. #define AC_LT4 ACTION_LAYER_TAP_KEY(4, KC_SPC) // Space Fn
  12. #define AC_LM3 ACTION_LAYER_MOMENTARY(3) // Mousekey layer(IJKL)
  13. #define AC_APSW ACTION_MACRO(ALT_TAB) // Application switching
  14. #define AC_BACK ACTION_MODS_KEY(MOD_LALT, KC_LEFT)
  15. #define AC_FRWD ACTION_MODS_KEY(MOD_LALT, KC_RIGHT)
  16. #define AC_LM5 ACTION_LAYER_MOMENTARY(5)
  17. /*
  18. * Macro definition
  19. */
  20. enum macro_id {
  21. ALT_TAB,
  22. };
  23. const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
  24. {
  25. switch (id) {
  26. case ALT_TAB:
  27. return (record->event.pressed ?
  28. MACRO( D(LALT), D(TAB), END ) :
  29. MACRO( U(TAB), END ));
  30. }
  31. return MACRO_NONE;
  32. }
  33. const action_t PROGMEM actionmaps[][MATRIX_ROWS][MATRIX_COLS] = {
  34. /* Default Layer
  35. * ,-----------------------------------------------------------.
  36. * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \ |
  37. * |-----------------------------------------------------------|
  38. * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Bspc |
  39. * |-----------------------------------------------------------|
  40. * |Ctrl | A| S| D| F| G| H| J| K| L|Fn3| '|FN1 |
  41. * |-----------------------------------------------------------|
  42. * |Shift | Z| X| C| V| B| N| M| ,| .|Fn2|Shift |
  43. * |-----------------------------------------------------------|
  44. * |Ctrl |Gui |Alt | Space |Alt |Fn5 |Ctrl |
  45. * `-----------------------------------------------------------'
  46. */
  47. [0] = ACTIONMAP_AEK( \
  48. ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS, \
  49. TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \
  50. LCTL,A, S, D, F, G, H, J, K, L, LT3, QUOT,LT1, \
  51. LSFT,Z, X, C, V, B, N, M, COMM,DOT, LT2, RSFT, \
  52. LCTL,LGUI,LALT, LT4, LM5, LM3, LM1),
  53. /* HHKB mode[HHKB Fn]
  54. * ,-----------------------------------------------------------.
  55. * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| ` |
  56. * |-----------------------------------------------------------|
  57. * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Del |
  58. * |-----------------------------------------------------------|
  59. * |Contro|VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter |
  60. * |-----------------------------------------------------------|
  61. * |Shift | | | | | | +| -|End|PgD|Dow|Shift |
  62. * |-----------------------------------------------------------|
  63. * |Ctrl |Gui |Alt | Space |Alt |Fn5 |Ctrl |
  64. * `-----------------------------------------------------------'
  65. */
  66. [1] = ACTIONMAP_AEK( \
  67. PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, GRV, \
  68. CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS,UP, TRNS,DEL, \
  69. TRNS,VOLD,VOLU,MUTE,TRNS,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RGHT,TRNS, \
  70. TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PPLS,PMNS,END, PGDN,DOWN,TRNS, \
  71. TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS),
  72. /* Vi mode[Slash]
  73. * ,-----------------------------------------------------------.
  74. * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Del |
  75. * |-----------------------------------------------------------|
  76. * |Tab |Hom|PgD|Up |PgU|End|Hom|PgD|PgUlEnd| | | |Backs|
  77. * |-----------------------------------------------------------|
  78. * |Contro| |Lef|Dow|Rig| |Lef|Dow|Up |Rig| | |Return |
  79. * |-----------------------------------------------------------|
  80. * |Shift | | | | | |Hom|PgD|PgUlEnd|Fn0|Shift |
  81. * |-----------------------------------------------------------|
  82. * |Ctrl |Gui |Alt | Space |Alt |Fn5 |Ctrl |
  83. * `-----------------------------------------------------------'
  84. */
  85. [2] = ACTIONMAP_AEK( \
  86. GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, GRV, \
  87. TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, TRNS,TRNS,TRNS,DEL, \
  88. TRNS,TRNS,LEFT,DOWN,RGHT,TRNS,LEFT,DOWN,UP, RGHT,TRNS,TRNS,ENT, \
  89. TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,HOME,PGDN,PGUP,END, TRNS,TRNS, \
  90. TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS),
  91. /* Mouse mode(IJKL)[Semicolon]
  92. * ,-----------------------------------------------------------.
  93. * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
  94. * |-----------------------------------------------------------|
  95. * |Tab | | | | | |MwL|MwD|McU|MwU|MwR|Wbk|Wfr|Alt-T|
  96. * |-----------------------------------------------------------|
  97. * |Contro| | | | | |Mb2|McL|McD|McR|Fn | |Return |
  98. * |-----------------------------------------------------------|
  99. * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | |
  100. * |-----------------------------------------------------------|
  101. * |Ctrl |Gui |Alt | Space |Alt |Fn5 |Ctrl |
  102. * `-----------------------------------------------------------'
  103. * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel
  104. */
  105. [3] = ACTIONMAP_AEK( \
  106. GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, GRV, \
  107. TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,WH_D,MS_U,WH_U,RGHT,BACK,FRWD,APSW, \
  108. TRNS,ACL0,ACL1,ACL2,ACL2,NO, NO, MS_L,MS_D,MS_R,TRNS,TRNS,TRNS,\
  109. TRNS,TRNS,TRNS,TRNS,TRNS,BTN3,BTN2,BTN1,BACK,FRWD,TRNS,TRNS, \
  110. TRNS,TRNS,TRNS, BTN1, TRNS,TRNS,TRNS),
  111. /* Layer 4: Mouse mode(IJKL)[Space]
  112. * ,-----------------------------------------------------------.
  113. * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
  114. * |-----------------------------------------------------------|
  115. * |Tab | | | | | |MwL|MwD|McU|MwU|MwR|Wbk|Wfr|Alt-T|
  116. * |-----------------------------------------------------------|
  117. * |Contro| | | | | |Mb2|McL|McD|McR|Mb1| |Return |
  118. * |-----------------------------------------------------------|
  119. * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | |
  120. * |-----------------------------------------------------------|
  121. * |Ctrl |Gui |Alt | Space |Alt |Fn5 |Ctrl |
  122. * `-----------------------------------------------------------'
  123. * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel
  124. */
  125. [4] = ACTIONMAP_AEK( \
  126. GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, GRV, \
  127. APSW,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,WH_D,MS_U,WH_U,RGHT,BACK,FRWD,APSW, \
  128. TRNS,VOLD,VOLU,MUTE,TRNS,TRNS,TRNS,MS_L,MS_D,MS_R,BTN1,TRNS,ENT, \
  129. TRNS,TRNS,TRNS,TRNS,TRNS,BTN3,BTN2,BTN1,BACK,TRNS,TRNS,TRNS, \
  130. TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS),
  131. /* 40% */
  132. [5] = ACTIONMAP_AEK( \
  133. TRNS,1, 2, 3, 4, 5, 6, 7, 8, 9, 0, TRNS,TRNS,TRNS, \
  134. TRNS,s(1),s(2),s(3),s(4),s(5),s(6),s(7),s(8),s(9),s(0),TRNS,TRNS,TRNS, \
  135. TRNS,1, 2, 3, 4, 5, 6, 7, 8, 9, 0, TRNS,TRNS, \
  136. TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
  137. TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS),
  138. };