aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavlos Vinieratos <pvinis@gmail.com>2019-05-14 21:02:22 +0200
committerDrashna Jaelre <drashna@live.com>2019-05-14 12:02:22 -0700
commitb68d8fe82eac0be9ca8862fdf94ae4bfbbb0735e (patch)
tree788dc925e12ec699f192dcde04096b96abde4da6
parent4cdb86c730528c8ca5ff90f5b9b01c395d31fc0e (diff)
downloadqmk_firmware-b68d8fe82eac0be9ca8862fdf94ae4bfbbb0735e.tar.gz
qmk_firmware-b68d8fe82eac0be9ca8862fdf94ae4bfbbb0735e.zip
[Keymap] Pvinis master (#5843)
* trying to make my global keymap * refactoring the old keymap using userspace * getting there * move readme and remove community layout * use pragma once instead of ifndefs * just make iris work * iris decent * better naming * add some modifiers on the home row * use symbol and sysctl layers * fix up * a bit faster * add < and > on symbol layer * apparently im not using z all that much.. * okok * fix up stuff * led init is back * bring back led indicators * Update keyboards/ergotravel/keymaps/pvinis/config.h Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * not needed * not needed * delete these for now, until I use the userspace code * remove katamari from here. made a new pr for it * lower case * drashna suggestion :) * move files to correct place * fix missing command
-rw-r--r--keyboards/ergodox_ez/keymaps/pvinis/keymap.c330
-rw-r--r--keyboards/ergodox_ez/keymaps/pvinis/readme.md (renamed from layouts/community/ergodox/pvinis/Readme.md)0
-rw-r--r--keyboards/ergodox_ez/keymaps/pvinis/rules.mk1
-rw-r--r--keyboards/keebio/iris/keymaps/pvinis/config.h24
-rw-r--r--keyboards/keebio/iris/keymaps/pvinis/keymap.c122
-rw-r--r--keyboards/keebio/iris/keymaps/pvinis/rules.mk2
-rw-r--r--layouts/community/ergodox/pvinis/Changelog.md7
-rw-r--r--layouts/community/ergodox/pvinis/keymap.c475
-rw-r--r--layouts/community/ergodox/pvinis/rules.mk7
-rw-r--r--quantum/audio/song_list.h33
-rw-r--r--users/pvinis/config.h9
-rw-r--r--users/pvinis/pvinis.c79
-rw-r--r--users/pvinis/pvinis.h152
-rw-r--r--users/pvinis/rules.mk15
14 files changed, 750 insertions, 506 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// };
diff --git a/layouts/community/ergodox/pvinis/Readme.md b/keyboards/ergodox_ez/keymaps/pvinis/readme.md
index af2721054..af2721054 100644
--- a/layouts/community/ergodox/pvinis/Readme.md
+++ b/keyboards/ergodox_ez/keymaps/pvinis/readme.md
diff --git a/keyboards/ergodox_ez/keymaps/pvinis/rules.mk b/keyboards/ergodox_ez/keymaps/pvinis/rules.mk
new file mode 100644
index 000000000..e5ddcae8d
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/pvinis/rules.mk
@@ -0,0 +1 @@
TAP_DANCE_ENABLE = yes
diff --git a/keyboards/keebio/iris/keymaps/pvinis/config.h b/keyboards/keebio/iris/keymaps/pvinis/config.h
new file mode 100644
index 000000000..7a7beb0b8
--- /dev/null
+++ b/keyboards/keebio/iris/keymaps/pvinis/config.h
@@ -0,0 +1,24 @@
1#pragma once
2
3
4#ifdef PRODUCT
5#undef PRODUCT
6#define PRODUCT Iris Keyboard - pvinis
7#endif // PRODUCT
8
9
10// Use I2C or Serial, not both
11#define USE_SERIAL
12// #define USE_I2C
13
14
15// Select hand configuration
16#define MASTER_LEFT
17// #define MASTER_RIGHT
18// #define EE_HANDS
19
20
21// choose pin to use for audio. c6 is the one iris uses.
22#ifdef AUDIO_ENABLE
23#define C6_AUDIO
24#endif // AUDIO_ENABLE
diff --git a/keyboards/keebio/iris/keymaps/pvinis/keymap.c b/keyboards/keebio/iris/keymaps/pvinis/keymap.c
new file mode 100644
index 000000000..fb9e4adcf
--- /dev/null
+++ b/keyboards/keebio/iris/keymaps/pvinis/keymap.c
@@ -0,0 +1,122 @@
1// pvinis iris
2// ,-----------------------------. ,-----------------------------.
3// | | | | | | | | | | | | | |
4// |----+----+----+----+----+----| |----+----+----+----+----+----|
5// | | | | | | | | | | | | | |
6// |----+----+----+----x----x----| |----x----x----+----+----+----|
7// | | | | | | | | | | | | | |
8// |----+----+----+----x----x----+----. ,----|----x----x----+----+----+----|
9// | | | | | | | | | | | | | | | |
10// `-------------------+----+----+----/ \----+----+----+-------------------'
11// | | | | | | | |
12// `----+---------' `--------------'
13
14
15#include QMK_KEYBOARD_H
16#include "pvinis.h"
17//#include "iris.h"
18//#include "action_layer.h"
19//#include "eeconfig.h"
20
21#ifdef AUDIO_ENABLE
22 #include "audio.h"
23#endif
24
25#ifdef AUDIO_ENABLE
26 //#define STARTUP_SONG SONG(SONIC_RING)
27#endif
28
29#ifdef AUDIO_ENABLE
30float tone_sonic[][2] = SONG(IN_LIKE_FLINT);
31float tone_1[][2] = SONG(QWERTY_SOUND);
32float tone_2[][2] = SONG(OLD_SPICE);
33float tone_3[][2] = SONG(OVERWATCH_THEME);
34float tone_4[][2] = SONG(QWERTY_SOUND);
35#endif
36
37
38
39
40const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
41
42 // ,-----------------------------. ,-----------------------------.
43 // | | | | | |QWER| | | | | | | |
44 // |----+----+----+----+----+----| |----+----+----+----+----+----|
45 // |Tab | | | | |CARP| | | | | | |Del |
46 // |----+----+----+----x----x----| |----x----x----+----+----+----|
47 // |EscC| | | | | | | | | | | |Ent |
48 // |----+----+----+----x----x----+----. ,----|----x----x----+----+----+----|
49 // |LSft| | | | | |Home| |End | | | | | |Rsft|
50 // `-------------------+----+----+----/ \----+----+----+-------------------'
51 // |Cmd |LOWR|Bspc| |Spc |RASE|RAlt|
52 // `----+---------' `--------------'
53 [LR_BASE] = LAYOUT_wrapper(
54 _______, _______, _______, _______, _______, QWERTY , _______, _______, _______, _______, _______, _______,
55 KC_TAB , _______, _______, _______, _______, CARPALX, _______, _______, _______, _______, _______, KC_DEL ,
56 PV_ESCC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ENT ,
57 KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT,
58 KC_LGUI, SYMBOL , KC_BSPC, KC_SPC , SYSCTL , KC_RALT
59 ),
60
61 // ,-----------------------------. ,-----------------------------.
62 // | | NUMBERS_L | | NUMBERS_R | |
63 // |----+----+----+----+----+----| |----+----+----+----+----+----|
64 // | | | | | |
65 // |----+ | | +----|
66 // | | QWERTY_L | | QWERTY_R | |
67 // |----+ +----. ,----| +----|
68 // | | | | | | | |
69 // `-------------------+----+----+----/ \----+----+----+-------------------'
70 // | | | | | | | |
71 // `----+---------' `--------------'
72 [LR_QWERTY] = LAYOUT_wrapper(
73 _______, ________________NUMBERS_L__________________, ________________NUMBERS_R__________________, _______,
74 _______, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, _______,
75 _______, _____________MOD_QWERTY_L2_________________, _____________MOD_QWERTY_R2_________________, _______,
76 _______, _________________QWERTY_L3_________________, _______, _______, _________________QWERTY_R3_________________, _______,
77 _______, _______, _______, _______, _______, _______
78 ),
79
80 // ,-----------------------------. ,-----------------------------.
81 // | | NUMBERS_L | | NUMBERS_R | |
82 // |----+----+----+----+----+----| |----+----+----+----+----+----|
83 // | | | | | |
84 // |----+ | | +----|
85 // | | CARPALX_L | | CARPALX_R | |
86 // |----+ +----. ,----| +----|
87 // | | | | | | | |
88 // `-------------------+----+----+----/ \----+----+----+-------------------'
89 // | | | | | | | |
90 // `----+---------' `--------------'
91 [LR_CARPALX] = LAYOUT_wrapper(
92 _______, ________________NUMBERS_L__________________, ________________NUMBERS_R__________________, _______,
93 _______, ________________CARPALX_L1_________________, ________________CARPALX_R1_________________, _______,
94 _______, ________________CARPALX_L2_________________, ________________CARPALX_R2_________________, _______,
95 _______, ________________CARPALX_L3_________________, _______, _______, ________________CARPALX_R3_________________, _______,
96 _______, _______, _______, _______, _______, _______
97 ),
98
99 [LR_SYMBOL] = LAYOUT_wrapper(
100 KC_F12 , ______________________F_L__________________, ______________________F_R__________________, KC_F11 ,
101 _______, _________________SYMBOL_L1_________________, _________________SYMBOL_R1_________________, _______,
102 _______, _________________SYMBOL_L2_________________, _________________SYMBOL_R2_________________, _______,
103 _______, _________________SYMBOL_L3_________________, _______, _______, _________________SYMBOL_R3_________________, _______,
104 _______, _______, _______, _______, _______, _______
105 ),
106
107 [LR_SYSCTL] = LAYOUT_wrapper(
108 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
109 _______, _______, _______, _______, _______, _______, _________________SYSCTL_R1_________________, _______,
110 _______, _______, _______, _______, _______, _______, _________________SYSCTL_R2_________________, _______,
111 _______, _______, _______, _______, _______, _______, _______, _______, _________________SYSCTL_R3_________________, _______,
112 _______, _______, _______, _______, _______, _______
113 ),
114
115 [LR_KBCTL] = LAYOUT_wrapper(
116 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
117 XXXXXXX, __________________KBCTL_L1_________________, __________________KBCTL_R1_________________, XXXXXXX,
118 XXXXXXX, __________________KBCTL_L2_________________, __________________KBCTL_R2_________________, XXXXXXX,
119 BASE , __________________KBCTL_L3_________________, XXXXXXX, XXXXXXX, __________________KBCTL_R3_________________, XXXXXXX,
120 XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX
121 )
122};
diff --git a/keyboards/keebio/iris/keymaps/pvinis/rules.mk b/keyboards/keebio/iris/keymaps/pvinis/rules.mk
new file mode 100644
index 000000000..899312894
--- /dev/null
+++ b/keyboards/keebio/iris/keymaps/pvinis/rules.mk
@@ -0,0 +1,2 @@
1AUDIO_ENABLE = no # off for now
2RGBLIGHT_ENABLE = no # off for now
diff --git a/layouts/community/ergodox/pvinis/Changelog.md b/layouts/community/ergodox/pvinis/Changelog.md
deleted file mode 100644
index e5816200b..000000000
--- a/layouts/community/ergodox/pvinis/Changelog.md
+++ /dev/null
@@ -1,7 +0,0 @@
1## v0.3
2
3*2016-10-11*
4
5### Starting point
6
7* The starting point of this keymap. A beginner layout, and a couple placeholders.
diff --git a/layouts/community/ergodox/pvinis/keymap.c b/layouts/community/ergodox/pvinis/keymap.c
deleted file mode 100644
index 1bca0398d..000000000
--- a/layouts/community/ergodox/pvinis/keymap.c
+++ /dev/null
@@ -1,475 +0,0 @@
1// pvinis' ergodox keymap
2
3#include QMK_KEYBOARD_H
4#include "mousekey.h"
5
6// easier name for left ctrl-alt-gui
7#define ALLM(kc) LCAG(kc)
8
9// layers
10enum {
11 BASE = 0,
12 BEGIN,
13 QWERTY,
14 CARPALX,
15 SYSCTL,
16 MOUSE,
17};
18
19// extra keys
20enum {
21 NONE = 0,
22
23 // tap dance
24 TD_FLSH, // flash keyboard
25 TD_LAYR, // SYSCTL and MOUSE layer switch
26};
27
28// application selection
29// this is sending ctrl-alt-gui-<key>, and this is picked up by hammerspoon
30#define AP_SLCK ALLM(KC_S)
31#define AP_XCOD ALLM(KC_X)
32#define AP_MSGR ALLM(KC_M)
33
34// keymaps
35const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
36/* BASE
37 * the base of the keyboard.
38 *
39 * ,--------------------------------------------------. ,--------------------------------------------------.
40 * |4x FLASH| | | | | | | | | | | | | | |
41 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
42 * | | | | | | | | | | | | | | | |
43 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
44 * | | | | | | |------| |------| | | | | | |
45 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
46 * | | | | | | | | | | | | | | | |
47 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
48 * | | | | | | |SYSCTL| | | | |
49 * `----------------------------------' `----------------------------------'
50 * ,-------------. ,-------------.
51 * |BEGIN |QWERTY| | | |
52 * ,------|------|------| |------+--------+------.
53 * | | |CARPAL| |Slack | | |
54 * |Backsp|LShift|------| |------| Enter |Space |
55 * | | |SYSCTL| |Msngr | | |
56 * `--------------------' `----------------------'
57 */
58[BASE] = LAYOUT_ergodox(
59 TD(TD_FLSH) ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
60,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
61,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
62,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
63,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
64
65 ,TG(BEGIN) ,TD(TD_LAYR)
66 ,TG(MOUSE)
67 ,KC_BSPC ,KC_LSFT ,TD(TD_LAYR)
68
69 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
70 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
71 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
72 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
73 ,MO(SYSCTL) ,KC_NO ,KC_NO ,KC_NO ,KC_NO
74
75 ,TG(SYSCTL) ,KC_NO
76 ,AP_SLCK
77 ,AP_MSGR ,KC_ENT ,KC_SPC
78),
79
80/* BEGIN
81 * a beginner's keymap i currently use.
82 *
83 * ,--------------------------------------------------. ,--------------------------------------------------.
84 * | | 1 | 2 | 3 | 4 | 5 | opt | | 6 | 7 | 8 | 9 | 0 | - | = |
85 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
86 * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ |
87 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
88 * |Esc/Ctrl| A | S | D | F | G |------| |------| H | J | K | L | ; | Enter |
89 * |--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------|
90 * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
91 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
92 * | | ` | Cmd | | Cmd | | | | | ' | |
93 * `----------------------------------' `----------------------------------'
94 * ,-------------. ,-------------.
95 * | | | | | |
96 * ,------|------|------| |------+--------+------.
97 * | | | | | | | |
98 * | | |------| |------| | |
99 * | | | | | | | |
100 * `--------------------' `----------------------'
101 */
102[BEGIN] = LAYOUT_ergodox(
103 KC_TRNS ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_LALT
104,KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC
105,CTL_T(KC_ESC) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G
106,KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LPRN
107,KC_TRNS ,KC_GRV ,KC_LGUI ,KC_LEFT ,KC_RIGHT
108
109 ,KC_TRNS ,KC_TRNS
110 ,KC_TRNS
111 ,KC_TRNS ,KC_TRNS ,KC_TRNS
112
113 ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_MINS ,KC_EQL
114 ,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_BSLS
115 ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_ENT
116 ,KC_RPRN ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT
117 ,KC_TRNS ,KC_DOWN ,KC_TRNS ,KC_QUOT ,KC_TRNS
118
119 ,KC_TRNS ,KC_TRNS
120 ,KC_TRNS
121 ,KC_TRNS ,KC_TRNS ,KC_TRNS
122),
123
124/* QWERTY
125 * the default qwerty keymap. not really used, but i'll keep it here for now.
126 *
127 * ,--------------------------------------------------. ,--------------------------------------------------.
128 * | | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | |
129 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
130 * | | Q | W | E | R | T | | | | Y | U | I | O | P | |
131 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
132 * | | A | S | D | F | G |------| |------| H | J | K | L | ; | |
133 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
134 * | | Z | X | C | V | B | | | | N | M | , | . | / | |
135 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
136 * | | | | | | | | | | | |
137 * `----------------------------------' `----------------------------------'
138 * ,-------------. ,-------------.
139 * | | | | | |
140 * ,------|------|------| |------+--------+------.
141 * | | | | | | | |
142 * | | |------| |------| | |
143 * | | | | | | | |
144 * `--------------------' `----------------------'
145 */
146[QWERTY] = LAYOUT_ergodox(
147 KC_TRNS ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_TRNS
148,KC_TRNS ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_TRNS
149,KC_TRNS ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G
150,KC_TRNS ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_TRNS
151,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
152
153 ,KC_TRNS ,KC_TRNS
154 ,KC_TRNS
155 ,KC_TRNS ,KC_TRNS ,KC_TRNS
156
157 ,KC_TRNS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_TRNS
158 ,KC_TRNS ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_TRNS
159 ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_TRNS
160 ,KC_TRNS ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_TRNS
161 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
162
163 ,KC_TRNS ,KC_TRNS
164 ,KC_TRNS
165 ,KC_TRNS ,KC_TRNS ,KC_TRNS
166),
167
168/* CARPALX
169 * the keymap i would like to transition to.
170 *
171 * ,--------------------------------------------------. ,--------------------------------------------------.
172 * | | 1 | 2 | 3 | 4 | 5 | | | RIGHT| 6 | 7 | 8 | 9 | 0 | |
173 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
174 * | | Q | G | M | L | W | | | L1 | Y | F | U | B | ; | |
175 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
176 * | | D | S | T | N | R |------| |------| I | A | E | O | H | |
177 * |--------+------+------+------+------+------| | | Meh |------+------+------+------+------+--------|
178 * | | Z | X | C | V | J | | | | K | P | , | . | / | |
179 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
180 * | | | | | | | Up | | | | |
181 * `----------------------------------' `----------------------------------'
182 * ,-------------. ,-------------.
183 * | | | | | |
184 * ,------|------|------| |------+------+------.
185 * | | | | | | | |
186 * | | |------| |------| | |
187 * | | | | | | | |
188 * `--------------------' `--------------------'
189 */
190[CARPALX] = LAYOUT_ergodox(
191 KC_TRNS ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_TRNS
192,KC_TRNS ,KC_Q ,KC_G ,KC_M ,KC_L ,KC_W ,KC_TRNS
193,KC_TRNS ,KC_D ,KC_S ,KC_T ,KC_N ,KC_R
194,KC_TRNS ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_J ,KC_TRNS
195,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
196
197 ,KC_TRNS ,KC_TRNS
198 ,KC_TRNS
199 ,KC_TRNS ,KC_TRNS ,KC_TRNS
200
201 ,KC_TRNS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_TRNS
202 ,KC_TRNS ,KC_Y ,KC_F ,KC_U ,KC_B ,KC_SCLN ,KC_TRNS
203 ,KC_I ,KC_A ,KC_E ,KC_O ,KC_H ,KC_TRNS
204 ,KC_TRNS ,KC_K ,KC_P ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_TRNS
205 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
206
207 ,KC_TRNS ,KC_TRNS
208 ,KC_TRNS
209 ,KC_TRNS ,KC_TRNS ,KC_TRNS
210),
211
212/* SYSCTL
213 * a keymap to control my system.
214 *
215 * ,--------------------------------------------------. ,------------------------------------------------------.
216 * | ^ | | | | | | | | | | | | | | |
217 * |--------+------+------+------+------+-------------| |------+------+------+----------+------+------+--------|
218 * | | | | | | | | | | Mute | Home | Up | End | | |
219 * |--------+------+------+------+------+------| | | |------+------+----------+------+------+--------|
220 * | | | | | | |------| |------|VolUp | Left | Down |Right | | Lock |
221 * |--------+------+------+------+------+------| | | |------+------+----------+------+------+--------|
222 * | | | | | | | | | |VolDn | Prev |Play/Pause| Next | | Sleep |
223 * `--------+------+------+------+------+-------------' `-------------+------+----------+------+------+--------'
224 * | | | | | | | | | | | Power|
225 * `----------------------------------' `--------------------------------------'
226 * ,-------------. ,-------------.
227 * | | | | | |
228 * ,------|------|------| |------+------+------.
229 * | | | | | | | |
230 * | | |------| |------| | |
231 * | | | ^ | | | | |
232 * `--------------------' `--------------------'
233 */
234[SYSCTL] = LAYOUT_ergodox(
235 KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
236,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
237,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
238,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
239,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
240
241 ,KC_NO ,KC_NO
242 ,KC_NO
243 ,KC_NO ,KC_NO ,KC_TRNS
244
245 /*,KC_POP /// */,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
246 /* /// ,KC_PTRN*/,KC_NO ,KC_MUTE ,KC_HOME ,KC_UP ,KC_END ,KC_NO ,KC_NO
247 ,KC_VOLU ,KC_LEFT ,KC_DOWN ,KC_RGHT ,KC_NO ,LCTL(LSFT(KC_PWR))
248 ,KC_NO ,KC_VOLD ,KC_MPRV ,KC_MPLY ,KC_MNXT ,KC_NO ,KC_SLEP
249 ,KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_PWR
250
251 ,KC_NO ,KC_NO
252 ,KC_NO
253 ,KC_NO ,KC_NO ,KC_NO
254),
255
256/* MOUSE
257 * a keymap to control my system.
258 *
259 * ,--------------------------------------------------. ,--------------------------------------------------.
260 * | ^ | | | | | | | | | | | | | | |
261 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
262 * | | | | | | | | | | | | MsUp | | | |
263 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
264 * | | | | | | |------| |------| |MsLeft| MsDn |MsRght| | |
265 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
266 * | | | | | | | | | | | | | | | |
267 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
268 * | | | | | | | | | | | |
269 * `----------------------------------' `----------------------------------'
270 * ,-------------. ,-------------.
271 * | | | | |MidClk|
272 * ,------|------|------| |------+------+------.
273 * | | | | | |Left |Right |
274 * | | |------| |------| Click| Click|
275 * | | | ^ | | | | |
276 * `--------------------' `--------------------'
277 */
278[MOUSE] = LAYOUT_ergodox(
279 KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
280,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
281,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
282,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
283,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
284
285 ,KC_NO ,KC_NO
286 ,KC_NO
287 ,KC_NO ,KC_NO ,KC_TRNS
288
289 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
290 ,KC_NO ,KC_NO ,KC_NO ,KC_MS_U ,KC_NO ,KC_NO ,KC_NO
291 ,KC_NO ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_NO ,KC_NO
292 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
293 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
294
295 ,KC_NO ,KC_NO
296 ,KC_NO
297 ,KC_NO ,KC_NO ,KC_NO
298),
299
300/* TEMPLATE
301 * keymap template with transparent and non-transparent keys
302 *
303 * ,--------------------------------------------------. ,--------------------------------------------------.
304 * | | | | | | | | | | | | | | | |
305 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
306 * | | | | | | | | | | | | | | | |
307 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
308 * | | | | | | |------| |------| | | | | | |
309 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
310 * | | | | | | | | | | | | | | | |
311 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
312 * | | | | | | | | | | | |
313 * `----------------------------------' `----------------------------------'
314 * ,-------------. ,-------------.
315 * | | | | | |
316 * ,------|------|------| |------+--------+------.
317 * | | | | | | | |
318 * | | |------| |------| | |
319 * | | | | | | | |
320 * `--------------------' `----------------------'
321 */
322/*
323[TEMPLATE] = LAYOUT_ergodox(
324 KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
325,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
326,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
327,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
328,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
329
330 ,KC_TRNS ,KC_TRNS
331 ,KC_TRNS
332 ,KC_TRNS ,KC_TRNS ,KC_TRNS
333
334 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
335 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
336 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
337 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
338 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
339
340 ,KC_TRNS ,KC_TRNS
341 ,KC_TRNS
342 ,KC_TRNS ,KC_TRNS ,KC_TRNS
343),
344[TEMPLATE] = LAYOUT_ergodox(
345 KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
346,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
347,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
348,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
349,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
350
351 ,KC_NO ,KC_NO
352 ,KC_NO
353 ,KC_NO ,KC_NO ,KC_NO
354
355 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
356 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
357 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
358 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
359 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
360
361 ,KC_NO ,KC_NO
362 ,KC_NO
363 ,KC_NO ,KC_NO ,KC_NO
364),
365*/
366};
367
368// keyboard initialization
369void matrix_init_user() {
370 ergodox_led_all_on();
371 for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) {
372 ergodox_led_all_set(i);
373 wait_ms(5);
374 }
375 wait_ms(1000);
376 for (int i = LED_BRIGHTNESS_LO; i > 0; i--) {
377 ergodox_led_all_set(i);
378 wait_ms(10);
379 }
380 ergodox_led_all_off();
381}
382
383// light up leds based on the layer
384void matrix_scan_user(void) {
385 uint8_t layer = biton32(layer_state);
386
387 switch(layer) {
388 case SYSCTL:
389 ergodox_right_led_3_on();
390 break;
391 case MOUSE:
392 ergodox_right_led_2_on();
393 break;
394 default:
395 ergodox_right_led_1_off();
396 ergodox_right_led_2_off();
397 ergodox_right_led_3_off();
398 break;
399 }
400}
401
402// extra keys
403const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
404 switch (id) {
405 }
406 return MACRO_NONE;
407}
408
409// tap dances
410
411// flash keyboard on 4x tap, with leds
412void flash_each_tap(qk_tap_dance_state_t *state, void *user_data) {
413 switch (state->count) {
414 case 1:
415 ergodox_right_led_3_on();
416 break;
417 case 2:
418 ergodox_right_led_2_on();
419 break;
420 case 3:
421 ergodox_right_led_1_on();
422 break;
423 case 4:
424 ergodox_right_led_3_off();
425 wait_ms(50);
426 ergodox_right_led_2_off();
427 wait_ms(50);
428 ergodox_right_led_1_off();
429 break;
430 }
431}
432
433void flash_dance_finished(qk_tap_dance_state_t *state, void *user_data) {
434 if (state->count >= 4) {
435 reset_keyboard();
436 reset_tap_dance(state);
437 }
438}
439
440void flash_dance_reset(qk_tap_dance_state_t *state, void *user_data) {
441 ergodox_right_led_1_off();
442 wait_ms(50);
443 ergodox_right_led_2_off();
444 wait_ms(50);
445 ergodox_right_led_3_off();
446}
447
448// SYSCTL on first tap, MOUSE ON second tap
449void layers_dance_finished(qk_tap_dance_state_t *state, void *user_data) {
450 uint8_t layer = biton32(layer_state);
451
452 switch(state->count) {
453 case 1:
454 switch(layer) {
455 case SYSCTL:
456 layer_off(SYSCTL);
457 break;
458 case MOUSE:
459 layer_off(MOUSE);
460 break;
461 default:
462 layer_on(SYSCTL);
463 break;
464 }
465 break;
466 case 2:
467 layer_on(MOUSE);
468 break;
469 }
470}
471
472qk_tap_dance_action_t tap_dance_actions[] = {
473 [TD_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED( flash_each_tap, flash_dance_finished, flash_dance_reset ),
474 [TD_LAYR] = ACTION_TAP_DANCE_FN_ADVANCED( NULL, layers_dance_finished, NULL ),
475};
diff --git a/layouts/community/ergodox/pvinis/rules.mk b/layouts/community/ergodox/pvinis/rules.mk
deleted file mode 100644
index 87cbd93c2..000000000
--- a/layouts/community/ergodox/pvinis/rules.mk
+++ /dev/null
@@ -1,7 +0,0 @@
1CONSOLE_ENABLE = no # for debugging
2
3SLEEP_LED_ENABLE = no # no led blinking while sleeping
4NKRO_ENABLE = yes # disable for windows
5TAP_DANCE_ENABLE = yes # tap-tap-tap
6
7
diff --git a/quantum/audio/song_list.h b/quantum/audio/song_list.h
index 1d4eec711..9ca8231e4 100644
--- a/quantum/audio/song_list.h
+++ b/quantum/audio/song_list.h
@@ -51,7 +51,6 @@
51 Q__NOTE(_E4), Q__NOTE(_C4), \ 51 Q__NOTE(_E4), Q__NOTE(_C4), \
52 Q__NOTE(_E4), 52 Q__NOTE(_E4),
53 53
54/* Requires: PLAY_NOTE_ARRAY(..., ..., STACCATO); */
55#define IN_LIKE_FLINT \ 54#define IN_LIKE_FLINT \
56 E__NOTE(_AS4), E__NOTE(_AS4), QD_NOTE(_B4), \ 55 E__NOTE(_AS4), E__NOTE(_AS4), QD_NOTE(_B4), \
57 E__NOTE(_AS4), E__NOTE(_B4), QD_NOTE(_CS4), \ 56 E__NOTE(_AS4), E__NOTE(_B4), QD_NOTE(_CS4), \
@@ -548,8 +547,8 @@
548 H__NOTE(_D5), Q__NOTE(_C5), Q__NOTE(_C5), Q__NOTE(_A4), H__NOTE(_C5), Q__NOTE(_C5), \ 547 H__NOTE(_D5), Q__NOTE(_C5), Q__NOTE(_C5), Q__NOTE(_A4), H__NOTE(_C5), Q__NOTE(_C5), \
549 W__NOTE(_C5), Q__NOTE(_F4), Q__NOTE(_C5), Q__NOTE(_D5), Q__NOTE(_E5), H__NOTE(_D5), \ 548 W__NOTE(_C5), Q__NOTE(_F4), Q__NOTE(_C5), Q__NOTE(_D5), Q__NOTE(_E5), H__NOTE(_D5), \
550 H__NOTE(_C5), Q__NOTE(_C5), H__NOTE(_G5), Q__NOTE(_C5), HD_NOTE(_D5), \ 549 H__NOTE(_C5), Q__NOTE(_C5), H__NOTE(_G5), Q__NOTE(_C5), HD_NOTE(_D5), \
551 HD_NOTE(_G4), Q__NOTE(_C5), Q__NOTE(_D5), BD_NOTE(_C5), 550 HD_NOTE(_G4), Q__NOTE(_C5), Q__NOTE(_D5), BD_NOTE(_C5),
552 551
553#define CAMPANELLA \ 552#define CAMPANELLA \
554 Q__NOTE(_DS4), E__NOTE(_DS4), E__NOTE(_DS5), Q__NOTE(_DS5), E__NOTE(_DS5), E__NOTE(_DS6), Q__NOTE(_DS5), E__NOTE(_DS5), \ 553 Q__NOTE(_DS4), E__NOTE(_DS4), E__NOTE(_DS5), Q__NOTE(_DS5), E__NOTE(_DS5), E__NOTE(_DS6), Q__NOTE(_DS5), E__NOTE(_DS5), \
555 E__NOTE(_DS6), Q__NOTE(_CS5), E__NOTE(_CS5), E__NOTE(_DS6), Q__NOTE(_B4), E__NOTE(_B4), E__NOTE(_DS6), \ 554 E__NOTE(_DS6), Q__NOTE(_CS5), E__NOTE(_CS5), E__NOTE(_DS6), Q__NOTE(_B4), E__NOTE(_B4), E__NOTE(_DS6), \
@@ -566,7 +565,7 @@
566 E__NOTE(_B5), E__NOTE(_DS7), Q__NOTE(_B5), E__NOTE(_B5), E__NOTE(_DS7), Q__NOTE(_AS5), E__NOTE(_AS5), \ 565 E__NOTE(_B5), E__NOTE(_DS7), Q__NOTE(_B5), E__NOTE(_B5), E__NOTE(_DS7), Q__NOTE(_AS5), E__NOTE(_AS5), \
567 E__NOTE(_DS7), Q__NOTE(_GS5), E__NOTE(_GS5), E__NOTE(_DS7), Q__NOTE(_G5), E__NOTE(_G5), E__NOTE(_DS7), \ 566 E__NOTE(_DS7), Q__NOTE(_GS5), E__NOTE(_GS5), E__NOTE(_DS7), Q__NOTE(_G5), E__NOTE(_G5), E__NOTE(_DS7), \
568 Q__NOTE(_GS5), E__NOTE(_GS5), E__NOTE(_DS7), Q__NOTE(_AS5), E__NOTE(_AS5), E__NOTE(_DS7), Q__NOTE(_DS5), \ 567 Q__NOTE(_GS5), E__NOTE(_GS5), E__NOTE(_DS7), Q__NOTE(_AS5), E__NOTE(_AS5), E__NOTE(_DS7), Q__NOTE(_DS5), \
569 E__NOTE(_DS5), E__NOTE(_DS7), W__NOTE(_DS6), W__NOTE(_GS5), 568 E__NOTE(_DS5), E__NOTE(_DS7), W__NOTE(_DS6), W__NOTE(_GS5),
570 569
571#define MEGALOVANIA \ 570#define MEGALOVANIA \
572 Q__NOTE(_D4), Q__NOTE(_D4), H__NOTE(_D5), HD_NOTE(_A4), H__NOTE(_AF4), H__NOTE(_G4), H__NOTE(_F4), \ 571 Q__NOTE(_D4), Q__NOTE(_D4), H__NOTE(_D5), HD_NOTE(_A4), H__NOTE(_AF4), H__NOTE(_G4), H__NOTE(_F4), \
@@ -595,7 +594,7 @@
595 H__NOTE(_A5), H__NOTE(_A5), W__NOTE(_B5), H__NOTE(_A5), H__NOTE(_B5), W__NOTE(_A5), W__NOTE(_A6), \ 594 H__NOTE(_A5), H__NOTE(_A5), W__NOTE(_B5), H__NOTE(_A5), H__NOTE(_B5), W__NOTE(_A5), W__NOTE(_A6), \
596 W__NOTE(_GS6), H__NOTE(_CS6), Q__NOTE(_E6), Q__NOTE(_CS6), W__NOTE(_B5), H__NOTE(_B5), H__NOTE(_CS6), \ 595 W__NOTE(_GS6), H__NOTE(_CS6), Q__NOTE(_E6), Q__NOTE(_CS6), W__NOTE(_B5), H__NOTE(_B5), H__NOTE(_CS6), \
597 W__NOTE(_B5), H__NOTE(_A5), Q__NOTE(_B5), BD_NOTE(_A5), 596 W__NOTE(_B5), H__NOTE(_A5), Q__NOTE(_B5), BD_NOTE(_A5),
598 597
599#define LIEBESLEID \ 598#define LIEBESLEID \
600 Q__NOTE(_E4), Q__NOTE(_DS4), Q__NOTE(_E4), Q__NOTE(_F4), Q__NOTE(_E4), Q__NOTE(_FS4), Q__NOTE(_EF4), Q__NOTE(_G4), Q__NOTE(_D4), \ 599 Q__NOTE(_E4), Q__NOTE(_DS4), Q__NOTE(_E4), Q__NOTE(_F4), Q__NOTE(_E4), Q__NOTE(_FS4), Q__NOTE(_EF4), Q__NOTE(_G4), Q__NOTE(_D4), \
601 Q__NOTE(_GS4), Q__NOTE(_CS4), W__NOTE(_A4), H__NOTE(_E5), H__NOTE(_E5), HD_NOTE(_G4), Q__NOTE(_E5), E__NOTE(_E5), \ 600 Q__NOTE(_GS4), Q__NOTE(_CS4), W__NOTE(_A4), H__NOTE(_E5), H__NOTE(_E5), HD_NOTE(_G4), Q__NOTE(_E5), E__NOTE(_E5), \
@@ -605,8 +604,8 @@
605 Q__NOTE(_C5), E__NOTE(_C5), E__NOTE(_D5), E__NOTE(_C5), HD_NOTE(_BF4), Q__NOTE(_C5), H__NOTE(_D5), H__NOTE(_FS4), \ 604 Q__NOTE(_C5), E__NOTE(_C5), E__NOTE(_D5), E__NOTE(_C5), HD_NOTE(_BF4), Q__NOTE(_C5), H__NOTE(_D5), H__NOTE(_FS4), \
606 H__NOTE(_F4), HD_NOTE(_E4), Q__NOTE(_A4), HD_NOTE(_FS4), Q__NOTE(_A4), HD_NOTE(_GS4), Q__NOTE(_B4), Q__NOTE(_A4), \ 605 H__NOTE(_F4), HD_NOTE(_E4), Q__NOTE(_A4), HD_NOTE(_FS4), Q__NOTE(_A4), HD_NOTE(_GS4), Q__NOTE(_B4), Q__NOTE(_A4), \
607 Q__NOTE(_E4), Q__NOTE(_DS4), Q__NOTE(_E4), Q__NOTE(_F4), Q__NOTE(_D4), Q__NOTE(_FS4), Q__NOTE(_CS4), Q__NOTE(_G4), \ 606 Q__NOTE(_E4), Q__NOTE(_DS4), Q__NOTE(_E4), Q__NOTE(_F4), Q__NOTE(_D4), Q__NOTE(_FS4), Q__NOTE(_CS4), Q__NOTE(_G4), \
608 Q__NOTE(_C4), Q__NOTE(_GS4), Q__NOTE(_D4), WD_NOTE(_A4), 607 Q__NOTE(_C4), Q__NOTE(_GS4), Q__NOTE(_D4), WD_NOTE(_A4),
609 608
610#define MELODIES_OF_LIFE \ 609#define MELODIES_OF_LIFE \
611 H__NOTE(_B5), W__NOTE(_GS6), H__NOTE(_GS6), H__NOTE(_FS6), W__NOTE(_E6), H__NOTE(_E6), H__NOTE(_DS6), H__NOTE(_CS6), H__NOTE(_DS6), \ 610 H__NOTE(_B5), W__NOTE(_GS6), H__NOTE(_GS6), H__NOTE(_FS6), W__NOTE(_E6), H__NOTE(_E6), H__NOTE(_DS6), H__NOTE(_CS6), H__NOTE(_DS6), \
612 H__NOTE(_E6), H__NOTE(_FS6), WD_NOTE(_B5), H__NOTE(_B5), H__NOTE(_CS6), H__NOTE(_DS6), H__NOTE(_E6), H__NOTE(_CS6), \ 611 H__NOTE(_E6), H__NOTE(_FS6), WD_NOTE(_B5), H__NOTE(_B5), H__NOTE(_CS6), H__NOTE(_DS6), H__NOTE(_E6), H__NOTE(_CS6), \
@@ -614,7 +613,7 @@
614 WD_NOTE(_FS6), H__NOTE(_GS6), WD_NOTE(_B6), H__NOTE(_CS7), H__NOTE(_B6), H__NOTE(_A6), H__NOTE(_A6), H__NOTE(_GS6), \ 613 WD_NOTE(_FS6), H__NOTE(_GS6), WD_NOTE(_B6), H__NOTE(_CS7), H__NOTE(_B6), H__NOTE(_A6), H__NOTE(_A6), H__NOTE(_GS6), \
615 H__NOTE(_GS6), H__NOTE(_FS6), H__NOTE(_FS6), H__NOTE(_GS6), WD_NOTE(_A6), Q__NOTE(_GS6), Q__NOTE(_FS6), Q__NOTE(_FS6), \ 614 H__NOTE(_GS6), H__NOTE(_FS6), H__NOTE(_FS6), H__NOTE(_GS6), WD_NOTE(_A6), Q__NOTE(_GS6), Q__NOTE(_FS6), Q__NOTE(_FS6), \
616 Q__NOTE(_E6), W__NOTE(_E6), Q__NOTE(_B5), Q__NOTE(_CS6), WD_NOTE(_E6), Q__NOTE(_E6), Q__NOTE(_FS6), W__NOTE(_GS6), \ 615 Q__NOTE(_E6), W__NOTE(_E6), Q__NOTE(_B5), Q__NOTE(_CS6), WD_NOTE(_E6), Q__NOTE(_E6), Q__NOTE(_FS6), W__NOTE(_GS6), \
617 H__NOTE(_A6), B__NOTE(_FS6), 616 H__NOTE(_A6), B__NOTE(_FS6),
618 617
619#define EYES_ON_ME \ 618#define EYES_ON_ME \
620 Q__NOTE(_A6), Q__NOTE(_G6), Q__NOTE(_FS6), Q__NOTE(_D6), Q__NOTE(_A5), Q__NOTE(_G5), Q__NOTE(_FS5), Q__NOTE(_D5), \ 619 Q__NOTE(_A6), Q__NOTE(_G6), Q__NOTE(_FS6), Q__NOTE(_D6), Q__NOTE(_A5), Q__NOTE(_G5), Q__NOTE(_FS5), Q__NOTE(_D5), \
@@ -640,7 +639,7 @@
640 W__NOTE(_G6), H__NOTE(_AF6), W__NOTE(_G6), H__NOTE(_AF6), H__NOTE(_G6), H__NOTE(_F6), H__NOTE(_D6), H__NOTE(_D6), \ 639 W__NOTE(_G6), H__NOTE(_AF6), W__NOTE(_G6), H__NOTE(_AF6), H__NOTE(_G6), H__NOTE(_F6), H__NOTE(_D6), H__NOTE(_D6), \
641 H__NOTE(_EF6), B__NOTE(_EF6), WD_NOTE(_E6), H__NOTE(_E6), H__NOTE(_F6), H__NOTE(_G6), H__NOTE(_BF6), H__NOTE(_AF6), \ 640 H__NOTE(_EF6), B__NOTE(_EF6), WD_NOTE(_E6), H__NOTE(_E6), H__NOTE(_F6), H__NOTE(_G6), H__NOTE(_BF6), H__NOTE(_AF6), \
642 W__NOTE(_AF6), H__NOTE(_C6), H__NOTE(_AF6), H__NOTE(_G6), W__NOTE(_G6), H__NOTE(_F6), H__NOTE(_D6), BD_NOTE(_EF6), \ 641 W__NOTE(_AF6), H__NOTE(_C6), H__NOTE(_AF6), H__NOTE(_G6), W__NOTE(_G6), H__NOTE(_F6), H__NOTE(_D6), BD_NOTE(_EF6), \
643 WD_NOTE(_F6), WD_NOTE(_G6), BD_NOTE(_C7), 642 WD_NOTE(_F6), WD_NOTE(_G6), BD_NOTE(_C7),
644 643
645#define NIER_AMUSEMENT_PARK \ 644#define NIER_AMUSEMENT_PARK \
646 H__NOTE(_D5), E__NOTE(_G6), E__NOTE(_GF6), Q__NOTE(_F6), Q__NOTE(_E6), Q__NOTE(_EF6), Q__NOTE(_DF6), Q__NOTE(_EF6), WD_NOTE(_D6), \ 645 H__NOTE(_D5), E__NOTE(_G6), E__NOTE(_GF6), Q__NOTE(_F6), Q__NOTE(_E6), Q__NOTE(_EF6), Q__NOTE(_DF6), Q__NOTE(_EF6), WD_NOTE(_D6), \
@@ -656,7 +655,7 @@
656 H__NOTE(_EF5), H__NOTE(_F5), W__NOTE(_D5), W__NOTE(_BF5), W__NOTE(_G5), W__NOTE(_D5), W__NOTE(_EF5), QD_NOTE(_C5), \ 655 H__NOTE(_EF5), H__NOTE(_F5), W__NOTE(_D5), W__NOTE(_BF5), W__NOTE(_G5), W__NOTE(_D5), W__NOTE(_EF5), QD_NOTE(_C5), \
657 QD_NOTE(_D5), Q__NOTE(_EF5), H__NOTE(_G5), H__NOTE(_F5), H__NOTE(_EF5), H__NOTE(_F5), B__NOTE(_D5), B__NOTE(_BF4), \ 656 QD_NOTE(_D5), Q__NOTE(_EF5), H__NOTE(_G5), H__NOTE(_F5), H__NOTE(_EF5), H__NOTE(_F5), B__NOTE(_D5), B__NOTE(_BF4), \
658 B__NOTE(_C5), H__NOTE(_C5), H__NOTE(_D5), H__NOTE(_EF5), H__NOTE(_F5), WD_NOTE(_G5), H__NOTE(_C5), W__NOTE(_AF5), \ 657 B__NOTE(_C5), H__NOTE(_C5), H__NOTE(_D5), H__NOTE(_EF5), H__NOTE(_F5), WD_NOTE(_G5), H__NOTE(_C5), W__NOTE(_AF5), \
659 WD_NOTE(_G5), 658 WD_NOTE(_G5),
660 659
661#define COPIED_CITY \ 660#define COPIED_CITY \
662 Q__NOTE(_F6), Q__NOTE(_BF5), Q__NOTE(_EF6), Q__NOTE(_G5), Q__NOTE(_AF5), Q__NOTE(_G6), Q__NOTE(_AF6), Q__NOTE(_EF6), Q__NOTE(_BF5), \ 661 Q__NOTE(_F6), Q__NOTE(_BF5), Q__NOTE(_EF6), Q__NOTE(_G5), Q__NOTE(_AF5), Q__NOTE(_G6), Q__NOTE(_AF6), Q__NOTE(_EF6), Q__NOTE(_BF5), \
@@ -670,7 +669,7 @@
670 Q__NOTE(_F4), Q__NOTE(_G4), H__NOTE(_AF4), Q__NOTE(_C5), Q__NOTE(_EF5), Q__NOTE(_F5), Q__NOTE(_C5), Q__NOTE(_EF5), \ 669 Q__NOTE(_F4), Q__NOTE(_G4), H__NOTE(_AF4), Q__NOTE(_C5), Q__NOTE(_EF5), Q__NOTE(_F5), Q__NOTE(_C5), Q__NOTE(_EF5), \
671 Q__NOTE(_F5), Q__NOTE(_G5), Q__NOTE(_BF5), Q__NOTE(_AF5), Q__NOTE(_G5), Q__NOTE(_EF5), Q__NOTE(_F5), Q__NOTE(_C5), \ 670 Q__NOTE(_F5), Q__NOTE(_G5), Q__NOTE(_BF5), Q__NOTE(_AF5), Q__NOTE(_G5), Q__NOTE(_EF5), Q__NOTE(_F5), Q__NOTE(_C5), \
672 Q__NOTE(_AF4), Q__NOTE(_F5), Q__NOTE(_G5), Q__NOTE(_AF5), Q__NOTE(_G5), Q__NOTE(_F5), Q__NOTE(_EF5), Q__NOTE(_F5), \ 671 Q__NOTE(_AF4), Q__NOTE(_F5), Q__NOTE(_G5), Q__NOTE(_AF5), Q__NOTE(_G5), Q__NOTE(_F5), Q__NOTE(_EF5), Q__NOTE(_F5), \
673 Q__NOTE(_G5), Q__NOTE(_BF5), Q__NOTE(_C6), Q__NOTE(_G6), Q__NOTE(_EF6), WD_NOTE(_F7), 672 Q__NOTE(_G5), Q__NOTE(_BF5), Q__NOTE(_C6), Q__NOTE(_G6), Q__NOTE(_EF6), WD_NOTE(_F7),
674 673
675#define VAGUE_HOPE_COLD_RAIN \ 674#define VAGUE_HOPE_COLD_RAIN \
676 HD_NOTE(_D6), HD_NOTE(_E6), HD_NOTE(_CS6), HD_NOTE(_D6), HD_NOTE(_B5), Q__NOTE(_B5), Q__NOTE(_CS6), Q__NOTE(_D6), WD_NOTE(_A6), \ 675 HD_NOTE(_D6), HD_NOTE(_E6), HD_NOTE(_CS6), HD_NOTE(_D6), HD_NOTE(_B5), Q__NOTE(_B5), Q__NOTE(_CS6), Q__NOTE(_D6), WD_NOTE(_A6), \
@@ -685,7 +684,7 @@
685 W__NOTE(_FS5), HD_NOTE(_FS6), HD_NOTE(_B5), H__NOTE(_D6), H__NOTE(_CS6), H__NOTE(_E6), HD_NOTE(_A6), HD_NOTE(_E6), \ 684 W__NOTE(_FS5), HD_NOTE(_FS6), HD_NOTE(_B5), H__NOTE(_D6), H__NOTE(_CS6), H__NOTE(_E6), HD_NOTE(_A6), HD_NOTE(_E6), \
686 W__NOTE(_D6), Q__NOTE(_CS6), Q__NOTE(_D6), HD_NOTE(_E6), HD_NOTE(_FS6), WD_NOTE(_B6), HD_NOTE(_E6), HD_NOTE(_FS6), \ 685 W__NOTE(_D6), Q__NOTE(_CS6), Q__NOTE(_D6), HD_NOTE(_E6), HD_NOTE(_FS6), WD_NOTE(_B6), HD_NOTE(_E6), HD_NOTE(_FS6), \
687 HD_NOTE(_B5), Q__NOTE(_B5), Q__NOTE(_B5), Q__NOTE(_CS6), H__NOTE(_D6), H__NOTE(_E6), H__NOTE(_FS6), HD_NOTE(_E6), \ 686 HD_NOTE(_B5), Q__NOTE(_B5), Q__NOTE(_B5), Q__NOTE(_CS6), H__NOTE(_D6), H__NOTE(_E6), H__NOTE(_FS6), HD_NOTE(_E6), \
688 HD_NOTE(_CS6), H__NOTE(_FS6), H__NOTE(_A6), H__NOTE(_B6), W__NOTE(_A6), H__NOTE(_FS6), BD_NOTE(_B6), 687 HD_NOTE(_CS6), H__NOTE(_FS6), H__NOTE(_A6), H__NOTE(_B6), W__NOTE(_A6), H__NOTE(_FS6), BD_NOTE(_B6),
689 688
690#define KAINE_SALVATION \ 689#define KAINE_SALVATION \
691 BD_NOTE(_D5), W__NOTE(_BF4), W__NOTE(_C5), W__NOTE(_F5), BD_NOTE(_D5), BD_NOTE(_BF4), BD_NOTE(_C5), W__NOTE(_BF4), W__NOTE(_C5), \ 690 BD_NOTE(_D5), W__NOTE(_BF4), W__NOTE(_C5), W__NOTE(_F5), BD_NOTE(_D5), BD_NOTE(_BF4), BD_NOTE(_C5), W__NOTE(_BF4), W__NOTE(_C5), \
@@ -711,7 +710,7 @@
711 Q__NOTE(_F6), H__NOTE(_E6), H__NOTE(_F6), HD_NOTE(_E6), H__NOTE(_D6), H__NOTE(_C6), H__NOTE(_D6), BD_NOTE(_D6), \ 710 Q__NOTE(_F6), H__NOTE(_E6), H__NOTE(_F6), HD_NOTE(_E6), H__NOTE(_D6), H__NOTE(_C6), H__NOTE(_D6), BD_NOTE(_D6), \
712 Q__NOTE(_E6), Q__NOTE(_D6), Q__NOTE(_C6), Q__NOTE(_B5), H__NOTE(_C6), Q__NOTE(_C6), H__NOTE(_C6), HD_NOTE(_C6), \ 711 Q__NOTE(_E6), Q__NOTE(_D6), Q__NOTE(_C6), Q__NOTE(_B5), H__NOTE(_C6), Q__NOTE(_C6), H__NOTE(_C6), HD_NOTE(_C6), \
713 H__NOTE(_B5), H__NOTE(_C6), H__NOTE(_E6), H__NOTE(_G6), WD_NOTE(_G6), Q__NOTE(_C6), B__NOTE(_C6), H__NOTE(_B6), \ 712 H__NOTE(_B5), H__NOTE(_C6), H__NOTE(_E6), H__NOTE(_G6), WD_NOTE(_G6), Q__NOTE(_C6), B__NOTE(_C6), H__NOTE(_B6), \
714 Q__NOTE(_C7), BD_NOTE(_C7), 713 Q__NOTE(_C7), BD_NOTE(_C7),
715 714
716#define ISABELLAS_LULLABY \ 715#define ISABELLAS_LULLABY \
717 W__NOTE(_BF4), B__NOTE(_D5), W__NOTE(_EF5), B__NOTE(_F5), W__NOTE(_BF5), B__NOTE(_AF5), W__NOTE(_GF5), BD_NOTE(_F5), B__NOTE(_CS5), \ 716 W__NOTE(_BF4), B__NOTE(_D5), W__NOTE(_EF5), B__NOTE(_F5), W__NOTE(_BF5), B__NOTE(_AF5), W__NOTE(_GF5), BD_NOTE(_F5), B__NOTE(_CS5), \
@@ -739,7 +738,7 @@
739 E__NOTE(_GS4), E__NOTE(_CS5), E__NOTE(_E5), E__NOTE(_DS5), E__NOTE(_CS5), E__NOTE(_DS5), E__NOTE(_CS5), E__NOTE(_C5), \ 738 E__NOTE(_GS4), E__NOTE(_CS5), E__NOTE(_E5), E__NOTE(_DS5), E__NOTE(_CS5), E__NOTE(_DS5), E__NOTE(_CS5), E__NOTE(_C5), \
740 E__NOTE(_CS5), E__NOTE(_E5), E__NOTE(_GS5), E__NOTE(_DS5), E__NOTE(_E5), E__NOTE(_DS5), E__NOTE(_REST), E__NOTE(_DS5), \ 739 E__NOTE(_CS5), E__NOTE(_E5), E__NOTE(_GS5), E__NOTE(_DS5), E__NOTE(_E5), E__NOTE(_DS5), E__NOTE(_REST), E__NOTE(_DS5), \
741 E__NOTE(_B5), E__NOTE(_AS5), E__NOTE(_GS5), E__NOTE(_REST), E__NOTE(_E6), E__NOTE(_DS6), E__NOTE(_CS6), E__NOTE(_B5), \ 740 E__NOTE(_B5), E__NOTE(_AS5), E__NOTE(_GS5), E__NOTE(_REST), E__NOTE(_E6), E__NOTE(_DS6), E__NOTE(_CS6), E__NOTE(_B5), \
742 E__NOTE(_AS5), E__NOTE(_GS5), E__NOTE(_REST), E__NOTE(_AS5), WD_NOTE(_GS5), 741 E__NOTE(_AS5), E__NOTE(_GS5), E__NOTE(_REST), E__NOTE(_AS5), WD_NOTE(_GS5),
743 742
744#define TERRAS_THEME \ 743#define TERRAS_THEME \
745 Q__NOTE(_GS5), Q__NOTE(_AS5), Q__NOTE(_B5), Q__NOTE(_EF6), BD_NOTE(_B5), Q__NOTE(_AS5), Q__NOTE(_GS5), W__NOTE(_AS5), \ 744 Q__NOTE(_GS5), Q__NOTE(_AS5), Q__NOTE(_B5), Q__NOTE(_EF6), BD_NOTE(_B5), Q__NOTE(_AS5), Q__NOTE(_GS5), W__NOTE(_AS5), \
@@ -762,7 +761,7 @@
762 Q__NOTE(_E6), H__NOTE(_E6), H__NOTE(_E6), Q__NOTE(_E6), H__NOTE(_FS6), WD_NOTE(_E6), W__NOTE(_B6), W__NOTE(_GS6), \ 761 Q__NOTE(_E6), H__NOTE(_E6), H__NOTE(_E6), Q__NOTE(_E6), H__NOTE(_FS6), WD_NOTE(_E6), W__NOTE(_B6), W__NOTE(_GS6), \
763 W__NOTE(_FS6), H__NOTE(_GS6), H__NOTE(_GS6), H__NOTE(_FS6), H__NOTE(_E6), H__NOTE(_FS6), B__NOTE(_GS6), H__NOTE(_GS6), \ 762 W__NOTE(_FS6), H__NOTE(_GS6), H__NOTE(_GS6), H__NOTE(_FS6), H__NOTE(_E6), H__NOTE(_FS6), B__NOTE(_GS6), H__NOTE(_GS6), \
764 W__NOTE(_CS7), W__NOTE(_GS6), W__NOTE(_E6), H__NOTE(_GS6), H__NOTE(_GS6), HD_NOTE(_E6), H__NOTE(_E6), Q__NOTE(_E6), \ 763 W__NOTE(_CS7), W__NOTE(_GS6), W__NOTE(_E6), H__NOTE(_GS6), H__NOTE(_GS6), HD_NOTE(_E6), H__NOTE(_E6), Q__NOTE(_E6), \
765 H__NOTE(_FS6), WD_NOTE(_E6), 764 H__NOTE(_FS6), WD_NOTE(_E6),
766 765
767#define PLATINUM_DISCO \ 766#define PLATINUM_DISCO \
768 H__NOTE(_DS6), H__NOTE(_FS6), H__NOTE(_GS6), H__NOTE(_AS6), H__NOTE(_DS6), H__NOTE(_FS6), W__NOTE(_GS6), H__NOTE(_DS6), H__NOTE(_FS6), \ 767 H__NOTE(_DS6), H__NOTE(_FS6), H__NOTE(_GS6), H__NOTE(_AS6), H__NOTE(_DS6), H__NOTE(_FS6), W__NOTE(_GS6), H__NOTE(_DS6), H__NOTE(_FS6), \
@@ -778,7 +777,7 @@
778 WD_NOTE(_FS6), H__NOTE(_CS6), WD_NOTE(_DS6), H__NOTE(_CS6), WD_NOTE(_DS6), H__NOTE(_CS6), H__NOTE(_DS6), H__NOTE(_FS6), \ 777 WD_NOTE(_FS6), H__NOTE(_CS6), WD_NOTE(_DS6), H__NOTE(_CS6), WD_NOTE(_DS6), H__NOTE(_CS6), H__NOTE(_DS6), H__NOTE(_FS6), \
779 H__NOTE(_GS6), H__NOTE(_AS6), H__NOTE(_CS7), H__NOTE(_AS6), H__NOTE(_GS6), H__NOTE(_FS6), H__NOTE(_DS6), W__NOTE(_FS6), \ 778 H__NOTE(_GS6), H__NOTE(_AS6), H__NOTE(_CS7), H__NOTE(_AS6), H__NOTE(_GS6), H__NOTE(_FS6), H__NOTE(_DS6), W__NOTE(_FS6), \
780 H__NOTE(_CS6), H__NOTE(_DS6), W__NOTE(_FS6), H__NOTE(_FS6), H__NOTE(_GS6), H__NOTE(_FS6), H__NOTE(_GS6), H__NOTE(_FS6), \ 779 H__NOTE(_CS6), H__NOTE(_DS6), W__NOTE(_FS6), H__NOTE(_FS6), H__NOTE(_GS6), H__NOTE(_FS6), H__NOTE(_GS6), H__NOTE(_FS6), \
781 B__NOTE(_FS6), 780 B__NOTE(_FS6),
782 781
783#define NOCTURNE_OP_9_NO_1 \ 782#define NOCTURNE_OP_9_NO_1 \
784 H__NOTE(_BF5), H__NOTE(_C6), H__NOTE(_DF6), H__NOTE(_A5), H__NOTE(_BF5), H__NOTE(_GF5), W__NOTE(_F5), W__NOTE(_F5), W__NOTE(_F5), \ 783 H__NOTE(_BF5), H__NOTE(_C6), H__NOTE(_DF6), H__NOTE(_A5), H__NOTE(_BF5), H__NOTE(_GF5), W__NOTE(_F5), W__NOTE(_F5), W__NOTE(_F5), \
@@ -790,6 +789,6 @@
790 B__NOTE(_DF5), W__NOTE(_BF4), W__NOTE(_BF5), W__NOTE(_BF5), W__NOTE(_BF5), BD_NOTE(_AF5), W__NOTE(_DF5), H__NOTE(_BF4), \ 789 B__NOTE(_DF5), W__NOTE(_BF4), W__NOTE(_BF5), W__NOTE(_BF5), W__NOTE(_BF5), BD_NOTE(_AF5), W__NOTE(_DF5), H__NOTE(_BF4), \
791 H__NOTE(_C5), H__NOTE(_DF5), H__NOTE(_GF5), H__NOTE(_GF5), BD_NOTE(_F5), W__NOTE(_EF5), H__NOTE(_F5), H__NOTE(_EF5), \ 790 H__NOTE(_C5), H__NOTE(_DF5), H__NOTE(_GF5), H__NOTE(_GF5), BD_NOTE(_F5), W__NOTE(_EF5), H__NOTE(_F5), H__NOTE(_EF5), \
792 H__NOTE(_DF5), H__NOTE(_A4), B__NOTE(_AF4), W__NOTE(_DF5), W__NOTE(_EF5), H__NOTE(_F5), H__NOTE(_EF5), H__NOTE(_DF5), \ 791 H__NOTE(_DF5), H__NOTE(_A4), B__NOTE(_AF4), W__NOTE(_DF5), W__NOTE(_EF5), H__NOTE(_F5), H__NOTE(_EF5), H__NOTE(_DF5), \
793 H__NOTE(_EF5), BD_NOTE(_F5), 792 H__NOTE(_EF5), BD_NOTE(_F5),
794 793
795#endif 794#endif
diff --git a/users/pvinis/config.h b/users/pvinis/config.h
new file mode 100644
index 000000000..7f17f2d02
--- /dev/null
+++ b/users/pvinis/config.h
@@ -0,0 +1,9 @@
1#pragma once
2
3#ifdef AUDIO_ENABLE
4// #define STARTUP_SONG SONG(SONIC_RING)
5#endif
6
7// allow rolling when keys have hold functionality
8#define IGNORE_MOD_TAP_INTERRUPT
9// #define TAPPING_TERM 150
diff --git a/users/pvinis/pvinis.c b/users/pvinis/pvinis.c
new file mode 100644
index 000000000..754403579
--- /dev/null
+++ b/users/pvinis/pvinis.c
@@ -0,0 +1,79 @@
1#include "pvinis.h"
2#include "version.h"
3
4#ifdef AUDIO_ENABLE
5#include "audio.h"
6#endif // AUDIO_ENABLE
7
8
9#ifdef AUDIO_ENABLE
10// float tone_katamari_rolling_star[][2] = SONG(KATAMARI_ROLLING_STAR);
11#endif // AUDIO_ENABLE
12
13
14// SYMBOL + SYSCTL = KBCTL
15uint32_t layer_state_set_user(uint32_t state) {
16 uint32_t intermediate_state = update_tri_layer_state(state, LR_SYMBOL, LR_SYSCTL, LR_KBCTL);
17 intermediate_state = layer_state_set_user_local(intermediate_state);
18 return intermediate_state;
19}
20
21
22// functions for the individual keymaps to implement if they need something extra
23__attribute__ ((weak))
24bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
25 return true;
26}
27
28
29// handle my own keycodes
30bool process_record_user(uint16_t keycode, keyrecord_t *record) {
31 switch (keycode) {
32
33 case PV_VRSN:
34 if (record->event.pressed) {
35 SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
36 }
37 return false;
38
39 case PV_MAKE:
40 if (!record->event.pressed) {
41 SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP
42#if (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU))
43 ":dfu"
44#elif defined(BOOTLOADER_HALFKAY)
45 ":teensy"
46#elif defined(BOOTLOADER_CATERINA)
47 ":avrdude"
48#endif
49 SS_TAP(X_ENTER)
50 );
51 }
52 return false;
53
54 case PV_FLSH:
55 reset_keyboard();
56 return false;
57
58 case PV_KTMR:
59 if (record->event.pressed) {
60#ifdef AUDIO_ENABLE
61 // PLAY_SONG(tone_katamari_rolling_star);
62#endif
63 }
64 return false;
65 }
66 return process_record_keymap(keycode, record);
67}
68
69
70#ifdef TAP_DANCE_ENABLE
71qk_tap_dance_action_t tap_dance_actions[] = {
72};
73#endif // TAP_DANCE_ENABLE
74
75
76// init stuff
77void keyboard_post_init_user(void) {
78 keyboard_post_init_user_local();
79}
diff --git a/users/pvinis/pvinis.h b/users/pvinis/pvinis.h
new file mode 100644
index 000000000..0c5e2841a
--- /dev/null
+++ b/users/pvinis/pvinis.h
@@ -0,0 +1,152 @@
1#pragma once
2
3#include "quantum.h"
4
5
6// my own keycodes
7enum userspace_custom_keycodes {
8 PV_ = SAFE_RANGE,
9
10 PV_VRSN, // prints firmware version
11 PV_MAKE, // prints the make command of the keyboard
12 PV_FLSH, // resets keyboard
13 PV_KTMR, // play katamari music
14
15 PV_SAFE_RANGE, // used for extra keycodes in the individual keymaps
16};
17
18enum tap_dance_indexes {
19 // tap dance
20 TD_FLSH, // flash keyboard (as if the physical flash key was pressed)
21};
22
23#define ALLM(kc) LCAG(kc) // easier name for left ctrl-alt-gui
24#define PV_ESCC CTL_T(KC_ESC) // esc on tap, ctrl on hold
25#define PV_LOCK LCTL(LSFT(KC_PWR)) // lock computer
26#define TD_3FLS TD(TD_FLSH) // tap dance 3 times for flash
27
28
29// layers
30enum {
31 LR_BASE = 0, // used for basic keys like the surrounding ctrl, cmd, etc
32
33 LR_QWERTY,
34 LR_CARPALX,
35
36 LR_SYMBOL, // symbol input (!, @, #, etc)
37 LR_SYSCTL, // system control (music, volume, keyboard flash, etc)
38 LR_KBCTL, // keyboard control (version, make, flash, etc)
39};
40
41
42// layer switchers
43#define BASE TO(LR_BASE)
44#define QWERTY TO(LR_QWERTY)
45#define CARPALX TO(LR_CARPALX)
46
47#define SYMBOL MO(LR_SYMBOL)
48#define SYSCTL MO(LR_SYSCTL)
49#define KBCTL MO(LR_KBCTL)
50
51
52// layout parts for easy reuse between keyboard keymaps
53
54// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
55// | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 |
56// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
57#define ________________NUMBERS_L__________________ KC_1, KC_2, KC_3, KC_4, KC_5
58#define ________________NUMBERS_R__________________ KC_6, KC_7, KC_8, KC_9, KC_0
59
60// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
61// | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 |
62// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
63#define ______________________F_L__________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
64#define ______________________F_R__________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
65
66// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
67// | Q | W | E | R | T | | Y | U | I | O | P |
68// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----,
69// | A | S | D | F | G | | H | J | K | L | ; |
70// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----,
71// | Z | X | C | V | B | | N | M | , | . | / |
72// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
73#define _________________QWERTY_L1_________________ KC_Q , KC_W , KC_E , KC_R , KC_T
74#define _________________QWERTY_L2_________________ KC_A , KC_S , KC_D , KC_F , KC_G
75#define _________________QWERTY_L3_________________ KC_Z , KC_X , KC_C , KC_V , KC_B
76
77#define _________________QWERTY_R1_________________ KC_Y , KC_U , KC_I , KC_O , KC_P
78#define _________________QWERTY_R2_________________ KC_H , KC_J , KC_K , KC_L , KC_SCLN
79#define _________________QWERTY_R3_________________ KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH
80
81#define _____________MOD_QWERTY_L2_________________ KC_A , SFT_T(KC_S), GUI_T(KC_D), KC_F , KC_G
82#define _____________MOD_QWERTY_R2_________________ KC_H , KC_J , GUI_T(KC_K), SFT_T(KC_L), KC_SCLN
83
84// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
85// | Q | G | M | L | W | | Y | F | I | O | P |
86// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----,
87// | D | S | T | N | R | | I | A | K | L | ; |
88// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----,
89// | Z | X | C | V | J | | K | P | , | . | / |
90// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
91#define ________________CARPALX_L1_________________ KC_Q , KC_G , KC_M , KC_L , KC_W
92#define ________________CARPALX_L2_________________ KC_D , KC_S , KC_T , KC_N , KC_R
93#define ________________CARPALX_L3_________________ KC_Z , KC_X , KC_C , KC_V , KC_J
94
95#define ________________CARPALX_R1_________________ KC_Y , KC_F , KC_U , KC_B , KC_SCLN
96#define ________________CARPALX_R2_________________ KC_I , KC_A , KC_E , KC_O , KC_H
97#define ________________CARPALX_R3_________________ KC_K , KC_P , KC_COMM, KC_DOT , KC_SLSH
98
99// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
100// | ! | @ | { | } | _ | | \ | | ` | | |
101// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----,
102// | # | $ | ( | ) | - | | = | & | ' | " | | |
103// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----,
104// | % | ^ | [ | ] | + | | * | ~ | < | > | / |
105// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
106#define _________________SYMBOL_L1_________________ KC_EXLM, KC_AT , KC_LCBR, KC_RCBR, KC_UNDS
107#define _________________SYMBOL_L2_________________ KC_HASH, KC_DLR , KC_LPRN, KC_RPRN, KC_MINS
108#define _________________SYMBOL_L3_________________ KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_PLUS
109
110#define _________________SYMBOL_R1_________________ KC_BSLS, _______, KC_GRV , _______, _______
111#define _________________SYMBOL_R2_________________ KC_EQL , KC_AMPR, KC_QUOT, KC_DQUO, KC_PIPE
112#define _________________SYMBOL_R3_________________ KC_ASTR, KC_TILD, KC_LABK, KC_RABK, KC_SLSH
113
114// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
115// | | | | | | |MUTE |HOME | ^ | END | |
116// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----,
117// | | | | | | |VOLUP| < | v | > | |
118// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----,
119// | | | | | | |VOLDN|MPREV|MPLAY|MNEXT| |
120// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
121#define _________________SYSCTL_L1_________________
122#define _________________SYSCTL_L2_________________
123#define _________________SYSCTL_L3_________________
124
125// vol v ctl v
126#define _________________SYSCTL_R1_________________ KC_MUTE , KC_HOME , KC_UP , KC_END , PV_LOCK
127#define _________________SYSCTL_R2_________________ KC_VOLU , KC_LEFT , KC_DOWN , KC_RGHT /* < arrows */ , KC_SLEP
128#define _________________SYSCTL_R3_________________ KC_VOLD , KC_MPRV , KC_MPLY , KC_MNXT /* < music */ , KC_PWR
129
130// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
131// |XXXXX|XXXXX|XXXXX|XXXXX|XXXXX| |XXXXX|XXXXX|XXXXX|XXXXX|XXXXX|
132// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----,
133// |XXXXX|XXXXX|XXXXX|XXXXX|XXXXX| |XXXXX|VERSN|MAKE |FLASH|XXXXX|
134// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----,
135// |XXXXX|XXXXX|XXXXX|XXXXX|XXXXX| |XXXXX|XXXXX|XXXXX|XXXXX|XXXXX|
136// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
137#define __________________KBCTL_L1_________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
138#define __________________KBCTL_L2_________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
139#define __________________KBCTL_L3_________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
140
141#define __________________KBCTL_R1_________________ XXXXXXX, XXXXXXX, XXXXXXX, PV_KTMR, XXXXXXX
142#define __________________KBCTL_R2_________________ XXXXXXX, PV_VRSN, PV_MAKE, PV_FLSH, XXXXXXX
143#define __________________KBCTL_R3_________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
144
145// we need wrappers in order for these definitions, because they need to be expanded before being used as arguments to the LAYOUT_xxx macro
146#define LAYOUT_ergodox_pretty_wrapper(...) LAYOUT_ergodox_pretty(__VA_ARGS__)
147#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
148
149
150// extra stuff that might be needed
151void keyboard_post_init_user_local(void);
152uint32_t layer_state_set_user_local(uint32_t state);
diff --git a/users/pvinis/rules.mk b/users/pvinis/rules.mk
new file mode 100644
index 000000000..da10cc743
--- /dev/null
+++ b/users/pvinis/rules.mk
@@ -0,0 +1,15 @@
1# add userspace file
2SRC += pvinis.c
3
4AUDIO_ENABLE = no # piezo speaker sounds
5RGBLIGHT_ENABLE = no # rgb leds underlight
6TAP_DANCE_ENABLE = yes
7BACKLIGHT_ENABLE = no # leds under keycaps
8#MOUSEKEY_ENABLE = no
9#SLEEP_LED_ENABLE = no # no led blinking while sleeping
10#NKRO_ENABLE = yes
11
12# make firmware smaller
13LINK_TIME_OPTIMIZATION_ENABLE = yes
14CONSOLE_ENABLE = no
15COMMAND_ENABLE = no