aboutsummaryrefslogtreecommitdiff
path: root/users/pvinis/pvinis.h
diff options
context:
space:
mode:
Diffstat (limited to 'users/pvinis/pvinis.h')
-rw-r--r--users/pvinis/pvinis.h228
1 files changed, 124 insertions, 104 deletions
diff --git a/users/pvinis/pvinis.h b/users/pvinis/pvinis.h
index 0c75c6a66..c50033a44 100644
--- a/users/pvinis/pvinis.h
+++ b/users/pvinis/pvinis.h
@@ -2,84 +2,103 @@
2 2
3#include "quantum.h" 3#include "quantum.h"
4 4
5 5// My own keycodes.
6// my own keycodes
7enum userspace_custom_keycodes { 6enum userspace_custom_keycodes {
8 PV_ = SAFE_RANGE, 7 PV_ = SAFE_RANGE,
8
9 PV_VRSN, // Print firmware version.
10 PV_MAKE, // Print the make command of the keyboard.
11 PV_FLSH, // Reset keyboard.
9 12
10 PV_VRSN, // prints firmware version 13 PV_SSNC, // Play Sonic Ring.
11 PV_MAKE, // prints the make command of the keyboard 14 PV_SCIN, // Play Coin Sound.
12 PV_FLSH, // resets keyboard
13 PV_KTMR, // play katamari music
14 15
15 PV_SAFE_RANGE, // used for extra keycodes in the individual keymaps 16 PV_TEST, // For quick testing purposes.
17
18 PV_SAFE_RANGE, // Used for extra keycodes in individual keymaps.
16}; 19};
17 20
18enum tap_dance_indexes { 21enum tap_dance_indexes {
19 // tap dance 22 // tap dance
20 TD_FLSH, // flash keyboard (as if the physical flash key was pressed) 23 TD_FLSH, // flash keyboard (as if the physical flash key was pressed)
21}; 24};
22 25
23#define ALLM(kc) LCAG(kc) // easier name for left ctrl-alt-gui 26#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 27#define PV_ESCC CTL_T(KC_ESC) // esc on tap, ctrl on hold.
25#define PV_LOCK LCTL(LSFT(KC_PWR)) // lock computer 28#define PV_LOCK LCTL(LSFT(KC_PWR)) // Lock computer.
26#define TD_3FLS TD(TD_FLSH) // tap dance 3 times for flash 29#define TD_3FLS TD(TD_FLSH) // Tap dance 3 times for flash.
27
28 30
29// layers 31// Layers.
30enum { 32enum {
31 LR_BASE = 0, // used for basic keys like the surrounding ctrl, cmd, etc 33 LR_BASE = 0, // used for basic keys like the surrounding ctrl, cmd, etc
32 34
33 LR_QWERTY, 35 LR_QWERTY,
34 LR_CARPALX, 36 LR_CARPALX,
37 LR_GAME1, // game layout (space on the left thumb, no modifiers, etc)
38 LR_GAME2, // game layout (space on the left thumb, no modifiers, etc, arrows)
35 39
36 LR_SYMBOL, // symbol input (!, @, #, etc) 40 LR_SYMBOL, // symbol input (!, @, #, etc)
37 LR_SYSCTL, // system control (music, volume, keyboard flash, etc) 41 LR_SYSCTL, // system control (music, volume, keyboard flash, etc)
38 LR_KBCTL, // keyboard control (version, make, flash, etc) 42 LR_KBCTL, // keyboard control (version, make, flash, etc)
39};
40 43
44};
41 45
42// layer switchers 46// Layer switchers.
43#define BASE TO(LR_BASE) 47#define BASE TO(LR_BASE)
44#define QWERTY TO(LR_QWERTY) 48#define QWERTY TO(LR_QWERTY)
45#define CARPALX TO(LR_CARPALX) 49#define CARPALX TO(LR_CARPALX)
46 50#define GAME1 TO(LR_GAME1)
47#define SYMBOL MO(LR_SYMBOL) 51#define GAME2 TO(LR_GAME2)
48#define SYSCTL MO(LR_SYSCTL) 52
49#define KBCTL MO(LR_KBCTL) 53#define SYMBOL MO(LR_SYMBOL)
50 54#define SYSCTL MO(LR_SYSCTL)
51 55#define KBCTL MO(LR_KBCTL)
52// layout parts for easy reuse between keyboard keymaps 56
53 57// Layout parts for easy reuse between keyboard keymaps.
54// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----, 58
55// | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | 59// Transparent.
56// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----, 60// ┌─────┬─────┬─────┬─────┬─────┐
57#define ________________NUMBERS_L__________________ KC_1, KC_2, KC_3, KC_4, KC_5 61// │ │ │ │ │ │
58#define ________________NUMBERS_R__________________ KC_6, KC_7, KC_8, KC_9, KC_0 62// └─────┴─────┴─────┴─────┴─────┘
59 63#define ___________________________________________ _______, _______, _______, _______, _______
60// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----, 64
61// | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | 65// Numbers.
62// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----, 66// ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
63#define ______________________F_L__________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5 67// │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │
64#define ______________________F_R__________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 68// └─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┘
65 69#define ________________NUMBERS_L__________________ KC_1, KC_2, KC_3, KC_4, KC_5
66// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----, 70#define ________________NUMBERS_R__________________ KC_6, KC_7, KC_8, KC_9, KC_0
67// | Q | W | E | R | T | | Y | U | I | O | P | 71
68// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----, 72// F keys.
69// | A | S | D | F | G | | H | J | K | L | ; | 73// ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
70// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----, 74// │ F1 │ F2 │ F3 │ F4 │ F5 │ │ F6 │ F7 │ F8 │ F9 │ F10 │
71// | Z | X | C | V | B | | N | M | , | . | / | 75// └─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┘
72// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----, 76#define ______________________F_L__________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
73#define _________________QWERTY_L1_________________ KC_Q , KC_W , KC_E , KC_R , KC_T 77#define ______________________F_R__________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
74#define _________________QWERTY_L2_________________ KC_A , KC_S , KC_D , KC_F , KC_G 78
75#define _________________QWERTY_L3_________________ KC_Z , KC_X , KC_C , KC_V , KC_B 79// QWERTY.
76 80// ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
77#define _________________QWERTY_R1_________________ KC_Y , KC_U , KC_I , KC_O , KC_P 81// │ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │
78#define _________________QWERTY_R2_________________ KC_H , KC_J , KC_K , KC_L , KC_SCLN 82// ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤
79#define _________________QWERTY_R3_________________ KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH 83// │ A │ S │ D ┃ F ┃ G │ │ H ┃ J ┃ K │ L │ ; │
80 84// ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤
81#define _____________MOD_QWERTY_L2_________________ CTL_T(KC_A), SFT_T(KC_S), GUI_T(KC_D), ALT_T(KC_F), KC_G 85// │ Z │ X │ C │ V │ B │ │ N │ M │ , │ . │ / │
82#define _____________MOD_QWERTY_R2_________________ KC_H , ALT_T(KC_J), GUI_T(KC_K), SFT_T(KC_L), CTL_T(KC_SCLN) 86// └─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┘
87#define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
88#define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
89#define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
90
91#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
92#define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
93#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
94
95// QWERTY with mods.
96// ┌───────┬───────┬───────┲━━━━━━━┱───────┐ ┌───────┲━━━━━━━┱───────┬───────┬───────┐
97// │ ctl/A │ sft/S │ cmd/D ┃ opt/F ┃ G │ │ H ┃ opt/J ┃ cmd/K │ sft/L │ ctl/; │
98// └───────┴───────┴───────┺━━━━━━━┹───────┘ └───────┺━━━━━━━┹───────┴───────┴───────┘
99// #define _____________MOD_QWERTY_L2_________________ CTL_T(KC_A), SFT_T(KC_S), GUI_T(KC_D), ALT_T(KC_F), KC_G
100#define _____________MOD_QWERTY_L2_________________ KC_A, KC_S, KC_D, ALT_T(KC_F), KC_G
101#define _____________MOD_QWERTY_R2_________________ KC_H, ALT_T(KC_J), GUI_T(KC_K), SFT_T(KC_L), CTL_T(KC_SCLN)
83 102
84// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----, 103// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
85// | Q | G | M | L | W | | Y | F | I | O | P | 104// | Q | G | M | L | W | | Y | F | I | O | P |
@@ -88,13 +107,13 @@ enum {
88// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----, 107// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----,
89// | Z | X | C | V | J | | K | P | , | . | / | 108// | Z | X | C | V | J | | K | P | , | . | / |
90// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----, 109// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
91#define ________________CARPALX_L1_________________ KC_Q , KC_G , KC_M , KC_L , KC_W 110#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 111#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 112#define ________________CARPALX_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_J
94 113
95#define ________________CARPALX_R1_________________ KC_Y , KC_F , KC_U , KC_B , KC_SCLN 114#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 115#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 116#define ________________CARPALX_R3_________________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH
98 117
99// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----, 118// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
100// | ! | @ | { | } | _ | | \ | | ` | | | 119// | ! | @ | { | } | _ | | \ | | ` | | |
@@ -103,50 +122,51 @@ enum {
103// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----, 122// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----,
104// | % | ^ | [ | ] | + | | * | ~ | < | > | / | 123// | % | ^ | [ | ] | + | | * | ~ | < | > | / |
105// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----, 124// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
106#define _________________SYMBOL_L1_________________ KC_EXLM, KC_AT , KC_LCBR, KC_RCBR, KC_UNDS 125#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 126#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 127#define _________________SYMBOL_L3_________________ KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_PLUS
109 128
110#define _________________SYMBOL_R1_________________ KC_BSLS, _______, KC_GRV , _______, _______ 129#define _________________SYMBOL_R1_________________ KC_BSLS, _______, KC_GRV, _______, _______
111#define _________________SYMBOL_R2_________________ KC_EQL , KC_AMPR, KC_QUOT, KC_DQUO, KC_PIPE 130#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 131#define _________________SYMBOL_R3_________________ KC_ASTR, KC_TILD, KC_LABK, KC_RABK, KC_SLSH
113 132
114// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----, 133// System Control.
115// | | | | | | |MUTE |HOME | ^ | END | | 134// vol ↓ ctl ↓
116// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----, 135// ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
117// | | | | | | |VOLUP| < | v | > | | 136// │ │ │ │ │ │ │MUTE │HOME │ ↑ │ END │LOCK │
118// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----, 137// ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤
119// | | | | | | |VOLDN|MPREV|MPLAY|MNEXT| | 138// │ │ │ ┃ ┃ │ │VOLUP┃ ← ┃ ↓ │ → │SLEEP│ ← arrows
120// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----, 139// ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤
121#define _________________SYSCTL_L1_________________ 140// │ │ │ │ │ │ │VOLDN│MPREV│MPLAY│MNEXT│ PWR │ ← music
122#define _________________SYSCTL_L2_________________ 141// └─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┘
123#define _________________SYSCTL_L3_________________ 142#define _________________SYSCTL_L1_________________ XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_BTN1, XXXXXXX
143#define _________________SYSCTL_L2_________________ XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_RIGHT, KC_MS_WH_UP
144#define _________________SYSCTL_L3_________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_WH_DOWN
124 145
125// vol v ctl v 146// vol v ctl v
126#define _________________SYSCTL_R1_________________ KC_MUTE , KC_HOME , KC_UP , KC_END , PV_LOCK 147#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 148#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 149#define _________________SYSCTL_R3_________________ KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT /* < music */, KC_PWR
129 150
130// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----, 151// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
131// |XXXXX|XXXXX|XXXXX|XXXXX|XXXXX| |XXXXX|XXXXX|XXXXX|XXXXX|XXXXX| 152// |GAME |CRPLX|XXXXX|XXXXX|XXXXX| |XXXXX|XXXXX|XXXXX|XXXXX|XXXXX|
132// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----, 153// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----,
133// |XXXXX|XXXXX|XXXXX|XXXXX|XXXXX| |XXXXX|VERSN|MAKE |FLASH|XXXXX| 154// |XXXXX|XXXXX|XXXXX|XXXXX|XXXXX| |XXXXX|VERSN|MAKE |FLASH|XXXXX|
134// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----, 155// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----,
135// |XXXXX|XXXXX|XXXXX|XXXXX|XXXXX| |XXXXX|XXXXX|XXXXX|XXXXX|XXXXX| 156// |XXXXX|XXXXX|XXXXX|XXXXX|XXXXX| |XXXXX|XXXXX|XXXXX|XXXXX|XXXXX|
136// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----, 157// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
137#define __________________KBCTL_L1_________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX 158#define __________________KBCTL_L1_________________ PV_SSNC, PV_SCIN, PV_TEST, XXXXXXX, XXXXXXX
138#define __________________KBCTL_L2_________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX 159#define __________________KBCTL_L2_________________ RGB_TOG, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX
139#define __________________KBCTL_L3_________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX 160#define __________________KBCTL_L3_________________ RGB_MOD, RGB_VAD, 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 161
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 162#define __________________KBCTL_R1_________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
146#define LAYOUT_ergodox_pretty_wrapper(...) LAYOUT_ergodox_pretty(__VA_ARGS__) 163#define __________________KBCTL_R2_________________ XXXXXXX, PV_VRSN, PV_MAKE, PV_FLSH, XXXXXXX
147#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) 164#define __________________KBCTL_R3_________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
148 165
166// We need wrappers in order for these definitions, because they need to be expanded before being used as arguments to the LAYOUT_xxx macro.
167#define LAYOUT_ergodox_pretty_wrapper(...) LAYOUT_ergodox_pretty(__VA_ARGS__)
168#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
149 169
150// extra stuff that might be needed 170// Extra stuff that might be needed.
151void keyboard_post_init_user_local(void); 171void keyboard_post_init_user_keymap(void);
152uint32_t layer_state_set_user_local(uint32_t state); 172uint32_t layer_state_set_user_keymap(uint32_t state);