Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
Repozitorijs ir arhivēts. Tam var aplūkot failus un to var klonēt, bet nevar iesūtīt jaunas izmaiņas, kā arī atvērt jaunas problēmas/izmaiņu pieprasījumus.

pirms 13 gadiem
pirms 13 gadiem
pirms 13 gadiem
pirms 11 gadiem
pirms 11 gadiem
pirms 13 gadiem
pirms 13 gadiem
pirms 11 gadiem
pirms 11 gadiem
pirms 11 gadiem
pirms 11 gadiem
pirms 11 gadiem
pirms 11 gadiem
pirms 11 gadiem
pirms 11 gadiem
pirms 11 gadiem
pirms 13 gadiem
pirms 11 gadiem
pirms 11 gadiem
pirms 11 gadiem
pirms 11 gadiem
pirms 11 gadiem
pirms 11 gadiem
pirms 11 gadiem
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  1. /*
  2. * Hasu: my personal keymap
  3. */
  4. #include "keymap_common.h"
  5. #ifdef KEYMAP_SECTION_ENABLE
  6. const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] __attribute__ ((section (".keymap.keymaps"))) = {
  7. #else
  8. const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
  9. #endif
  10. /* Layer 0: Default Layer
  11. * ,-----------------------------------------------------------.
  12. * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `|
  13. * |-----------------------------------------------------------|
  14. * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Backs|
  15. * |-----------------------------------------------------------|
  16. * |Contro| A| S| D| F| G| H| J| K| L|Fn3| '|Fn4 |
  17. * |-----------------------------------------------------------|
  18. * |Fn5 | Z| X| C| V| B| N| M| ,| .|Fn2|Shift |Fn1|
  19. * `-----------------------------------------------------------'
  20. * |Gui|Alt | Fn6 |Alt |Fn7|
  21. * `-------------------------------------------'
  22. */
  23. KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS,GRV, \
  24. TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \
  25. LCTL,A, S, D, F, G, H, J, K, L, FN3, QUOT,FN4, \
  26. FN5, Z, X, C, V, B, N, M, COMM,DOT, FN2, RSFT,FN1, \
  27. LGUI,LALT, FN6, RALT,RGUI),
  28. /* Layer 1: HHKB mode (HHKB Fn)
  29. * ,-----------------------------------------------------------.
  30. * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
  31. * |-----------------------------------------------------------|
  32. * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Backs|
  33. * |-----------------------------------------------------------|
  34. * |Contro|VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter |
  35. * |-----------------------------------------------------------|
  36. * |Shift | | | | | | +| -|End|PgD|Dow|Shift | |
  37. * `-----------------------------------------------------------'
  38. * |Gui|Alt | Space |Alt |Gui|
  39. * `-------------------------------------------'
  40. */
  41. KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \
  42. CAPS,NO, NO, NO, NO, NO, NO, NO, PSCR,SLCK,PAUS, UP, NO, BSPC, \
  43. LCTL,VOLD,VOLU,MUTE,NO, FN9, PAST,PSLS,HOME,PGUP,LEFT,RGHT,ENT, \
  44. LSFT,NO, NO, NO, NO, NO, PPLS,PMNS,END, PGDN,DOWN,RSFT,TRNS, \
  45. LGUI,LALT, SPC, RALT,RGUI),
  46. /* Layer 2: Vi mode (Slash)
  47. * ,-----------------------------------------------------------.
  48. * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
  49. * |-----------------------------------------------------------|
  50. * |Tab |Hom|PgD|Up |PgU|End|Hom|PgD|PgUlEnd| | | |Backs|
  51. * |-----------------------------------------------------------|
  52. * |Contro| |Lef|Dow|Rig| |Lef|Dow|Up |Rig| | |Return |
  53. * |-----------------------------------------------------------|
  54. * |Shift | | | | | |Hom|PgD|PgUlEnd|Fn0|Shift | |
  55. * `-----------------------------------------------------------'
  56. * |Gui|Alt | Space |Alt |Gui|
  57. * `-------------------------------------------'
  58. */
  59. KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \
  60. TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, NO, NO, NO, BSPC, \
  61. LCTL,NO, LEFT,DOWN,RGHT,NO, LEFT,DOWN,UP, RGHT,NO, NO, ENT, \
  62. LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, TRNS,RSFT,NO, \
  63. LGUI,LALT, SPC, RALT,RGUI),
  64. /* Layer 3: Mouse mode (Semicolon)
  65. * ,-----------------------------------------------------------.
  66. * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
  67. * |-----------------------------------------------------------|
  68. * |Tab | | | | | |MwL|MwD|MwU|MwR| | | |Backs|
  69. * |-----------------------------------------------------------|
  70. * |Contro| | | | | |McL|McD|McU|McR|Fn0| |Return |
  71. * |-----------------------------------------------------------|
  72. * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | |
  73. * `-----------------------------------------------------------'
  74. * |Gui |Alt | Mb1 |Alt |Fn0|
  75. * `--------------------------------------------'
  76. * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel
  77. */
  78. KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \
  79. TAB, NO, NO, NO, NO, NO, WH_L,WH_D,WH_U,WH_R,NO, NO, NO, BSPC, \
  80. LCTL,NO, ACL0,ACL1,ACL2,NO, MS_L,MS_D,MS_U,MS_R,TRNS,QUOT,ENT, \
  81. LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,BTN4,BTN5,SLSH,RSFT,NO, \
  82. LGUI,LALT, BTN1, RALT,TRNS),
  83. /* Layer 4: Matias half-qwerty keyboard style (Space)
  84. * ,-----------------------------------------------------------.
  85. * | -| 0| 9| 8| 7| 6| 5| 4| 3| 2| 1| | | |Esc|
  86. * |-----------------------------------------------------------|
  87. * |Backs| P| O| I| U| Y| T| R| E| W| Q| | |Tab |
  88. * |-----------------------------------------------------------|
  89. * |Contro| ;| L| K| J| H| G| F| D| S| A|Con|Control |
  90. * |-----------------------------------------------------------|
  91. * |Shift | /| .| ,| M| N| B| V| C| X| Z|Shift | |
  92. * `-----------------------------------------------------------'
  93. * |Gui |Alt | Fn0 |Alt |Gui|
  94. * `--------------------------------------------'
  95. */
  96. KEYMAP(MINS,0, 9, 8, 7, 6, 5, 4, 3, 2, 1, NO, NO, NO, ESC, \
  97. BSPC,P, O, I, U, Y, T, R, E, W, Q, NO, NO, TAB, \
  98. LCTL,SCLN,L, K, J, H, G, F, D, S, A, RCTL,RCTL, \
  99. LSFT,SLSH,DOT, COMM,M, N, B, V, C, X, Z, RSFT,NO, \
  100. LGUI,LALT, TRNS, RALT,RGUI),
  101. /* Layer5: another Mouse mode (Space)
  102. * ,-----------------------------------------------------------.
  103. * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
  104. * |-----------------------------------------------------------|
  105. * |Tab | | | | | |MwL|MwD|MwU|MwR| |Wbk|Wfr|Close|
  106. * |-----------------------------------------------------------|
  107. * |Contro| | | | | |McL|McD|McU|McR|Fn0| |Return |
  108. * |-----------------------------------------------------------|
  109. * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | |
  110. * `-----------------------------------------------------------'
  111. * |Gui |Alt | Fn0 |Alt |Fn0|
  112. * `--------------------------------------------'
  113. * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel
  114. */
  115. KEYMAP(ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \
  116. TAB, NO, NO, NO, NO, NO, WH_L,WH_D,WH_U,WH_R,WSTP,WBAK,WFWD,FN8, \
  117. LCTL,NO, ACL0,ACL1,ACL2,NO, MS_L,MS_D,MS_U,MS_R,NO, NO, ENT, \
  118. LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,BTN4,BTN5,NO, RSFT,NO, \
  119. LGUI,LALT, TRNS, RALT,RGUI),
  120. };
  121. /* id for user defined functions */
  122. enum function_id {
  123. LSHIFT_LPAREN,
  124. RSHIFT_RPAREN,
  125. };
  126. enum macro_id {
  127. LSHIFT_PAREN,
  128. RSHIFT_PAREN,
  129. HELLO,
  130. VOLUP,
  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_MODS_TAP_KEY(MOD_RCTL, KC_ENT), // RControl with tap Enter*
  145. [5] = ACTION_MODS_ONESHOT(MOD_LSFT), // Oneshot Shift*
  146. [6] = ACTION_LAYER_TAP_KEY(5, KC_SPC), // Mousekey layer with Space
  147. [7] = ACTION_LAYER_TOGGLE(3), // Mousekey layer(toggle)
  148. [8] = ACTION_MODS_KEY(MOD_LCTL, KC_W), // Close Tab
  149. [9] = ACTION_MODS_KEY(MOD_LSFT, KC_4), // Shift stuck test
  150. // [8] = ACTION_LMOD_TAP_KEY(KC_LCTL, KC_BSPC), // LControl with tap Backspace
  151. // [9] = ACTION_LMOD_TAP_KEY(KC_LCTL, KC_ESC), // LControl with tap Esc
  152. [11] = ACTION_FUNCTION_TAP(LSHIFT_LPAREN), // Function: LShift with tap '('
  153. [12] = ACTION_FUNCTION_TAP(RSHIFT_RPAREN), // Function: RShift with tap ')'
  154. // [13] = ACTION_MACRO_TAP(LSHIFT_PAREN), // Macro: LShift with tap '('
  155. // [14] = ACTION_MACRO_TAP(RSHIFT_PAREN), // Macro: RShift with tap ')'
  156. // [15] = ACTION_MACRO(HELLO), // Macro: say hello
  157. // [9] = ACTION_MACRO(VOLUP), // Macro: media key
  158. };
  159. /*
  160. * Macro definition
  161. */
  162. const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
  163. {
  164. keyevent_t event = record->event;
  165. tap_t tap = record->tap;
  166. switch (id) {
  167. case LSHIFT_PAREN:
  168. if (tap.count > 0 && !tap.interrupted) {
  169. return (event.pressed ?
  170. MACRO( D(LSHIFT), D(9), U(9), U(LSHIFT), END ) : MACRO_NONE);
  171. } else {
  172. return (event.pressed ?
  173. MACRO( D(LSHIFT), END ) : MACRO( U(LSHIFT), END ) );
  174. }
  175. case RSHIFT_PAREN:
  176. if (tap.count > 0 && !tap.interrupted) {
  177. return (event.pressed ?
  178. MACRO( D(RSHIFT), D(0), U(0), U(RSHIFT), END ) : MACRO_NONE);
  179. } else {
  180. return (event.pressed ?
  181. MACRO( D(RSHIFT), END ) : MACRO( U(RSHIFT), END ) );
  182. }
  183. case HELLO:
  184. return (event.pressed ?
  185. MACRO( I(0), T(H), T(E), T(L), T(L), W(255), T(O), END ) :
  186. MACRO_NONE );
  187. case VOLUP:
  188. return (event.pressed ?
  189. MACRO( D(VOLU), U(VOLU), END ) :
  190. MACRO_NONE );
  191. }
  192. return MACRO_NONE;
  193. }
  194. /*
  195. * user defined action function
  196. */
  197. void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
  198. {
  199. keyevent_t event = record->event;
  200. tap_t tap = record->tap;
  201. switch (id) {
  202. case LSHIFT_LPAREN:
  203. // LShft + tap '('
  204. // NOTE: cant use register_code to avoid conflicting with magic key bind
  205. if (event.pressed) {
  206. if (tap.count == 0 || tap.interrupted) {
  207. //add_mods(MOD_BIT(KC_LSHIFT));
  208. layer_on(1);
  209. } else {
  210. add_mods(MOD_BIT(KC_LSHIFT));
  211. add_key(KC_9);
  212. send_keyboard_report();
  213. del_mods(MOD_BIT(KC_LSHIFT));
  214. del_key(KC_9);
  215. send_keyboard_report();
  216. }
  217. } else {
  218. if (tap.count == 0 || tap.interrupted) {
  219. //del_mods(MOD_BIT(KC_LSHIFT));
  220. layer_off(1);
  221. }
  222. }
  223. break;
  224. case RSHIFT_RPAREN:
  225. // RShift + tap ')'
  226. if (event.pressed) {
  227. if (tap.count == 0 || tap.interrupted) {
  228. add_mods(MOD_BIT(KC_RSHIFT));
  229. } else {
  230. add_mods(MOD_BIT(KC_RSHIFT));
  231. add_key(KC_0);
  232. send_keyboard_report();
  233. del_mods(MOD_BIT(KC_RSHIFT));
  234. del_key(KC_0);
  235. send_keyboard_report();
  236. }
  237. } else {
  238. if (tap.count == 0 || tap.interrupted) {
  239. del_mods(MOD_BIT(KC_RSHIFT));
  240. }
  241. }
  242. break;
  243. }
  244. }