1 #include QMK_KEYBOARD_H
4 #define _QWERTY 0 // Base qerty
5 #define _SYMB 1// Symbol layer
8 #define _SYMB2 4// old symbol level, more ergodox like
13 // Diagonal mouse movement
21 // Train out of using uncomfortable esc and GUI keys.
22 /****************************************************************************************************
24 * Keymap: Default Layer in Qwerty
26 * ,-------------------------------------------------------------------------------------------------------------------.
27 * | no | F1 | F2 | F3 | F4 | F5 | F6 | F8 | F9 | F10 | F12 | FN0 | FN1 | FN2 | | bOOT |
28 * |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------|
29 * | `~ | 1! | 2@ | 3# | 4$ | 5% | | 6^ | 7& | 8* | 9( | 0) | -_ |
30 * |--------+------+------+------+------+------| +------+------+------+------+------+--------|
31 * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \| |
32 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
33 * |MouseFN0| A | S | D | F | G | | H | J | K | L | ;: | '" |
34 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
35 * | Shift | Z | X | C | V | B | | N | M | ,< | .> | /? | Shift |
36 * `--------+------+------+------+------+------- `------+------+------+------+------+--------'
37 * | ~` | ESC |GUI/L |L1/RT | | L1/UP|GUI/DN| [{ | ]} |
38 * `---------------------------' `---------------------------'
39 * ,-------------. ,-------------.
40 * | CTRL | ALT | | ALT | GUI |
41 * ,------|------|------| |------+------+------.
42 * | | | Del | | PgUp | | |
43 * | BkSp | BkSp |------| |------|Return| Space|
44 * | | | FN0 | | PgDn | | |
45 * `--------------------' `--------------------'
48 const uint16_t PROGMEM keymaps
[][MATRIX_ROWS
][MATRIX_COLS
] = {
50 XXXXXXX
, KC_F1
,KC_F2
,KC_F3
,KC_F4
,KC_F5
,KC_F6
,KC_F7
,KC_F8
,
51 KC_GRAVE
, KC_1
,KC_2
,KC_3
,KC_4
,KC_5
,
52 KC_TAB
, KC_Q
,KC_W
,KC_E
,KC_R
,KC_T
,
53 TT(_MOUSE
) ,KC_A
,KC_S
,KC_D
,KC_F
,KC_G
,
54 KC_LSFT
,KC_Z
,KC_X
,KC_C
,KC_V
,KC_B
,
55 KC_GRAVE
, KC_ESC
, KC_FN4
, LT(_SYMB
, KC_RIGHT
),
58 KC_BSPC
, KC_DEL
,TT(_MOUSE
) ,
59 KC_F9
,KC_F10
,KC_F11
,KC_F12
,TT(_MOUSE
) ,KC_FN1
,TT(_SYMB
), KC_NO
, RESET
,
60 KC_6
,KC_7
,KC_8
,KC_9
,KC_0
,KC_MINS
,
61 KC_Y
,KC_U
,KC_I
,KC_O
,KC_P
,KC_BSLS
,
62 KC_H
,KC_J
,KC_K
,KC_L
,KC_SCLN
,KC_QUOT
,
63 KC_N
,KC_M
,KC_COMM
,KC_DOT
,KC_SLSH
,KC_RSFT
,
64 LT(_SYMB
, KC_UP
), KC_FN7
, KC_LBRC
,KC_RBRC
,
67 KC_PGDN
,KC_ENTER
,KC_SPC
71 /* _SYMB level, more planck like. Much work to make sequences into multi-finger rolls. eg ([1,0]), !=0
72 * Also sorted by frequency / strength of finger.
74 * ,-------------------------------------------------------------------------------------------------------------------.
75 * | | | | | | | | | | | | | | | | |
76 * |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------|
77 * | | | | | | | | | | | | | |
78 * |--------+------+------+------+------+------| +------+------+------+------+------+--------|
79 * | | ^ | { | } | @ | % | | & | [ | ( | ) | _ | \ |
80 * |--------+------+------+------+------+------| +------+------+------+------+------+--------|
81 * | | ! | # | 0 | = | ~ | | * | + | 1 | - | ] | ` |
82 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
83 * | | 6 | 7 | 8 | 9 | pipe | | $ | 2 | 3 | 4 | 5 | |
84 * `--------+------+------+------+------+------- `------+------+------+------+------+--------'
85 * | | : |GUI/L |L1/RT | | L1/UP|GUI/DN| \ | |
86 * `---------------------------' `---------------------------'
87 * ,-------------. ,-------------.
88 * | CTRL | | | ALT | GUI |
89 * ,------|------|------| |------+------+------.
91 * | Cut | Paste|------| |------| | |
92 * | | |Reset | | | | |
93 * `--------------------' `--------------------'
99 _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
,
100 _______
, _______
, _______
, _______
, _______
, _______
,
101 _______
, KC_CIRC
, KC_LCBR
, KC_RCBR
, KC_AT
, KC_PERC
,
102 _______
, KC_EXLM
, KC_HASH
, KC_0
, KC_EQL
, KC_TILD
,
103 _______
, KC_6
, KC_7
, KC_8
, KC_9
, KC_PIPE
,
104 _______
, KC_COLON
, KC_FN4
, LT(_SYMB
, KC_RIGHT
),
107 _______
, _______
, RESET
,
108 _______
, _______
, _______
, _______
, _______
, _______
, _______
, TT(_MOUSE
), KC_2
,
109 _______
, _______
, _______
, _______
, _______
, _______
,
110 KC_AMPR
, KC_LBRC
, KC_LPRN
, KC_RPRN
, KC_UNDS
, _______
,
111 KC_ASTR
, KC_PLUS
, KC_1
, KC_MINS
, KC_RBRC
, KC_GRV
,
112 KC_DLR
, KC_2
, KC_3
, KC_4
, KC_5
, XXXXXXX
,
113 LT(_SYMB
, KC_UP
), KC_FN7
, KC_BSLS
, XXXXXXX
,
116 _______
, _______
, _______
120 /* _SYMB2ol level, more ergodox like
122 * ,-------------------------------------------------------------------------------------------------------------------.
123 * | | | | | | | | | | | | | | | | |
124 * |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------|
125 * | | | * | # | | | | | | | | | |
126 * |--------+------+------+------+------+------| +------+------+------+------+------+--------|
127 * | | / | < | > | | | | | | + | * | | |
128 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
129 * | | | { | } | | | | | | = | - | | |
130 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
131 * | | = | ( | ) | | | | | | | | | | |
132 * `--------+------+------+------+------+------- `------+------+------+------+------+--------'
133 * | | |GUI/L |L1/RT | | L1/UP|GUI/DN| { | } |
134 * `---------------------------' `---------------------------'
135 * ,-------------. ,-------------.
136 * | CTRL | | | ALT | GUI |
137 * ,------|------|------| |------+------+------.
139 * | BkSp | Del |------| |------|Mouse1|Mouse2|
140 * | | |Reset | | |LClick|Rclick|
141 * `--------------------' `--------------------'
147 _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
,
148 _______
, _______
, KC_ASTR
, KC_HASH
, _______
, _______
,
149 _______
, KC_SLSH
, RSFT(KC_COMM
), RSFT(KC_DOT
), _______
, _______
,
150 _______
, _______
, RSFT(KC_LBRC
), RSFT(KC_RBRC
), _______
, _______
,
151 _______
, KC_EQL
, RSFT(KC_9
), RSFT(KC_0
), _______
, _______
,
152 _______
, _______
, KC_FN4
, LT(_SYMB
, KC_RIGHT
),
155 _______
, _______
, RESET
,
156 _______
, _______
, _______
, _______
, _______
, _______
, _______
, TT(_MOUSE
), KC_2
,
157 _______
, _______
, _______
, KC_ASTR
, _______
, _______
,
158 _______
, _______
, KC_PLUS
, KC_MINS
, _______
, _______
,
159 _______
, _______
, KC_EQL
, KC_PIPE
, _______
, _______
,
160 _______
, _______
, _______
, _______
, _______
, _______
,
161 LT(_SYMB
, KC_UP
), KC_FN7
, _______
, _______
,
164 _______
, _______
, _______
166 /* Keymap: Movement and function layer
168 * ,-------------------------------------------------------------------------------------------------------------------.
169 * | Caps | F1 | F2 | F3 | F4 | F5 | F6 | F8 | F9 | F10 | F12 | FN0 | FN1 | FN2 | Tada | bOOT |
170 * |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------|
171 * | =+ | ! | @ | # | $ | % | | ^ | & | * | ( | ) |MS Fast |
172 * |--------+------+------+------+------+------| +------+------+------+------+------+--------|
173 * | Tab | | | | |PgUp | | MwU |MS_UL | MS_U |MS_UR | | Ms Norm|
174 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
175 * |MouseFN1|GUI_V |GUI X |GUI C |GUI_V | | | | MS_L |Mouse1| MS_R | |MS Slow |
176 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
177 * | | | | | |PgDown| | MWD | MDown|MS Dwn|MS_DR | ? | |
178 * `--------+------+------+------+------+------- `------+------+------+------+------+--------'
179 * | `~ | ESC | | | | | | { | } |
180 * `---------------------------' `---------------------------'
181 * ,-------------. ,-------------.
182 * | CTRL | GUI | | ALT | GUI |
183 * ,------|------|------| |------+------+------.
184 * | | | Home | | PgUp | | |
185 * | BkSp | Del |------| |------|Mouse1|Mouse2|
186 * | | | End | | PgDn |LClick|Rclick|
187 * `--------------------' `--------------------'
192 KC_CAPS
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
,
193 _______
, KC_EXLM
,KC_AT
, KC_HASH
, KC_DLR
,KC_PERC
,
194 _______
, KC_NO
, KC_NO
, KC_UP
, KC_NO
, KC_PGUP
,
195 KC_FN1
, LGUI(KC_Z
),LGUI(KC_X
),LGUI(KC_C
),LGUI(KC_V
), KC_NO
,
196 _______
, KC_NO
, KC_NO
, KC_UP
, KC_NO
, KC_PGDN
,
197 _______
, _______
, KC_NO
, KC_NO
,
200 _______
, _______
, _______
,
201 _______
, _______
, _______
, _______
, _______
, _______
, _______
, TT(_MOUSE
),RESET
,
202 KC_CIRC
, KC_AMPR
, KC_ASTR
, KC_LPRN
, KC_RPRN
, KC_ACL2
,
203 KC_WH_U
, M(A_MUL
), KC_MS_U
, M(A_MUR
), KC_NO
, KC_ACL1
,
204 KC_NO
, KC_MS_L
, KC_MS_D
, KC_MS_R
, KC_NO
, KC_ACL0
,
205 KC_WH_D
, M(A_MDL
), KC_MS_D
, M(A_MDR
), RSFT(KC_LBRC
), RSFT(KC_RBRC
),
206 KC_LCBR
, KC_RCBR
, KC_NO
, KC_NO
,
209 _______
, KC_BTN1
, KC_BTN2
216 * ,-------------------------------------------------------------------------------------------------------------------.
217 * | | | | | | | | | | | | | | | | bOOT |
218 * |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------|
219 * | | | | | | | | | | | | | |
220 * |--------+------+------+------+------+------| +------+------+------+------+------+--------|
221 * | | | | | | | | | | | | | |
222 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
223 * | | | | | | | | | | | | | |
224 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
225 * | | | | | | | | | | | | | |
226 * `--------+------+------+------+------+------- `------+------+------+------+------+--------'
227 * | | | | | | | | | |
228 * `---------------------------' `---------------------------'
229 * ,-------------. ,-------------.
230 * | Ctrl | Alt | | Gui | Ctrl |
231 * ,------|------|------| |------+------+------.
232 * | | | Home | | PgUp | | |
233 * | BkSp | Del |------| |------|Mouse1|Mouse2|
234 * | | | End | | PgDn |LClick|Rclick|
235 * `--------------------' `--------------------'
241 _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
, _______
,
242 _______
, _______
, _______
, _______
, _______
, _______
,
243 _______
, _______
, _______
, _______
, _______
, _______
,
244 _______
, _______
, _______
, _______
, _______
, _______
,
245 _______
, _______
, _______
, _______
, _______
, _______
,
246 _______
, _______
, _______
, _______
,
249 _______
, _______
, _______
,
250 _______
, _______
, _______
, _______
, _______
, _______
, _______
, TT(_MOUSE
), KC_2
,
251 _______
, _______
, _______
, _______
, _______
, _______
,
252 _______
, _______
, _______
, _______
, _______
, _______
,
253 _______
, _______
, _______
, _______
, _______
, _______
,
254 _______
, _______
, _______
, _______
, _______
, _______
,
255 _______
, _______
, _______
, _______
,
258 _______
, _______
, _______
266 const uint16_t PROGMEM fn_actions
[] = {
267 [1] = ACTION_LAYER_TOGGLE(_MOUSE
) ,
268 [4]= ACTION_MODS_TAP_KEY(MOD_LGUI
,KC_LEFT
),
269 [7]= ACTION_MODS_TAP_KEY(MOD_LGUI
,KC_DOWN
),
274 const macro_t
*action_get_macro(keyrecord_t
*record
, uint8_t id
, uint8_t opt
)
276 // MACRODOWN only works in this function
279 if (record
->event
.pressed
) {
280 register_code(KC_RSFT
);
282 unregister_code(KC_RSFT
);
286 // from algernon's ErgoDox EZ layout,
288 if (record
->event
.pressed
) {
289 mousekey_on(KC_MS_UP
);
290 mousekey_on(KC_MS_LEFT
);
292 mousekey_off(KC_MS_UP
);
293 mousekey_off(KC_MS_LEFT
);
299 if (record
->event
.pressed
) {
300 mousekey_on(KC_MS_UP
);
301 mousekey_on(KC_MS_RIGHT
);
303 mousekey_off(KC_MS_UP
);
304 mousekey_off(KC_MS_RIGHT
);
310 if (record
->event
.pressed
) {
311 mousekey_on(KC_MS_DOWN
);
312 mousekey_on(KC_MS_LEFT
);
314 mousekey_off(KC_MS_DOWN
);
315 mousekey_off(KC_MS_LEFT
);
321 if (record
->event
.pressed
) {
322 mousekey_on(KC_MS_DOWN
);
323 mousekey_on(KC_MS_RIGHT
);
325 mousekey_off(KC_MS_DOWN
);
326 mousekey_off(KC_MS_RIGHT
);
335 void matrix_init_user(void) {
340 void matrix_scan_user(void) {
342 #ifdef ALVICSTEP_CONFIG_H
343 int8_t layer
= biton32(layer_state
);
347 if (!(host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK
))) {
354 if (!(host_keyboard_leds() & (1 << USB_LED_SCROLL_LOCK
))) {
356 scroll_lock_led_on();
369 bool process_record_user(uint16_t keycode
, keyrecord_t
*record
) {
373 void led_set_user(uint8_t usb_led
) {