aboutsummaryrefslogtreecommitdiff
path: root/users/pvinis
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 /users/pvinis
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
Diffstat (limited to 'users/pvinis')
-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
4 files changed, 255 insertions, 0 deletions
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