]>
git.gir.st - tmk_keyboard.git/blob - keyboard/infinity_chibios/keymap_hasu.c
1 #include "keymap_common.h"
3 const uint8_t keymaps
[][MATRIX_ROWS
][MATRIX_COLS
] = {
4 /* Layer 0: Default Layer
5 * ,-----------------------------------------------------------.
6 * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| `|BSp|
7 * |-----------------------------------------------------------|
8 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
9 * |-----------------------------------------------------------|
10 * |Contro| A| S| D| F| G| H| J| K| L| ;| '|Enter |
11 * |-----------------------------------------------------------|
12 * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn0|
13 * |-----------------------------------------------------------'
14 * | |Gui|Alt | Space |Alt |Gui| | |
15 * `-----------------------------------------------------------'
18 KEYMAP(ESC
, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS
,EQL
, BSLS
,GRV
, \
19 TAB
, Q
, W
, E
, R
, T
, Y
, U
, I
, O
, P
, LBRC
,RBRC
,BSPC
, \
20 LCTL
,A
, S
, D
, F
, G
, H
, J
, K
, L
, FN3
, QUOT
,FN6
, \
21 FN7
, Z
, X
, C
, V
, B
, N
, M
, COMM
,DOT
, FN2
, RSFT
,FN1
, \
22 NO
, LGUI
,LALT
, FN4
, FN5
, RGUI
,NO
, NO
),
24 /* Layer 1: HHKB mode (HHKB Fn)
25 * ,-----------------------------------------------------------.
26 * |Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
27 * |-----------------------------------------------------------|
28 * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Backs|
29 * |-----------------------------------------------------------|
30 * | |VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter |
31 * |-----------------------------------------------------------|
32 * | | | | | | | +| -|End|PgD|Dow| | |
33 * `-----------------------------------------------------------'
34 * | |Gui|Alt | Space |Alt |Gui| | |
35 * `-----------------------------------------------------------'
38 KEYMAP(PWR
, F1
, F2
, F3
, F4
, F5
, F6
, F7
, F8
, F9
, F10
, F11
, F12
, INS
, DEL
, \
39 CAPS
,TRNS
,TRNS
,TRNS
,TRNS
,TRNS
,TRNS
,TRNS
,PSCR
,SLCK
,PAUS
, UP
, TRNS
,BSPC
, \
40 LCTL
,VOLD
,VOLU
,MUTE
,TRNS
,TRNS
,PAST
,PSLS
,HOME
,PGUP
,LEFT
,RGHT
,ENT
, \
41 LSFT
,TRNS
,TRNS
,TRNS
,TRNS
,TRNS
,PPLS
,PMNS
,END
, PGDN
,DOWN
,RSFT
,TRNS
, \
42 TRNS
,LGUI
,LALT
, TRNS
, RALT
,RGUI
,TRNS
,TRNS
),
44 /* Layer 2: Vi mode[Slash]
45 * ,-----------------------------------------------------------.
46 * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
47 * |-----------------------------------------------------------|
48 * |Tab |Hom|PgD|Up |PgU|End|Hom|PgD|PgUlEnd| | | |Backs|
49 * |-----------------------------------------------------------|
50 * |Contro| |Lef|Dow|Rig| |Lef|Dow|Up |Rig| | |Return |
51 * |-----------------------------------------------------------|
52 * |Shift | | | | | |Hom|PgD|PgUlEnd|Fn0|Shift | |
53 * `-----------------------------------------------------------'
54 * |Gui|Alt | Space |Alt |Gui|
55 * `-------------------------------------------'
58 KEYMAP(GRV
, F1
, F2
, F3
, F4
, F5
, F6
, F7
, F8
, F9
, F10
, F11
, F12
, INS
, DEL
, \
59 TAB
, HOME
,PGDN
,UP
, PGUP
,END
, HOME
,PGDN
,PGUP
,END
, NO
, NO
, NO
, BSPC
, \
60 LCTL
,NO
, LEFT
,DOWN
,RGHT
,NO
, LEFT
,DOWN
,UP
, RGHT
,NO
, NO
, ENT
, \
61 LSFT
,NO
, NO
, NO
, NO
, NO
, HOME
,PGDN
,PGUP
,END
, FN2
, RSFT
,TRNS
, \
62 TRNS
,LGUI
,LALT
, SPC
, RALT
,RGUI
,TRNS
,TRNS
),
64 /* Layer 3: Mouse mode(IJKL)[Semicolon]
65 * ,-----------------------------------------------------------.
66 * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
67 * |-----------------------------------------------------------|
68 * |Tab | | | | | |MwL|MwD|McU|MwU|MwR|Wbk|Wfr|Alt-T|
69 * |-----------------------------------------------------------|
70 * |Contro| | | | | |Mb2|McL|McD|McR|Fn | |Return |
71 * |-----------------------------------------------------------|
72 * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | |
73 * `-----------------------------------------------------------'
74 * |Gui |Alt | Mb1 |Fn |Fn |
75 * `--------------------------------------------'
76 * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel
79 KEYMAP(GRV
, F1
, F2
, F3
, F4
, F5
, F6
, F7
, F8
, F9
, F10
, F11
, F12
, INS
, DEL
, \
80 FN8
, NO
, NO
, NO
, NO
, NO
, WH_L
,WH_D
,MS_U
,WH_U
,WH_R
,FN9
, FN10
,FN8
, \
81 LCTL
,ACL0
,ACL1
,ACL2
,ACL2
,NO
, NO
, MS_L
,MS_D
,MS_R
,FN3
, NO
, ENT
, \
82 LSFT
,NO
, NO
, NO
, NO
, BTN3
,BTN2
,BTN1
,FN9
, FN10
,NO
, RSFT
,TRNS
, \
83 TRNS
,LGUI
,LALT
, BTN1
, TRNS
,TRNS
,TRNS
,TRNS
),
85 /* Layer 4: Mouse mode(IJKL)[Space]
86 * ,-----------------------------------------------------------.
87 * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
88 * |-----------------------------------------------------------|
89 * |Tab | | | | | |MwL|MwD|McU|MwU|MwR|Wbk|Wfr|Alt-T|
90 * |-----------------------------------------------------------|
91 * |Contro| | | | | |Mb2|McL|McD|McR|Mb1| |Return |
92 * |-----------------------------------------------------------|
93 * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | |
94 * `-----------------------------------------------------------'
95 * |Gui |Alt | Mb1 |Fn |Fn |
96 * `--------------------------------------------'
97 * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel
100 KEYMAP(GRV
, F1
, F2
, F3
, F4
, F5
, F6
, F7
, F8
, F9
, F10
, F11
, F12
, INS
, DEL
, \
101 FN8
, NO
, NO
, NO
, NO
, NO
, WH_L
,WH_D
,MS_U
,WH_U
,WH_R
,BTN4
,BTN5
,FN8
, \
102 LCTL
,VOLD
,VOLU
,MUTE
,NO
, NO
, NO
, MS_L
,MS_D
,MS_R
,BTN1
,NO
, ENT
, \
103 LSFT
,NO
, NO
, NO
, NO
, BTN3
,BTN2
,BTN1
,FN9
, FN10
,NO
, RSFT
,TRNS
, \
104 TRNS
,LGUI
,LALT
, TRNS
, TRNS
,TRNS
,TRNS
,TRNS
),
108 /* id for user defined functions */
120 * Fn action definition
122 const uint16_t fn_actions
[] = {
123 [0] = ACTION_DEFAULT_LAYER_SET(0), // Default layer(not used)
124 [1] = ACTION_LAYER_TAP_TOGGLE(1), // HHKB layer(toggle with 5 taps)
125 [2] = ACTION_LAYER_TAP_KEY(2, KC_SLASH
), // Cursor layer with Slash*
126 [3] = ACTION_LAYER_TAP_KEY(3, KC_SCLN
), // Mousekey layer with Semicolon*
127 [4] = ACTION_LAYER_TAP_KEY(4, KC_SPC
), // Mousekey layer with Space
128 [5] = ACTION_LAYER_MOMENTARY(4), // Mousekey layer(IJKL)
129 [6] = ACTION_MODS_TAP_KEY(MOD_RCTL
, KC_ENT
), // RControl with tap Enter
130 [7] = ACTION_MODS_ONESHOT(MOD_LSFT
), // Oneshot Shift
131 [8] = ACTION_MACRO(ALT_TAB
), // Application switching
132 [9] = ACTION_MODS_KEY(MOD_LALT
, KC_LEFT
),
133 [10] = ACTION_MODS_KEY(MOD_LALT
, KC_RIGHT
),
139 const macro_t
*action_get_macro(keyrecord_t
*record
, uint8_t id
, uint8_t opt
)
143 return (record
->event
.pressed
?
144 MACRO( I(0), T(H
), T(E
), T(L
), T(L
), W(255), T(O
), END
) :
147 return (record
->event
.pressed
?
148 MACRO( D(VOLU
), U(VOLU
), END
) :
151 return (record
->event
.pressed
?
152 MACRO( D(LALT
), D(TAB
), END
) :
153 MACRO( U(TAB
), END
));
161 * user defined action function
163 void action_function(keyrecord_t
*record
, uint8_t id
, uint8_t opt
)
165 if (record
->event
.pressed
) dprint("P"); else dprint("R");
166 dprintf("%d", record
->tap
.count
);
167 if (record
->tap
.interrupted
) dprint("i");
172 // Shift parentheses example: LShft + tap '('
173 // http://stevelosh.com/blog/2012/10/a-modern-space-cadet/#shift-parentheses
174 // http://geekhack.org/index.php?topic=41989.msg1304899#msg1304899
175 if (record
->event
.pressed
) {
176 if (record
->tap
.count
> 0 && !record
->tap
.interrupted
) {
177 if (record
->tap
.interrupted
) {
178 dprint("tap interrupted\n");
179 register_mods(MOD_BIT(KC_LSHIFT
));
182 register_mods(MOD_BIT(KC_LSHIFT
));
185 if (record
->tap
.count
> 0 && !(record
->tap
.interrupted
)) {
186 add_weak_mods(MOD_BIT(KC_LSHIFT
));
187 send_keyboard_report();
189 unregister_code(KC_9
);
190 del_weak_mods(MOD_BIT(KC_LSHIFT
));
191 send_keyboard_report();
192 record
->tap
.count
= 0; // ad hoc: cancel tap
194 unregister_mods(MOD_BIT(KC_LSHIFT
));