aboutsummaryrefslogtreecommitdiff
path: root/keyboards/ergodox_ez/keymaps/pvinis/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/ergodox_ez/keymaps/pvinis/keymap.c')
-rw-r--r--keyboards/ergodox_ez/keymaps/pvinis/keymap.c330
1 files changed, 330 insertions, 0 deletions
diff --git a/keyboards/ergodox_ez/keymaps/pvinis/keymap.c b/keyboards/ergodox_ez/keymaps/pvinis/keymap.c
new file mode 100644
index 000000000..9943886e2
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/pvinis/keymap.c
@@ -0,0 +1,330 @@
1// pvinis ergodox ez
2// ,------------------------------------. ,------------------------------------.
3// | | | | | | | | | | | | | | | |
4// |------+----+----+----+----+---------| |----+----+----+----+----+----+------|
5// | | | | | | | | | | | | | | | |
6// |------+----+----+----x----x----| | | |----x----x----+----+----+------|
7// | | | | | | |----| |----| | | | | | |
8// |------+----+----+----x----x----| | | |----x----x----+----+----+------|
9// | | | | | | | | | | | | | | | |
10// `------+----+----+----+----+---------' `---------+----+----+----+----+------'
11// | | | | | | | | | | | |
12// `------------------------' `------------------------'
13// ,---------. ,---------.
14// | | | | | |
15// ,----+----+----| |----+----+----.
16// | | | | | | | |
17// | | |----| |----| | |
18// | | | | | | | |
19// `--------------' `--------------'
20
21
22#include QMK_KEYBOARD_H
23#include "pvinis.h"
24#include "mousekey.h"
25
26
27// layers
28enum {
29 MOUSE = 8,
30};
31
32// extra keys
33enum {
34 NONE = 30,
35 TD_LAYR, // SYSCTL and MOUSE layer switch
36};
37
38// application selection
39// this is sending ctrl-alt-gui-<key>, and this is picked up by hammerspoon
40#define AP_SLCK ALLM(KC_S)
41#define AP_XCOD ALLM(KC_X)
42#define AP_MSGR ALLM(KC_M)
43
44
45const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
46 // ,------------------------------------. ,------------------------------------.
47 // |4xFLSH| | | | | |Opt | | | | | | | | |
48 // |------+----+----+----+----+---------| |----+----+----+----+----+----+------|
49 // | Tab | | | | | | | | | | | | | | |
50 // |------+----+----+----x----x----| | | |----x----x----+----+----+------|
51 // |EscCtl| | | | | |----| |----| | | | | | Ent |
52 // |------+----+----+----x----x----| | | |----x----x----+----+----+------|
53 // |LShift| | | | | | | | | | | | | |RShift|
54 // `------+----+----+----+----+---------' `---------+----+----+----+----+------'
55 // | | | | |Cmd | | | | | | |
56 // `------------------------' `------------------------'
57 // ,---------. ,---------.
58 // |QWER| | | | |
59 // ,----+----+----| |----+----+----.
60 // | Ba | L | | | | | |
61 // | ck |Shi |----| |----| |Spc |
62 // | spc| ft | | | | | |
63 // `--------------' `--------------'
64 [LR_BASE] = LAYOUT_ergodox_pretty_wrapper(
65 TD_3FLS, _______, _______, _______, _______, _______, KC_LALT, _______, _______, _______, _______, _______, _______, _______,
66 KC_TAB , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
67 PV_ESCC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ENT ,
68 KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT,
69 _______, _______, _______, KC_LGUI, SYMBOL , SYSCTL , KC_RALT, _______, _______, _______,
70 QWERTY , CARPALX, _______, _______,
71 _______, _______,
72 KC_BSPC, _______, _______, _______, _______, KC_SPC
73 ),
74
75 // ,------------------------------------. ,------------------------------------.
76 // | | NUMBERS_L | | | - | NUMBERS_R | = |
77 // |------+----+----+----+----+---------| |----+----+----+----+----+----+------|
78 // | | | [ | | ] | | |
79 // |------+ | | | | +------|
80 // | | QWERTY_L |----| |----| QWERTY_R | |
81 // |------+ | ( | | ) | +------|
82 // | | | | | | | |
83 // `------+----+----+----+----+---------' `---------+----+----+----+----+------'
84 // | | ` | | | | | | | | ' | |
85 // `------------------------' `------------------------'
86 // ,---------. ,---------.
87 // | | | | | |
88 // ,----+----+----| |----+----+----.
89 // | | | | | | | |
90 // | | |----| |----| | |
91 // | | | | | | | |
92 // `--------------' `--------------'
93 // See `users/pvinis/pvinis.h`
94 [LR_QWERTY] = LAYOUT_ergodox_pretty_wrapper(
95 _______, ________________NUMBERS_L__________________, _______, KC_MINS, ________________NUMBERS_R__________________, KC_EQL ,
96 _______, _________________QWERTY_L1_________________, KC_LBRC, KC_RBRC, _________________QWERTY_R1_________________, _______,
97 _______, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, _______,
98 _______, _________________QWERTY_L3_________________, KC_LPRN, KC_RPRN, _________________QWERTY_R3_________________, _______,
99 _______, KC_GRV, _______, _______, _______, _______, _______, _______, KC_QUOT , _______,
100 _______, _______, _______, _______,
101 _______, _______,
102 _______, _______, _______, _______, _______, _______
103 ),
104
105 // ,------------------------------------. ,------------------------------------.
106 // | | NUMBERS_L | | | | NUMBERS_R | |
107 // |------+----+----+----+----+---------| |----+----+----+----+----+----+------|
108 // | | | | | | | |
109 // |------+ | | | | +------|
110 // | | CARPALX_L |----| |----| CARPALX_R | |
111 // |------+ | | | | +------|
112 // | | | | | | | |
113 // `------+----+----+----+----+---------' `---------+----+----+----+----+------'
114 // | | | | | | | | | | | |
115 // `------------------------' `------------------------'
116 // ,---------. ,---------.
117 // | | | | | |
118 // ,----+----+----| |----+----+----.
119 // | | | | | | | |
120 // | | |----| |----| | |
121 // | | | | | | | |
122 // `--------------' `--------------'
123 // See `users/pvinis/pvinis.h`
124 [LR_CARPALX] = LAYOUT_ergodox_pretty_wrapper(
125 _______, ________________NUMBERS_L__________________, _______, _______, ________________NUMBERS_R__________________, _______,
126 _______, ________________CARPALX_L1_________________, _______, _______, ________________CARPALX_R1_________________, _______,
127 _______, ________________CARPALX_L2_________________, ________________CARPALX_R2_________________, _______,
128 _______, ________________CARPALX_L3_________________, _______, _______, ________________CARPALX_R3_________________, _______,
129 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
130 _______, _______, _______, _______,
131 _______, _______,
132 _______, _______, _______, _______, _______, _______
133 ),
134
135 // See `users/pvinis/pvinis.h`
136 [LR_SYMBOL] = LAYOUT_ergodox_pretty_wrapper(
137 _______, ______________________F_L__________________, KC_F11 , KC_F12 , ______________________F_R__________________, _______,
138 _______, _________________SYMBOL_L1_________________, _______, _______, _________________SYMBOL_R1_________________, _______,
139 _______, _________________SYMBOL_L2_________________, _________________SYMBOL_R2_________________, _______,
140 _______, _________________SYMBOL_L3_________________, _______, _______, _________________SYMBOL_R3_________________, _______,
141 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
142 _______, _______, _______, _______,
143 _______, _______,
144 _______, _______, _______, _______, _______, _______
145 ),
146
147 // See `users/pvinis/pvinis.h`
148 [LR_SYSCTL] = LAYOUT_ergodox_pretty_wrapper(
149 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
150 _______, _______, _______, _______, _______, _______, _______, _______, _________________SYSCTL_R1_________________, _______,
151 _______, _______, _______, _______, _______, _______, _________________SYSCTL_R2_________________, _______,
152 _______, _______, _______, _______, _______, _______, _______, _______, _________________SYSCTL_R3_________________, _______,
153 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
154
155 _______, _______, _______, _______,
156 _______, _______,
157 _______, _______, _______, _______, _______, _______
158 ),
159
160 // See `users/pvinis/pvinis.h`
161 [LR_KBCTL] = LAYOUT_ergodox_pretty_wrapper(
162 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
163 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, __________________KBCTL_R1_________________, XXXXXXX,
164 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, __________________KBCTL_R2_________________, XXXXXXX,
165 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, __________________KBCTL_R3_________________, XXXXXXX,
166 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
167
168 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
169 XXXXXXX, XXXXXXX,
170 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
171 ),
172
173/* MOUSE
174 * a keymap to control my system.
175 *
176 * ,--------------------------------------------------. ,--------------------------------------------------.
177 * | ^ | | | | | | | | | | | | | | |
178 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
179 * | | | | | | | | | | | | MsUp | | | |
180 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
181 * | | | | | | |------| |------| |MsLeft| MsDn |MsRght| | |
182 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
183 * | | | | | | | | | | | | | | | |
184 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
185 * | | | | | | | | | | | |
186 * `----------------------------------' `----------------------------------'
187 * ,-------------. ,-------------.
188 * | | | | |MidClk|
189 * ,------|------|------| |------+------+------.
190 * | | | | | |Left |Right |
191 * | | |------| |------| Click| Click|
192 * | | | ^ | | | | |
193 * `--------------------' `--------------------'
194 */
195 [MOUSE] = LAYOUT_ergodox_pretty(
196 KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
197 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
198 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
199 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
200 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
201
202 ,KC_NO ,KC_NO
203 ,KC_NO
204 ,KC_NO ,KC_NO ,KC_TRNS
205
206 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
207 ,KC_NO ,KC_NO ,KC_NO ,KC_MS_U ,KC_NO ,KC_NO ,KC_NO
208 ,KC_NO ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_NO ,KC_NO
209 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
210 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
211
212 ,KC_NO ,KC_NO
213 ,KC_NO
214 ,KC_NO ,KC_NO ,KC_NO
215 ),
216};
217
218
219// keyboard initialization
220void keyboard_post_init_user_local(void) {
221 ergodox_led_all_on();
222 for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) {
223 ergodox_led_all_set(i);
224 wait_ms(5);
225 }
226 wait_ms(1000);
227 for (int i = LED_BRIGHTNESS_LO; i > 0; i--) {
228 ergodox_led_all_set(i);
229 wait_ms(10);
230 }
231 ergodox_led_all_off();
232
233 // restore default brightness for future use
234 ergodox_led_all_set(LED_BRIGHTNESS_HI);
235}
236
237// light up leds based on the layer
238uint32_t layer_state_set_user_local(uint32_t state) {
239 ergodox_right_led_1_off();
240 ergodox_right_led_2_off();
241 ergodox_right_led_3_off();
242 switch (biton32(state)) {
243 case LR_SYSCTL:
244 ergodox_right_led_3_on(); // blue
245 break;
246 case LR_KBCTL:
247 ergodox_right_led_1_on(); // red
248 break;
249 case LR_SYMBOL:
250 ergodox_right_led_2_on(); // green
251 break;
252 default: break;
253 }
254 return state;
255}
256
257// extra keys
258// const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
259 // switch (id) {
260 // }
261 // return MACRO_NONE;
262// }
263
264// tap dances
265
266// flash keyboard on 4x tap, with leds
267// void flash_each_tap(qk_tap_dance_state_t *state, void *user_data) {
268// switch (state->count) {
269// case 1:
270// ergodox_right_led_3_on();
271// break;
272// case 2:
273// ergodox_right_led_2_on();
274// break;
275// case 3:
276// ergodox_right_led_1_on();
277// break;
278// case 4:
279// ergodox_right_led_3_off();
280// wait_ms(50);
281// ergodox_right_led_2_off();
282// wait_ms(50);
283// ergodox_right_led_1_off();
284// break;
285// }
286// }
287
288// void flash_dance_finished(qk_tap_dance_state_t *state, void *user_data) {
289// if (state->count >= 4) {
290// reset_keyboard();
291// reset_tap_dance(state);
292// }
293// }
294
295// void flash_dance_reset(qk_tap_dance_state_t *state, void *user_data) {
296// ergodox_right_led_1_off();
297// wait_ms(50);
298// ergodox_right_led_2_off();
299// wait_ms(50);
300// ergodox_right_led_3_off();
301// }
302
303// SYSCTL on first tap, MOUSE ON second tap
304// void layers_dance_finished(qk_tap_dance_state_t *state, void *user_data) {
305// uint8_t layer = biton32(layer_state);
306
307// switch(state->count) {
308// case 1:
309// switch(layer) {
310// case LR_SYSCTL:
311// layer_off(LR_SYSCTL);
312// break;
313// case MOUSE:
314// layer_off(MOUSE);
315// break;
316// default:
317// layer_on(LR_SYSCTL);
318// break;
319// }
320// break;
321// case 2:
322// layer_on(MOUSE);
323// break;
324// }
325// }
326
327// qk_tap_dance_action_t tap_dance_actions[] = {
328 // [TD_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED( flash_each_tap, flash_dance_finished, flash_dance_reset ),
329 // [TD_LAYR] = ACTION_TAP_DANCE_FN_ADVANCED( NULL, layers_dance_finished, NULL ),
330// };