diff options
author | Pavlos Vinieratos <pvinis@gmail.com> | 2020-04-13 20:59:04 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-13 11:59:04 -0700 |
commit | f6b40da7f854d461f30a3e525f4e36e51dac5db4 (patch) | |
tree | 84f56671b52ae7a33913e672e22300ba90a63da5 | |
parent | 6fb048fdafe58897f64efa8c4b9455bbcb992110 (diff) | |
download | firmware-f6b40da7f854d461f30a3e525f4e36e51dac5db4.tar.gz firmware-f6b40da7f854d461f30a3e525f4e36e51dac5db4.tar.bz2 firmware-f6b40da7f854d461f30a3e525f4e36e51dac5db4.zip |
update pvinis keymap (#8746)
* update a bunch of stuff
Better rules, better config, added encoders, lights, audio.
* some fmt
* more fmt
-rw-r--r-- | keyboards/ergodox_ez/keymaps/pvinis/keymap.c | 411 | ||||
-rw-r--r-- | keyboards/keebio/iris/keymaps/pvinis/config.h | 36 | ||||
-rw-r--r-- | keyboards/keebio/iris/keymaps/pvinis/keymap.c | 267 | ||||
-rw-r--r-- | keyboards/keebio/iris/keymaps/pvinis/rules.mk | 11 | ||||
-rw-r--r-- | users/pvinis/config.h | 9 | ||||
-rw-r--r-- | users/pvinis/pvinis.c | 127 | ||||
-rw-r--r-- | users/pvinis/pvinis.h | 228 | ||||
-rw-r--r-- | users/pvinis/rules.mk | 34 |
8 files changed, 631 insertions, 492 deletions
diff --git a/keyboards/ergodox_ez/keymaps/pvinis/keymap.c b/keyboards/ergodox_ez/keymaps/pvinis/keymap.c index dc804d632..c4b1b3b82 100644 --- a/keyboards/ergodox_ez/keymaps/pvinis/keymap.c +++ b/keyboards/ergodox_ez/keymaps/pvinis/keymap.c @@ -1,38 +1,36 @@ // pvinis ergodox ez -// ,------------------------------------. ,------------------------------------. -// | | | | | | | | | | | | | | | | -// |------+----+----+----+----+---------| |----+----+----+----+----+----+------| -// | | | | | | | | | | | | | | | | -// |------+----+----+----x----x----| | | |----x----x----+----+----+------| -// | | | | | | |----| |----| | | | | | | -// |------+----+----+----x----x----| | | |----x----x----+----+----+------| -// | | | | | | | | | | | | | | | | -// `------+----+----+----+----+---------' `---------+----+----+----+----+------' -// | | | | | | | | | | | | -// `------------------------' `------------------------' -// ,---------. ,---------. -// | | | | | | -// ,----+----+----| |----+----+----. -// | | | | | | | | -// | | |----| |----| | | -// | | | | | | | | -// `--------------' `--------------' - +// ,------------------------------------. ┌────┬────┬────┬────┬────┬────┬──────┐ +// | | | | | | | | │ │ │ │ │ │ │ │ +// |------+----+----+----+----+---------| ├────┼────┼────┼────┼────┼────┼──────┤ +// | | | | | | | | │ │ │ │ │ │ │ │ +// |------+----+----+----x----x----| | │ ├────╆━━━━╅────┼────┼────┼──────┤ +// | | | | | | |----| ├────┤ ┃ ┃ │ │ │ │ +// |------+----+----+----x----x----| | │ ├────╄━━━━╃────┼────┼────┼──────┤ +// | | | | | | | | │ │ │ │ │ │ │ │ +// `------+----+----+----+----+---------' └────┴────┼────┼────┼────┼────┼────┬─┘ +// | | | | | | │ │ │ │ │ │ +// `------------------------' └────┴────┴────┴────┴────┘ +// ,---------. ┌────┬────┐ +// | | | │ │ │ +// ,----+----+----| ├────┼────┼────┐ +// | | | | │ │ │ │ +// | | |----| ├────┤ │ │ +// | | | | │ │ │ │ +// `--------------' └────┴────┴────┘ #include QMK_KEYBOARD_H #include "pvinis.h" #include "mousekey.h" - // layers enum { - MOUSE = 8, + MOUSE = 8, }; // extra keys enum { - NONE = 30, - TD_LAYR, // SYSCTL and MOUSE layer switch + NONE = 30, + TD_LAYR, // SYSCTL and MOUSE layer switch }; // application selection @@ -41,158 +39,170 @@ enum { #define AP_XCOD ALLM(KC_X) #define AP_MSGR ALLM(KC_M) - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // ,------------------------------------. ,------------------------------------. - // |4xFLSH| | | | | |Opt | | | | | | | | | - // |------+----+----+----+----+---------| |----+----+----+----+----+----+------| - // | Tab | | | | | | | | | | | | | | | - // |------+----+----+----x----x----| | | |----x----x----+----+----+------| - // |EscCtl| | | | | |----| |----| | | | | | Ent | - // |------+----+----+----x----x----| | | |----x----x----+----+----+------| - // |LShift| | | | | | | | | | | | | |RShift| - // `------+----+----+----+----+---------' `---------+----+----+----+----+------' - // | | | | |Cmd | | | | | | | - // `------------------------' `------------------------' - // ,---------. ,---------. - // |QWER| | | | | - // ,----+----+----| |----+----+----. - // | Ba | L | | | | | | - // | ck |Shi |----| |----| |Spc | - // | spc| ft | | | | | | - // `--------------' `--------------' - [LR_BASE] = LAYOUT_ergodox_pretty_wrapper( - TD_3FLS, _______, _______, _______, _______, _______, KC_LALT, _______, _______, _______, _______, _______, _______, _______, - KC_TAB , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - PV_ESCC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ENT , - KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT, - _______, _______, _______, KC_LGUI, SYMBOL , SYSCTL , KC_RALT, _______, _______, _______, - QWERTY , CARPALX, _______, _______, - _______, _______, - KC_BSPC, _______, _______, _______, _______, KC_SPC - ), + // ,------------------------------------. ,------------------------------------. + // |4xFLSH| | | | | |Opt | | | | | | | | | + // |------+----+----+----+----+---------| |----+----+----+----+----+----+------| + // | Tab | | | | | | | | | | | | | | | + // |------+----+----+----x----x----| | | |----x----x----+----+----+------| + // |EscCtl| | | | | |----| |----| | | | | | Ent | + // |------+----+----+----x----x----| | | |----x----x----+----+----+------| + // |LShift| | | | | | | | | | | | | |RShift| + // `------+----+----+----+----+---------' `---------+----+----+----+----+------' + // | | | |Cmd |LOWR| |RASE|RAlt| | | | + // `------------------------' `------------------------' + // ,---------. ,---------. + // |QWER| | | | | + // ,----+----+----| |----+----+----. + // | Ba | L | | | | | | + // | ck |Shi |----| |----| |Spc | + // | spc| ft | | | | | | + // `--------------' `--------------' + [LR_BASE] = LAYOUT_ergodox_pretty_wrapper( + // clang-format off + TD_3FLS, _______, _______, _______, _______, _______, KC_LALT, _______, _______, _______, _______, _______, _______, _______, + KC_TAB , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + PV_ESCC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ENT , + KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT, + _______, _______, _______, KC_LGUI, SYMBOL , SYSCTL , KC_RALT, _______, _______, _______, + QWERTY , CARPALX, _______, _______, + _______, _______, + KC_BSPC, _______, _______, _______, _______, KC_SPC + // clang-format on + ), - // ,------------------------------------. ,------------------------------------. - // | | NUMBERS_L | | | - | NUMBERS_R | = | - // |------+----+----+----+----+---------| |----+----+----+----+----+----+------| - // | | | [ | | ] | | | - // |------+ | | | | +------| - // | | QWERTY_L |----| |----| QWERTY_R | | - // |------+ | ( | | ) | +------| - // | | | | | | | | - // `------+----+----+----+----+---------' `---------+----+----+----+----+------' - // | | ` | | | | | | | | ' | | - // `------------------------' `------------------------' - // ,---------. ,---------. - // | | | | | | - // ,----+----+----| |----+----+----. - // | | | | | | | | - // | | |----| |----| | | - // | | | | | | | | - // `--------------' `--------------' - // See `users/pvinis/pvinis.h` - [LR_QWERTY] = LAYOUT_ergodox_pretty_wrapper( - _______, ________________NUMBERS_L__________________, _______, KC_MINS, ________________NUMBERS_R__________________, KC_EQL , - _______, _________________QWERTY_L1_________________, KC_LBRC, KC_RBRC, _________________QWERTY_R1_________________, _______, - _______, _____________MOD_QWERTY_L2_________________, _____________MOD_QWERTY_R2_________________, _______, - _______, _________________QWERTY_L3_________________, KC_LPRN, KC_RPRN, _________________QWERTY_R3_________________, _______, - _______, KC_GRV, _______, _______, _______, _______, _______, _______, KC_QUOT , _______, - _______, _______, _______, _______, - _______, _______, - _______, _______, _______, _______, _______, _______ + // ,------------------------------------. ,------------------------------------. + // | | NUMBERS_L | | | - | NUMBERS_R | = | + // |------+----+----+----+----+---------| |----+----+----+----+----+----+------| + // | | | [ | | ] | | | + // |------+ | | | | +------| + // | | QWERTY_L |----| |----| QWERTY_R | | + // |------+ | ( | | ) | +------| + // | | | | | | | | + // `------+----+----+----+----+---------' `---------+----+----+----+----+------' + // | | ` | | | | | | | | ' | | + // `------------------------' `------------------------' + // ,---------. ,---------. + // | | | | | | + // ,----+----+----| |----+----+----. + // | | | | | | | | + // | | |----| |----| | | + // | | | | | | | | + // `--------------' `--------------' + // See `users/pvinis/pvinis.h` + [LR_QWERTY] = LAYOUT_ergodox_pretty_wrapper( + // clang-format off + _______, ________________NUMBERS_L__________________, _______, KC_MINS, ________________NUMBERS_R__________________, KC_EQL , + _______, _________________QWERTY_L1_________________, KC_LBRC, KC_RBRC, _________________QWERTY_R1_________________, _______, + _______, _____________MOD_QWERTY_L2_________________, _____________MOD_QWERTY_R2_________________, _______, + _______, _________________QWERTY_L3_________________, KC_LPRN, KC_RPRN, _________________QWERTY_R3_________________, _______, + _______, KC_GRV, _______, _______, _______, _______, _______, _______, KC_QUOT , _______, + _______, _______, _______, _______, + _______, _______, + _______, _______, _______, _______, _______, _______ + // clang-format off ), - // ,------------------------------------. ,------------------------------------. - // | | NUMBERS_L | | | | NUMBERS_R | | - // |------+----+----+----+----+---------| |----+----+----+----+----+----+------| - // | | | | | | | | - // |------+ | | | | +------| - // | | CARPALX_L |----| |----| CARPALX_R | | - // |------+ | | | | +------| - // | | | | | | | | - // `------+----+----+----+----+---------' `---------+----+----+----+----+------' - // | | | | | | | | | | | | - // `------------------------' `------------------------' - // ,---------. ,---------. - // | | | | | | - // ,----+----+----| |----+----+----. - // | | | | | | | | - // | | |----| |----| | | - // | | | | | | | | - // `--------------' `--------------' - // See `users/pvinis/pvinis.h` + // ,------------------------------------. ,------------------------------------. + // | | NUMBERS_L | | | | NUMBERS_R | | + // |------+----+----+----+----+---------| |----+----+----+----+----+----+------| + // | | | | | | | | + // |------+ | | | | +------| + // | | CARPALX_L |----| |----| CARPALX_R | | + // |------+ | | | | +------| + // | | | | | | | | + // `------+----+----+----+----+---------' `---------+----+----+----+----+------' + // | | | | | | | | | | | | + // `------------------------' `------------------------' + // ,---------. ,---------. + // | | | | | | + // ,----+----+----| |----+----+----. + // | | | | | | | | + // | | |----| |----| | | + // | | | | | | | | + // `--------------' `--------------' + // See `users/pvinis/pvinis.h` [LR_CARPALX] = LAYOUT_ergodox_pretty_wrapper( - _______, ________________NUMBERS_L__________________, _______, _______, ________________NUMBERS_R__________________, _______, - _______, ________________CARPALX_L1_________________, _______, _______, ________________CARPALX_R1_________________, _______, - _______, ________________CARPALX_L2_________________, ________________CARPALX_R2_________________, _______, - _______, ________________CARPALX_L3_________________, _______, _______, ________________CARPALX_R3_________________, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, - _______, _______, - _______, _______, _______, _______, _______, _______ - ), + // clang-format off + _______, ________________NUMBERS_L__________________, _______, _______, ________________NUMBERS_R__________________, _______, + _______, ________________CARPALX_L1_________________, _______, _______, ________________CARPALX_R1_________________, _______, + _______, ________________CARPALX_L2_________________, ________________CARPALX_R2_________________, _______, + _______, ________________CARPALX_L3_________________, _______, _______, ________________CARPALX_R3_________________, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, + _______, _______, _______, _______, _______, _______ + // clang-format on + ), - // See `users/pvinis/pvinis.h` - [LR_SYMBOL] = LAYOUT_ergodox_pretty_wrapper( - _______, ______________________F_L__________________, KC_F11 , KC_F12 , ______________________F_R__________________, _______, - _______, _________________SYMBOL_L1_________________, _______, _______, _________________SYMBOL_R1_________________, _______, - _______, _________________SYMBOL_L2_________________, _________________SYMBOL_R2_________________, _______, - _______, _________________SYMBOL_L3_________________, _______, _______, _________________SYMBOL_R3_________________, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, - _______, _______, - _______, _______, _______, _______, _______, _______ + // See `users/pvinis/pvinis.h` + [LR_SYMBOL] = LAYOUT_ergodox_pretty_wrapper( + // clang-format off + _______, ______________________F_L__________________, KC_F11 , KC_F12 , ______________________F_R__________________, _______, + _______, _________________SYMBOL_L1_________________, _______, _______, _________________SYMBOL_R1_________________, _______, + _______, _________________SYMBOL_L2_________________, _________________SYMBOL_R2_________________, _______, + _______, _________________SYMBOL_L3_________________, _______, _______, _________________SYMBOL_R3_________________, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, + _______, _______, _______, _______, _______, _______ + // clang-format off ), - // See `users/pvinis/pvinis.h` + // See `users/pvinis/pvinis.h` [LR_SYSCTL] = LAYOUT_ergodox_pretty_wrapper( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _________________SYSCTL_R1_________________, _______, - _______, _______, _______, _______, _______, _______, _________________SYSCTL_R2_________________, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _________________SYSCTL_R3_________________, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + // clang-format off + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _________________SYSCTL_R1_________________, _______, + _______, _______, _______, _______, _______, _______, _________________SYSCTL_R2_________________, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _________________SYSCTL_R3_________________, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, - _______, _______, - _______, _______, _______, _______, _______, _______ - ), + _______, _______, _______, _______, + _______, _______, + _______, _______, _______, _______, _______, _______ + // clang-format on + ), - // See `users/pvinis/pvinis.h` - [LR_KBCTL] = LAYOUT_ergodox_pretty_wrapper( - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, __________________KBCTL_R1_________________, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, __________________KBCTL_R2_________________, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, __________________KBCTL_R3_________________, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + // See `users/pvinis/pvinis.h` + [LR_KBCTL] = LAYOUT_ergodox_pretty_wrapper( + // clang-format off + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, __________________KBCTL_R1_________________, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, __________________KBCTL_R2_________________, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, __________________KBCTL_R3_________________, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX - ), + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + // clang-format on + ), -/* MOUSE - * a keymap to control my system. - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ^ | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | | | | | | | MsUp | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | |------| |------| |MsLeft| MsDn |MsRght| | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | |MidClk| - * ,------|------|------| |------+------+------. - * | | | | | |Left |Right | - * | | |------| |------| Click| Click| - * | | | ^ | | | | | - * `--------------------' `--------------------' - */ - [MOUSE] = LAYOUT_ergodox_pretty( + /* MOUSE + * a keymap to control my system. + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ^ | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | MsUp | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| |MsLeft| MsDn |MsRght| | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | |MidClk| + * ,------|------|------| |------+------+------. + * | | | | | |Left |Right | + * | | |------| |------| Click| Click| + * | | | ^ | | | | | + * `--------------------' `--------------------' + */ + [MOUSE] = LAYOUT_ergodox_pretty( + // clang-format off KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO @@ -212,53 +222,54 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ), + // clang-format on + ), }; - // keyboard initialization -void keyboard_post_init_user_local(void) { - ergodox_led_all_on(); - for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) { - ergodox_led_all_set(i); - wait_ms(5); - } - wait_ms(1000); - for (int i = LED_BRIGHTNESS_LO; i > 0; i--) { - ergodox_led_all_set(i); - wait_ms(10); - } - ergodox_led_all_off(); +void keyboard_post_init_user_keymap(void) { + ergodox_led_all_on(); + for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) { + ergodox_led_all_set(i); + wait_ms(5); + } + wait_ms(1000); + for (int i = LED_BRIGHTNESS_LO; i > 0; i--) { + ergodox_led_all_set(i); + wait_ms(10); + } + ergodox_led_all_off(); - // restore default brightness for future use - ergodox_led_all_set(LED_BRIGHTNESS_HI); + // restore default brightness for future use + ergodox_led_all_set(LED_BRIGHTNESS_HI); } // light up leds based on the layer -uint32_t layer_state_set_user_local(uint32_t state) { - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - switch (biton32(state)) { - case LR_SYSCTL: - ergodox_right_led_3_on(); // blue - break; - case LR_KBCTL: - ergodox_right_led_1_on(); // red - break; - case LR_SYMBOL: - ergodox_right_led_2_on(); // green - break; - default: break; - } - return state; +uint32_t layer_state_set_user_keymap(uint32_t state) { + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (biton32(state)) { + case LR_SYSCTL: + ergodox_right_led_3_on(); // blue + break; + case LR_KBCTL: + ergodox_right_led_1_on(); // red + break; + case LR_SYMBOL: + ergodox_right_led_2_on(); // green + break; + default: + break; + } + return state; } // extra keys // const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // switch (id) { - // } - // return MACRO_NONE; +// switch (id) { +// } +// return MACRO_NONE; // } // tap dances @@ -325,6 +336,6 @@ uint32_t layer_state_set_user_local(uint32_t state) { // } // qk_tap_dance_action_t tap_dance_actions[] = { - // [TD_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED( flash_each_tap, flash_dance_finished, flash_dance_reset ), - // [TD_LAYR] = ACTION_TAP_DANCE_FN_ADVANCED( NULL, layers_dance_finished, NULL ), +// [TD_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED( flash_each_tap, flash_dance_finished, flash_dance_reset ), +// [TD_LAYR] = ACTION_TAP_DANCE_FN_ADVANCED( NULL, layers_dance_finished, NULL ), // }; diff --git a/keyboards/keebio/iris/keymaps/pvinis/config.h b/keyboards/keebio/iris/keymaps/pvinis/config.h index b2fb43be9..9574f2a83 100644 --- a/keyboards/keebio/iris/keymaps/pvinis/config.h +++ b/keyboards/keebio/iris/keymaps/pvinis/config.h @@ -1,24 +1,36 @@ #pragma once - #ifdef PRODUCT - #undef PRODUCT - #define PRODUCT Iris Keyboard - pvinis +# undef PRODUCT +# define PRODUCT Iris Keyboard - pvinis #endif - -// Use I2C or Serial, not both +// Use I2C or Serial, not both. #define USE_SERIAL // #define USE_I2C - -// Select hand configuration -#define MASTER_LEFT -// #define MASTER_RIGHT +// Select hand configuration. +// #define MASTER_LEFT +#define MASTER_RIGHT // #define EE_HANDS - -// choose pin to use for audio. c6 is the one iris uses. +// Choose pin to use for audio. C6 is the one iris uses. #ifdef AUDIO_ENABLE - #define C6_AUDIO +# define C6_AUDIO +# define STARTUP_SONG SONG(NO_SOUND) // No startup song. +#endif + +#ifdef RGBLIGHT_ENABLE +# undef RGBLED_NUM +# define RGBLED_NUM 16 +#endif + +#ifdef ENCODER_ENABLE +# define ENCODERS_PAD_A \ + { F5 } // I connected the encoder to F4 and F5. +# define ENCODERS_PAD_B \ + { F4 } +// #define ENCODERS_PAD_A_RIGHT { B5 } +// #define ENCODERS_PAD_B_RIGHT { C6 } +# define ENCODER_RESOLUTION 2 #endif diff --git a/keyboards/keebio/iris/keymaps/pvinis/keymap.c b/keyboards/keebio/iris/keymaps/pvinis/keymap.c index 2f6d5a6b4..5c61c1321 100644 --- a/keyboards/keebio/iris/keymaps/pvinis/keymap.c +++ b/keyboards/keebio/iris/keymaps/pvinis/keymap.c @@ -1,16 +1,16 @@ // pvinis iris -// ,-----------------------------. ,-----------------------------. -// | | | | | | | | | | | | | | -// |----+----+----+----+----+----| |----+----+----+----+----+----| -// | | | | | | | | | | | | | | -// |----+----+----+----x----x----| |----x----x----+----+----+----| -// | | | | | | | | | | | | | | -// |----+----+----+----x----x----+----. ,----|----x----x----+----+----+----| -// | | | | | | | | | | | | | | | | -// `-------------------+----+----+----/ \----+----+----+-------------------' -// | | | | | | | | -// `----+---------' `--------------' - +// make keebio/iris/rev2:pvinis:avrdude +// ,-----------------------------. ┌────┬────┬────┬────┬────┬────┐ +// | | | | | | | │ │ │ │ │ │ │ +// |----+----+----+----+----+----| ├────┼────┼────┼────┼────┼────┤ +// | | | | | | | │ │ │ │ │ │ │ +// |----+----+----+----x----x----| ├────╆━━━━╅────┼────┼────┼────┤ +// | | | | | | | │ ┃ ┃ │ │ │ │ +// |----+----+----+----x----x----+----. ┌────┼────╄━━━━╃────┼────┼────┼────┤ +// | | | | | | | | │ │ │ │ │ │ │ │ +// `-------------------+----+----+----/ └┬───┴┬───┴┬───┴┬───┴────┴────┴────┘ +// | | | | │ │ │ │ +// `----+---------' └────┴────┴────┘ #include QMK_KEYBOARD_H #include "pvinis.h" @@ -19,102 +19,179 @@ //#include "eeconfig.h" #ifdef AUDIO_ENABLE - #include "audio.h" +# include "audio.h" #endif #ifdef AUDIO_ENABLE - // #define STARTUP_SONG SONG(SONIC_RING) +// #define STARTUP_SONG SONG(SONIC_RING) #endif #ifdef AUDIO_ENABLE - float tone_sonic[][2] = SONG(IN_LIKE_FLINT); - float tone_1[][2] = SONG(QWERTY_SOUND); - float tone_2[][2] = SONG(OLD_SPICE); - float tone_3[][2] = SONG(OVERWATCH_THEME); - float tone_4[][2] = SONG(QWERTY_SOUND); +// float n04[][2] = SONG(CLOSE_ENCOUNTERS_5_NOTE); +// float n10[][2] = SONG(STARTUP_SOUND); +// float n11[][2] = SONG(GOODBYE_SOUND); +// float n12[][2] = SONG(PLANCK_SOUND); +// float n19[][2] = SONG(MUSIC_ON_SOUND); +// float n20[][2] = SONG(AUDIO_ON_SOUND); +// float n29[][2] = SONG(CAPS_LOCK_ON_SOUND); +// float n30[][2] = SONG(CAPS_LOCK_OFF_SOUND); +// float n31[][2] = SONG(SCROLL_LOCK_ON_SOUND); +// float n32[][2] = SONG(SCROLL_LOCK_OFF_SOUND); +// float n33[][2] = SONG(NUM_LOCK_ON_SOUND); +// float n34[][2] = SONG(NUM_LOCK_OFF_SOUND); +// float n40[][2] = SONG(ONE_UP_SOUND); +// float n49[][2] = SONG(E1M1_DOOM); +// float n53[][2] = SONG(OLD_SPICE); +// float n56[][2] = SONG(RICK_ROLL); +// float n57[][2] = SONG(FF_PRELUDE); +// RGB_MODE_KNIGHT +// float n78[][2] = SONG(KATAMARI_ROLLING_STAR); #endif - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - // ,-----------------------------. ,-----------------------------. - // | | | | | |QWER| | | | | | | | - // |----+----+----+----+----+----| |----+----+----+----+----+----| - // |Tab | | | | |CARP| | | | | | |Del | - // |----+----+----+----x----x----| |----x----x----+----+----+----| - // |EscC| | | | | | | | | | | |Ent | - // |----+----+----+----x----x----+----. ,----|----x----x----+----+----+----| - // |LSft| | | | | |Home| |End | | | | | |Rsft| - // `-------------------+----+----+----/ \----+----+----+-------------------' - // |Cmd |LOWR|Bspc| |Spc |RASE|RAlt| - // `----+---------' `--------------' - [LR_BASE] = LAYOUT_wrapper( - _______, _______, _______, _______, _______, QWERTY , _______, _______, _______, _______, _______, _______, - KC_TAB , _______, _______, _______, _______, CARPALX, _______, _______, _______, _______, _______, KC_DEL , - PV_ESCC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ENT , - KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT, - KC_LGUI, SYMBOL , KC_BSPC, KC_SPC , SYSCTL , KC_RALT - ), + // ,-----------------------------. ,-----------------------------. + // | | | | |GAME|QWER| | | | | | | | + // |----+----+----+----+----+----| |----+----+----+----+----+----| + // |Tab | | | | |CRPL| | | | | | |Del | + // |----+----+----+----x----x----| |----x----x----+----+----+----| + // |EscC| | | | | | | | | | | |Ent | + // |----+----+----+----x----x----+----. ,----|----x----x----+----+----+----| + // |LSft| | | | | |Home| |End | | | | | |Rsft| + // `-------------------+----+----+----/ \----+----+----+-------------------' + // |Cmd |LOWR|Bspc| |Spc |RASE|RAlt| + // `----+---------' `--------------' + [LR_BASE] = LAYOUT_wrapper( + // clang-format off + KC_MUTE, _______, _______, _______, GAME1 , QWERTY , KC_1 , _______, _______, _______, _______, _______, + KC_TAB , ___________________________________________, ___________________________________________, KC_DEL , + PV_ESCC, ___________________________________________, ___________________________________________, KC_ENT , + KC_LSFT, ___________________________________________, _______, _______, _______, _______, _______, _______, _______, KC_RSFT, + KC_LGUI, SYMBOL , KC_BSPC, KC_SPC , SYSCTL , KC_RALT + // clang-format on + ), + + // ,-----------------------------. ,-----------------------------. + // | | NUMBERS_L | | NUMBERS_R | | + // |----+----+----+----+----+----| |----+----+----+----+----+----| + // | | | | | | + // |----+ | | +----| + // | | QWERTY_L | | QWERTY_R | | + // |----+ +----. ,----| +----| + // | | | | | | | | + // `-------------------+----+----+----/ \----+----+----+-------------------' + // | | | | | | | | + // `----+---------' `--------------' + [LR_QWERTY] = LAYOUT_wrapper( + // clang-format off + _______, ________________NUMBERS_L__________________, ________________NUMBERS_R__________________, _______, + _______, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, _______, + _______, _____________MOD_QWERTY_L2_________________, _________________QWERTY_R2_________________, _______, + _______, _________________QWERTY_L3_________________, _______, _______, _________________QWERTY_R3_________________, _______, + _______, _______, _______, _______, _______, _______ + // clang-format on + ), - // ,-----------------------------. ,-----------------------------. - // | | NUMBERS_L | | NUMBERS_R | | - // |----+----+----+----+----+----| |----+----+----+----+----+----| - // | | | | | | - // |----+ | | +----| - // | | QWERTY_L | | QWERTY_R | | - // |----+ +----. ,----| +----| - // | | | | | | | | - // `-------------------+----+----+----/ \----+----+----+-------------------' - // | | | | | | | | - // `----+---------' `--------------' - [LR_QWERTY] = LAYOUT_wrapper( - _______, ________________NUMBERS_L__________________, ________________NUMBERS_R__________________, _______, - _______, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, _______, - _______, _____________MOD_QWERTY_L2_________________, _____________MOD_QWERTY_R2_________________, _______, - _______, _________________QWERTY_L3_________________, _______, _______, _________________QWERTY_R3_________________, _______, - _______, _______, _______, _______, _______, _______ - ), + // ,-----------------------------. ,-----------------------------. + // | | NUMBERS_L | | NUMBERS_R | | + // |----+----+----+----+----+----| |----+----+----+----+----+----| + // | | | | | | + // |----+ | | +----| + // | | CARPALX_L | | CARPALX_R | | + // |----+ +----. ,----| +----| + // | | | | | | | | + // `-------------------+----+----+----/ \----+----+----+-------------------' + // | | | | | | | | + // `----+---------' `--------------' + [LR_CARPALX] = LAYOUT_wrapper( + // clang-format off + _______, ________________NUMBERS_L__________________, ________________NUMBERS_R__________________, _______, + _______, ________________CARPALX_L1_________________, ________________CARPALX_R1_________________, _______, + _______, ________________CARPALX_L2_________________, ________________CARPALX_R2_________________, _______, + _______, ________________CARPALX_L3_________________, _______, _______, ________________CARPALX_R3_________________, _______, + _______, _______, _______, _______, _______, _______ + // clang-format on + ), - // ,-----------------------------. ,-----------------------------. - // | | NUMBERS_L | | NUMBERS_R | | - // |----+----+----+----+----+----| |----+----+----+----+----+----| - // | | | | | | - // |----+ | | +----| - // | | CARPALX_L | | CARPALX_R | | - // |----+ +----. ,----| +----| - // | | | | | | | | - // `-------------------+----+----+----/ \----+----+----+-------------------' - // | | | | | | | | - // `----+---------' `--------------' - [LR_CARPALX] = LAYOUT_wrapper( - _______, ________________NUMBERS_L__________________, ________________NUMBERS_R__________________, _______, - _______, ________________CARPALX_L1_________________, ________________CARPALX_R1_________________, _______, - _______, ________________CARPALX_L2_________________, ________________CARPALX_R2_________________, _______, - _______, ________________CARPALX_L3_________________, _______, _______, ________________CARPALX_R3_________________, _______, - _______, _______, _______, _______, _______, _______ - ), + [LR_SYMBOL] = LAYOUT_wrapper( + // clang-format off + KC_F12 , ______________________F_L__________________, ______________________F_R__________________, KC_F11 , + _______, _________________SYMBOL_L1_________________, _________________SYMBOL_R1_________________, _______, + _______, _________________SYMBOL_L2_________________, _________________SYMBOL_R2_________________, _______, + _______, _________________SYMBOL_L3_________________, _______, _______, _________________SYMBOL_R3_________________, _______, + _______, _______, _______, _______, _______, _______ + // clang-format on + ), - [LR_SYMBOL] = LAYOUT_wrapper( - KC_F12 , ______________________F_L__________________, ______________________F_R__________________, KC_F11 , - _______, _________________SYMBOL_L1_________________, _________________SYMBOL_R1_________________, _______, - _______, _________________SYMBOL_L2_________________, _________________SYMBOL_R2_________________, _______, - _______, _________________SYMBOL_L3_________________, _______, _______, _________________SYMBOL_R3_________________, _______, - _______, _______, _______, _______, _______, _______ - ), + [LR_SYSCTL] = LAYOUT_wrapper( + // clang-format off + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _________________SYSCTL_L1_________________, _________________SYSCTL_R1_________________, _______, + _______, _________________SYSCTL_L2_________________, _________________SYSCTL_R2_________________, _______, + _______, _________________SYSCTL_L3_________________, _______, _______, _________________SYSCTL_R3_________________, _______, + _______, _______, _______, _______, _______, _______ + // clang-format on + ), - [LR_SYSCTL] = LAYOUT_wrapper( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _________________SYSCTL_R1_________________, _______, - _______, _______, _______, _______, _______, _______, _________________SYSCTL_R2_________________, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _________________SYSCTL_R3_________________, _______, - _______, _______, _______, _______, _______, _______ - ), + [LR_KBCTL] = LAYOUT_wrapper( + // clang-format off + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, __________________KBCTL_L1_________________, __________________KBCTL_R1_________________, XXXXXXX, + XXXXXXX, __________________KBCTL_L2_________________, __________________KBCTL_R2_________________, XXXXXXX, + BASE , __________________KBCTL_L3_________________, XXXXXXX, XXXXXXX, __________________KBCTL_R3_________________, XXXXXXX, + XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX + // clang-format on + ), - [LR_KBCTL] = LAYOUT_wrapper( - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, __________________KBCTL_L1_________________, __________________KBCTL_R1_________________, XXXXXXX, - XXXXXXX, __________________KBCTL_L2_________________, __________________KBCTL_R2_________________, XXXXXXX, - BASE , __________________KBCTL_L3_________________, XXXXXXX, XXXXXXX, __________________KBCTL_R3_________________, XXXXXXX, - XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX - ) + // ,-----------------------------. ,-----------------------------. + // | | NUMBERS_L | | NUMBERS_R | | + // |----+----+----+----+----+----| |----+----+----+----+----+----| + // | | | | | | + // |----+ | | +----| + // |ESC | QWERTY_L | | QWERTY_R | | + // |----+ +----. ,----| +----| + // | | | | | | | | + // `-------------------+----+----+----/ \----+----+----+-------------------' + // | |SPC | | | | | | + // `----+---------' `--------------' + [LR_GAME1] = LAYOUT_wrapper( + // clang-format off + _______, ________________NUMBERS_L__________________, ________________NUMBERS_R__________________, KC_BSPC, + _______, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, QWERTY , + KC_ESC , _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, _______, + _______, _________________QWERTY_L3_________________, _______, _______, _________________QWERTY_R3_________________, _______, + _______, _______, KC_SPC , _______, _______, _______ + // clang-format on + ), + + [LR_GAME2] = LAYOUT_wrapper( + // clang-format off + _______, ________________NUMBERS_L__________________, ________________NUMBERS_R__________________, KC_BSPC, + _______, _________________QWERTY_L1_________________, KC_Y , KC_U , KC_UP , KC_O , KC_P , QWERTY , + KC_ESC , _________________QWERTY_L2_________________, KC_H , KC_LEFT, KC_DOWN, KC_RGHT, KC_SCLN, _______, + _______, _________________QWERTY_L3_________________, _______, _______, _________________QWERTY_R3_________________, _______, + _______, _______, KC_SPC , _______, _______, _______ + // clang-format on + ), }; + +#ifdef ENCODER_ENABLE +void encoder_update_user(uint8_t index, bool clockwise) { + // if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + // } +} +#endif + +bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { +#ifdef AUDIO_ENABLE +// case PV_S04: if (record->event.pressed) PLAY_SONG(n04); return false; break; +#endif + } + return true; // Process everything else normally +} diff --git a/keyboards/keebio/iris/keymaps/pvinis/rules.mk b/keyboards/keebio/iris/keymaps/pvinis/rules.mk index 899312894..deeb31203 100644 --- a/keyboards/keebio/iris/keymaps/pvinis/rules.mk +++ b/keyboards/keebio/iris/keymaps/pvinis/rules.mk @@ -1,2 +1,9 @@ -AUDIO_ENABLE = no # off for now -RGBLIGHT_ENABLE = no # off for now +TAP_DANCE_ENABLE = yes +AUDIO_ENABLE = no # piezo speaker sounds +RGBLIGHT_ENABLE = yes # rgb leds underlight +ENCODER_ENABLE = yes # rotary knob + +# Some extra stuff to make firmware smaller. +LINK_TIME_OPTIMIZATION_ENABLE = yes +CONSOLE_ENABLE = no +COMMAND_ENABLE = no diff --git a/users/pvinis/config.h b/users/pvinis/config.h index 8e2efb40a..14ec0dc8f 100644 --- a/users/pvinis/config.h +++ b/users/pvinis/config.h @@ -1,10 +1,9 @@ #pragma once -#ifdef AUDIO_ENABLE -// #define STARTUP_SONG SONG(SONIC_RING) -// #define DAC_SAMPLE_MAX 65535U // maybe this works for volume? -#endif - // allow rolling when keys have hold functionality #define IGNORE_MOD_TAP_INTERRUPT // #define TAPPING_TERM 150 + +#if defined(MOUSE_KEYS) +# define MOUSEKEY_WHEEL_TIME_TO_MAX 1 +#endif diff --git a/users/pvinis/pvinis.c b/users/pvinis/pvinis.c index e97edcb98..31c3023e8 100644 --- a/users/pvinis/pvinis.c +++ b/users/pvinis/pvinis.c @@ -2,88 +2,97 @@ #include "version.h" #ifdef AUDIO_ENABLE -#include "audio.h" -#endif // AUDIO_ENABLE - - -#ifdef AUDIO_ENABLE -// float tone_katamari_rolling_star[][2] = SONG(KATAMARI_ROLLING_STAR); -#endif // AUDIO_ENABLE +# include "audio.h" +float song_sonic_ring[][2] = SONG(SONIC_RING); +float song_coin_sound[][2] = SONG(COIN_SOUND); +float song_test[][2] = SONG(QWERTY_SOUND); +#endif // SYMBOL + SYSCTL = KBCTL uint32_t layer_state_set_user(uint32_t state) { - uint32_t intermediate_state = update_tri_layer_state(state, LR_SYMBOL, LR_SYSCTL, LR_KBCTL); - intermediate_state = layer_state_set_user_local(intermediate_state); - return intermediate_state; + uint32_t intermediate_state = update_tri_layer_state(state, LR_SYMBOL, LR_SYSCTL, LR_KBCTL); + intermediate_state = layer_state_set_user_keymap(intermediate_state); + return intermediate_state; } - // functions for the individual keymaps to implement if they need something extra -__attribute__ ((weak)) -bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { - return true; -} +__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; } - -// handle my own keycodes +// Handle my own keycodes. bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - - case PV_VRSN: - if (record->event.pressed) { - SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); - } - return false; - - case PV_MAKE: - if (!record->event.pressed) { - SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP + switch (keycode) { + case PV_VRSN: + if (record->event.pressed) { + SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + } + return false; + + case PV_MAKE: + // make ergodox_ez:pvinis:teensy + if (!record->event.pressed) { + SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP #if (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU)) - ":dfu" + ":dfu" #elif defined(BOOTLOADER_HALFKAY) - ":teensy" + ":teensy" #elif defined(BOOTLOADER_CATERINA) - ":avrdude" + ":avrdude" #endif - SS_TAP(X_ENTER) - ); - } - return false; + SS_TAP(X_ENTER)); + } + return false; - case PV_FLSH: - reset_keyboard(); - return false; + case PV_FLSH: + reset_keyboard(); + return false; - case PV_KTMR: - if (record->event.pressed) { + case PV_SSNC: + if (record->event.pressed) { #ifdef AUDIO_ENABLE - // PLAY_SONG(tone_katamari_rolling_star); + PLAY_SONG(song_sonic_ring); #endif - } - return false; - } - return process_record_keymap(keycode, record); -} + } + return false; + case PV_SCIN: + if (record->event.pressed) { +#ifdef AUDIO_ENABLE + PLAY_SONG(song_coin_sound); +#endif + } + return false; + + case PV_TEST: + if (record->event.pressed) { +#ifdef AUDIO_ENABLE + PLAY_SONG(song_test); +#endif + } + return false; + } + return process_record_keymap(keycode, record); +} #ifdef TAP_DANCE_ENABLE -qk_tap_dance_action_t tap_dance_actions[] = { -}; -#endif // TAP_DANCE_ENABLE +qk_tap_dance_action_t tap_dance_actions[] = {}; +#endif +void keyboard_post_init_rgb_light(void) { + rgblight_sethsv(HSV_GOLD); + rgblight_mode(RGBLIGHT_MODE_BREATHING); + // rgblight_mode(RGBLIGHT_MODE_KNIGHT+1); +} -// init stuff +// Init stuff. void keyboard_post_init_user(void) { - keyboard_post_init_user_local(); +#if defined(RGBLIGHT_ENABLE) + keyboard_post_init_rgb_light(); +#endif + keyboard_post_init_user_keymap(); } +// Default functions. +__attribute__((weak)) void keyboard_post_init_user_keymap(void) {} -// default functions -__attribute__ ((weak)) -void keyboard_post_init_user_local(void) {} - -__attribute__ ((weak)) -uint32_t layer_state_set_user_local(uint32_t state) { - return state; -} +__attribute__((weak)) uint32_t layer_state_set_user_keymap(uint32_t state) { return state; } 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 @@ #include "quantum.h" - -// my own keycodes +// My own keycodes. enum userspace_custom_keycodes { - PV_ = SAFE_RANGE, + PV_ = SAFE_RANGE, + + PV_VRSN, // Print firmware version. + PV_MAKE, // Print the make command of the keyboard. + PV_FLSH, // Reset keyboard. - PV_VRSN, // prints firmware version - PV_MAKE, // prints the make command of the keyboard - PV_FLSH, // resets keyboard - PV_KTMR, // play katamari music + PV_SSNC, // Play Sonic Ring. + PV_SCIN, // Play Coin Sound. - PV_SAFE_RANGE, // used for extra keycodes in the individual keymaps + PV_TEST, // For quick testing purposes. + + PV_SAFE_RANGE, // Used for extra keycodes in individual keymaps. }; enum tap_dance_indexes { - // tap dance - TD_FLSH, // flash keyboard (as if the physical flash key was pressed) + // tap dance + TD_FLSH, // flash keyboard (as if the physical flash key was pressed) }; -#define ALLM(kc) LCAG(kc) // easier name for left ctrl-alt-gui -#define PV_ESCC CTL_T(KC_ESC) // esc on tap, ctrl on hold -#define PV_LOCK LCTL(LSFT(KC_PWR)) // lock computer -#define TD_3FLS TD(TD_FLSH) // tap dance 3 times for flash - +#define ALLM(kc) LCAG(kc) // Easier name for left ctrl-alt-gui. +#define PV_ESCC CTL_T(KC_ESC) // esc on tap, ctrl on hold. +#define PV_LOCK LCTL(LSFT(KC_PWR)) // Lock computer. +#define TD_3FLS TD(TD_FLSH) // Tap dance 3 times for flash. -// layers +// Layers. enum { - LR_BASE = 0, // used for basic keys like the surrounding ctrl, cmd, etc + LR_BASE = 0, // used for basic keys like the surrounding ctrl, cmd, etc - LR_QWERTY, - LR_CARPALX, + LR_QWERTY, + LR_CARPALX, + LR_GAME1, // game layout (space on the left thumb, no modifiers, etc) + LR_GAME2, // game layout (space on the left thumb, no modifiers, etc, arrows) - LR_SYMBOL, // symbol input (!, @, #, etc) - LR_SYSCTL, // system control (music, volume, keyboard flash, etc) - LR_KBCTL, // keyboard control (version, make, flash, etc) -}; + LR_SYMBOL, // symbol input (!, @, #, etc) + LR_SYSCTL, // system control (music, volume, keyboard flash, etc) + LR_KBCTL, // keyboard control (version, make, flash, etc) +}; -// layer switchers -#define BASE TO(LR_BASE) -#define QWERTY TO(LR_QWERTY) +// Layer switchers. +#define BASE TO(LR_BASE) +#define QWERTY TO(LR_QWERTY) #define CARPALX TO(LR_CARPALX) - -#define SYMBOL MO(LR_SYMBOL) -#define SYSCTL MO(LR_SYSCTL) -#define KBCTL MO(LR_KBCTL) - - -// layout parts for easy reuse between keyboard keymaps - -// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----, -// | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | -// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----, -#define ________________NUMBERS_L__________________ KC_1, KC_2, KC_3, KC_4, KC_5 -#define ________________NUMBERS_R__________________ KC_6, KC_7, KC_8, KC_9, KC_0 - -// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----, -// | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | -// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----, -#define ______________________F_L__________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5 -#define ______________________F_R__________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 - -// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----, -// | Q | W | E | R | T | | Y | U | I | O | P | -// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----, -// | A | S | D | F | G | | H | J | K | L | ; | -// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----, -// | Z | X | C | V | B | | N | M | , | . | / | -// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----, -#define _________________QWERTY_L1_________________ KC_Q , KC_W , KC_E , KC_R , KC_T -#define _________________QWERTY_L2_________________ KC_A , KC_S , KC_D , KC_F , KC_G -#define _________________QWERTY_L3_________________ KC_Z , KC_X , KC_C , KC_V , KC_B - -#define _________________QWERTY_R1_________________ KC_Y , KC_U , KC_I , KC_O , KC_P -#define _________________QWERTY_R2_________________ KC_H , KC_J , KC_K , KC_L , KC_SCLN -#define _________________QWERTY_R3_________________ KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH - -#define _____________MOD_QWERTY_L2_________________ CTL_T(KC_A), SFT_T(KC_S), GUI_T(KC_D), ALT_T(KC_F), KC_G -#define _____________MOD_QWERTY_R2_________________ KC_H , ALT_T(KC_J), GUI_T(KC_K), SFT_T(KC_L), CTL_T(KC_SCLN) +#define GAME1 TO(LR_GAME1) +#define GAME2 TO(LR_GAME2) + +#define SYMBOL MO(LR_SYMBOL) +#define SYSCTL MO(LR_SYSCTL) +#define KBCTL MO(LR_KBCTL) + +// Layout parts for easy reuse between keyboard keymaps. + +// Transparent. +// ┌─────┬─────┬─────┬─────┬─────┐ +// │ │ │ │ │ │ +// └─────┴─────┴─────┴─────┴─────┘ +#define ___________________________________________ _______, _______, _______, _______, _______ + +// Numbers. +// ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐ +// │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │ +// └─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┘ +#define ________________NUMBERS_L__________________ KC_1, KC_2, KC_3, KC_4, KC_5 +#define ________________NUMBERS_R__________________ KC_6, KC_7, KC_8, KC_9, KC_0 + +// F keys. +// ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐ +// │ F1 │ F2 │ F3 │ F4 │ F5 │ │ F6 │ F7 │ F8 │ F9 │ F10 │ +// └─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┘ +#define ______________________F_L__________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5 +#define ______________________F_R__________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 + +// QWERTY. +// ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐ +// │ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │ +// ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤ +// │ A │ S │ D ┃ F ┃ G │ │ H ┃ J ┃ K │ L │ ; │ +// ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤ +// │ Z │ X │ C │ V │ B │ │ N │ M │ , │ . │ / │ +// └─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┘ +#define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T +#define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G +#define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B + +#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P +#define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN +#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH + +// QWERTY with mods. +// ┌───────┬───────┬───────┲━━━━━━━┱───────┐ ┌───────┲━━━━━━━┱───────┬───────┬───────┐ +// │ ctl/A │ sft/S │ cmd/D ┃ opt/F ┃ G │ │ H ┃ opt/J ┃ cmd/K │ sft/L │ ctl/; │ +// └───────┴───────┴───────┺━━━━━━━┹───────┘ └───────┺━━━━━━━┹───────┴───────┴───────┘ +// #define _____________MOD_QWERTY_L2_________________ CTL_T(KC_A), SFT_T(KC_S), GUI_T(KC_D), ALT_T(KC_F), KC_G +#define _____________MOD_QWERTY_L2_________________ KC_A, KC_S, KC_D, ALT_T(KC_F), KC_G +#define _____________MOD_QWERTY_R2_________________ KC_H, ALT_T(KC_J), GUI_T(KC_K), SFT_T(KC_L), CTL_T(KC_SCLN) // ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----, // | Q | G | M | L | W | | Y | F | I | O | P | @@ -88,13 +107,13 @@ enum { // ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----, // | Z | X | C | V | J | | K | P | , | . | / | // ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----, -#define ________________CARPALX_L1_________________ KC_Q , KC_G , KC_M , KC_L , KC_W -#define ________________CARPALX_L2_________________ KC_D , KC_S , KC_T , KC_N , KC_R -#define ________________CARPALX_L3_________________ KC_Z , KC_X , KC_C , KC_V , KC_J +#define ________________CARPALX_L1_________________ KC_Q, KC_G, KC_M, KC_L, KC_W +#define ________________CARPALX_L2_________________ KC_D, KC_S, KC_T, KC_N, KC_R +#define ________________CARPALX_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_J -#define ________________CARPALX_R1_________________ KC_Y , KC_F , KC_U , KC_B , KC_SCLN -#define ________________CARPALX_R2_________________ KC_I , KC_A , KC_E , KC_O , KC_H -#define ________________CARPALX_R3_________________ KC_K , KC_P , KC_COMM, KC_DOT , KC_SLSH +#define ________________CARPALX_R1_________________ KC_Y, KC_F, KC_U, KC_B, KC_SCLN +#define ________________CARPALX_R2_________________ KC_I, KC_A, KC_E, KC_O, KC_H +#define ________________CARPALX_R3_________________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH // ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----, // | ! | @ | { | } | _ | | \ | | ` | | | @@ -103,50 +122,51 @@ enum { // ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----, // | % | ^ | [ | ] | + | | * | ~ | < | > | / | // ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----, -#define _________________SYMBOL_L1_________________ KC_EXLM, KC_AT , KC_LCBR, KC_RCBR, KC_UNDS -#define _________________SYMBOL_L2_________________ KC_HASH, KC_DLR , KC_LPRN, KC_RPRN, KC_MINS -#define _________________SYMBOL_L3_________________ KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_PLUS - -#define _________________SYMBOL_R1_________________ KC_BSLS, _______, KC_GRV , _______, _______ -#define _________________SYMBOL_R2_________________ KC_EQL , KC_AMPR, KC_QUOT, KC_DQUO, KC_PIPE -#define _________________SYMBOL_R3_________________ KC_ASTR, KC_TILD, KC_LABK, KC_RABK, KC_SLSH - -// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----, -// | | | | | | |MUTE |HOME | ^ | END | | -// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----, -// | | | | | | |VOLUP| < | v | > | | -// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----, -// | | | | | | |VOLDN|MPREV|MPLAY|MNEXT| | -// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----, -#define _________________SYSCTL_L1_________________ -#define _________________SYSCTL_L2_________________ -#define _________________SYSCTL_L3_________________ +#define _________________SYMBOL_L1_________________ KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_UNDS +#define _________________SYMBOL_L2_________________ KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_MINS +#define _________________SYMBOL_L3_________________ KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_PLUS + +#define _________________SYMBOL_R1_________________ KC_BSLS, _______, KC_GRV, _______, _______ +#define _________________SYMBOL_R2_________________ KC_EQL, KC_AMPR, KC_QUOT, KC_DQUO, KC_PIPE +#define _________________SYMBOL_R3_________________ KC_ASTR, KC_TILD, KC_LABK, KC_RABK, KC_SLSH + +// System Control. +// vol ↓ ctl ↓ +// ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐ +// │ │ │ │ │ │ │MUTE │HOME │ ↑ │ END │LOCK │ +// ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤ +// │ │ │ ┃ ┃ │ │VOLUP┃ ← ┃ ↓ │ → │SLEEP│ ← arrows +// ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤ +// │ │ │ │ │ │ │VOLDN│MPREV│MPLAY│MNEXT│ PWR │ ← music +// └─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┘ +#define _________________SYSCTL_L1_________________ XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_BTN1, XXXXXXX +#define _________________SYSCTL_L2_________________ XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_RIGHT, KC_MS_WH_UP +#define _________________SYSCTL_L3_________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_WH_DOWN // vol v ctl v -#define _________________SYSCTL_R1_________________ KC_MUTE , KC_HOME , KC_UP , KC_END , PV_LOCK -#define _________________SYSCTL_R2_________________ KC_VOLU , KC_LEFT , KC_DOWN , KC_RGHT /* < arrows */ , KC_SLEP -#define _________________SYSCTL_R3_________________ KC_VOLD , KC_MPRV , KC_MPLY , KC_MNXT /* < music */ , KC_PWR +#define _________________SYSCTL_R1_________________ KC_MUTE, KC_HOME, KC_UP, KC_END, PV_LOCK +#define _________________SYSCTL_R2_________________ KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT /* < arrows */, KC_SLEP +#define _________________SYSCTL_R3_________________ KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT /* < music */, KC_PWR // ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----, -// |XXXXX|XXXXX|XXXXX|XXXXX|XXXXX| |XXXXX|XXXXX|XXXXX|XXXXX|XXXXX| +// |GAME |CRPLX|XXXXX|XXXXX|XXXXX| |XXXXX|XXXXX|XXXXX|XXXXX|XXXXX| // ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----, // |XXXXX|XXXXX|XXXXX|XXXXX|XXXXX| |XXXXX|VERSN|MAKE |FLASH|XXXXX| // ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----, // |XXXXX|XXXXX|XXXXX|XXXXX|XXXXX| |XXXXX|XXXXX|XXXXX|XXXXX|XXXXX| // ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----, -#define __________________KBCTL_L1_________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX -#define __________________KBCTL_L2_________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX -#define __________________KBCTL_L3_________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX - -#define __________________KBCTL_R1_________________ XXXXXXX, XXXXXXX, XXXXXXX, PV_KTMR, XXXXXXX -#define __________________KBCTL_R2_________________ XXXXXXX, PV_VRSN, PV_MAKE, PV_FLSH, XXXXXXX -#define __________________KBCTL_R3_________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +#define __________________KBCTL_L1_________________ PV_SSNC, PV_SCIN, PV_TEST, XXXXXXX, XXXXXXX +#define __________________KBCTL_L2_________________ RGB_TOG, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX +#define __________________KBCTL_L3_________________ RGB_MOD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX -// we need wrappers in order for these definitions, because they need to be expanded before being used as arguments to the LAYOUT_xxx macro -#define LAYOUT_ergodox_pretty_wrapper(...) LAYOUT_ergodox_pretty(__VA_ARGS__) -#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) +#define __________________KBCTL_R1_________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +#define __________________KBCTL_R2_________________ XXXXXXX, PV_VRSN, PV_MAKE, PV_FLSH, XXXXXXX +#define __________________KBCTL_R3_________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +// We need wrappers in order for these definitions, because they need to be expanded before being used as arguments to the LAYOUT_xxx macro. +#define LAYOUT_ergodox_pretty_wrapper(...) LAYOUT_ergodox_pretty(__VA_ARGS__) +#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) -// extra stuff that might be needed -void keyboard_post_init_user_local(void); -uint32_t layer_state_set_user_local(uint32_t state); +// Extra stuff that might be needed. +void keyboard_post_init_user_keymap(void); +uint32_t layer_state_set_user_keymap(uint32_t state); diff --git a/users/pvinis/rules.mk b/users/pvinis/rules.mk index da10cc743..f6f09e54d 100644 --- a/users/pvinis/rules.mk +++ b/users/pvinis/rules.mk @@ -1,15 +1,19 @@ -# add userspace file -SRC += pvinis.c - -AUDIO_ENABLE = no # piezo speaker sounds -RGBLIGHT_ENABLE = no # rgb leds underlight -TAP_DANCE_ENABLE = yes -BACKLIGHT_ENABLE = no # leds under keycaps -#MOUSEKEY_ENABLE = no -#SLEEP_LED_ENABLE = no # no led blinking while sleeping -#NKRO_ENABLE = yes - -# make firmware smaller -LINK_TIME_OPTIMIZATION_ENABLE = yes -CONSOLE_ENABLE = no -COMMAND_ENABLE = no +SRC += pvinis.c # add userspace file + + +## Use the stuff below on the keyboard keymaps, not here. +## If they are used here, they will replace the keymap's rules, since this file is eval'd later. + +# TAP_DANCE_ENABLE = yes +# AUDIO_ENABLE = yes # piezo speaker sounds +# RGBLIGHT_ENABLE = yes # rgb leds underlight +# BACKLIGHT_ENABLE = no # leds under keycaps +# MOUSEKEY_ENABLE = yes +# LEEP_LED_ENABLE = no # no led blinking while sleeping +# KRO_ENABLE = yes + +## Some extra stuff to make firmware smaller. + +# LINK_TIME_OPTIMIZATION_ENABLE = yes +# CONSOLE_ENABLE = no +# COMMAND_ENABLE = no |