From cb53c4fd41885ba60192cbd0b5fd23d6a687ab17 Mon Sep 17 00:00:00 2001 From: hvp <32483282+hvpkod@users.noreply.github.com> Date: Thu, 2 Sep 2021 05:44:36 +0200 Subject: [PATCH] [Keymap] hvp keymap for Cornelius, updated ut47.2 and userspace (#14187) --- .../foostan/cornelius/keymaps/hvp/config.h | 20 ++++++ .../foostan/cornelius/keymaps/hvp/keymap.c | 66 +++++++++++++++++++ .../foostan/cornelius/keymaps/hvp/readme.md | 1 + .../foostan/cornelius/keymaps/hvp/rules.mk | 1 + keyboards/ut472/keymaps/hvp/config.h | 4 +- keyboards/ut472/keymaps/hvp/keymap.c | 64 ++++++++++-------- users/hvp/config.h | 18 +++++ users/hvp/hvp.h | 38 +++++++++-- users/hvp/per_key.c | 43 ++++++++++++ users/hvp/rules.mk | 7 +- users/hvp/tap_dances.h | 21 +++++- 11 files changed, 246 insertions(+), 37 deletions(-) create mode 100644 keyboards/foostan/cornelius/keymaps/hvp/config.h create mode 100644 keyboards/foostan/cornelius/keymaps/hvp/keymap.c create mode 100644 keyboards/foostan/cornelius/keymaps/hvp/readme.md create mode 100644 keyboards/foostan/cornelius/keymaps/hvp/rules.mk create mode 100644 users/hvp/config.h create mode 100644 users/hvp/per_key.c diff --git a/keyboards/foostan/cornelius/keymaps/hvp/config.h b/keyboards/foostan/cornelius/keymaps/hvp/config.h new file mode 100644 index 0000000000..ea23adfab5 --- /dev/null +++ b/keyboards/foostan/cornelius/keymaps/hvp/config.h @@ -0,0 +1,20 @@ +/* Copyright 2018 Carlos Filoteo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once +#define TAPPING_TERM 200 +#define TAPPING_TERM_PER_KEY +#define IGNORE_MOD_TAP_INTERRUPT \ No newline at end of file diff --git a/keyboards/foostan/cornelius/keymaps/hvp/keymap.c b/keyboards/foostan/cornelius/keymaps/hvp/keymap.c new file mode 100644 index 0000000000..bac74edbce --- /dev/null +++ b/keyboards/foostan/cornelius/keymaps/hvp/keymap.c @@ -0,0 +1,66 @@ +/* Copyright 2020 foostan + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H +#include "hvp.c" + +#define LT3_ESC LT(3, KC_ESC) +#define LT4_TAB LT(5, KC_TAB) +#define LT2 LT(2, KC_LEFT_CURLY_BRACE) +#define LT1 LT(1, KC_RIGHT_CURLY_BRACE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT( + LT4_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + LT3_ESC, MT(MOD_LGUI, KC_A), MT(MOD_LALT, KC_S), MT(MOD_LSFT, KC_D), MT(MOD_LCTL, KC_F), LT(4,KC_G), MT(MOD_RCTL, KC_H), MT(MOD_RSFT, KC_J), MT(MOD_RALT,KC_K), MT(MOD_RGUI,KC_L), TD(TD1), TD(TD2), + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, TD(TD3), KC_SFTENT, + KC_LCPO, KC_LCTL, KC_LGUI, KC_LALT, LT2, KC_SPC, KC_ENT, LT1, KC_RALT, KC_RGUI, KC_RCTL, KC_RSPC + ), + +[1] = LAYOUT( /* Right */ + KC_TILDE, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, XXXXXXX, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +[2] = LAYOUT( /* Left */ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, XXXXXXX, XXXXXXX, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, XXXXXXX, XXXXXXX, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +[3] = LAYOUT( /* Esc */ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_DELETE, KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, XXXXXXX, XXXXXXX, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, + _______, _______, _______, _______, _______, KC_MUTE, KC_MPLY, KC_MSTP, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT + ), + +[4] = LAYOUT( + _______, LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4), LGUI(KC_5), LGUI(KC_6), LGUI(KC_7), KC_7, KC_8, KC_9, KC_BSPC, + _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_4, KC_5, KC_6, KC_0, + _______, _______, _______, _______, _______, _______, XXXXXXX, KC_0, KC_1, KC_2, KC_3, _______, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +[5] = LAYOUT( + _______, G(S(KC_1)), G(S(KC_2)), G(S(KC_3)), G(S(KC_4)), G(S(KC_5)), G(S(KC_6)), G(S(KC_7)), G(S(KC_8)), G(S(KC_9)), G(S(KC_0)), _______, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_PSCR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CAPS, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NLCK + ), +}; diff --git a/keyboards/foostan/cornelius/keymaps/hvp/readme.md b/keyboards/foostan/cornelius/keymaps/hvp/readme.md new file mode 100644 index 0000000000..cb35bd8a29 --- /dev/null +++ b/keyboards/foostan/cornelius/keymaps/hvp/readme.md @@ -0,0 +1 @@ +# The default keymap for cornelius diff --git a/keyboards/foostan/cornelius/keymaps/hvp/rules.mk b/keyboards/foostan/cornelius/keymaps/hvp/rules.mk new file mode 100644 index 0000000000..1ba2fa8fbe --- /dev/null +++ b/keyboards/foostan/cornelius/keymaps/hvp/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE = yes \ No newline at end of file diff --git a/keyboards/ut472/keymaps/hvp/config.h b/keyboards/ut472/keymaps/hvp/config.h index 53fc5b76fb..ea23adfab5 100644 --- a/keyboards/ut472/keymaps/hvp/config.h +++ b/keyboards/ut472/keymaps/hvp/config.h @@ -15,6 +15,6 @@ */ #pragma once -#define TAPPING_TERM 150 -#define PERMISSIVE_HOLD +#define TAPPING_TERM 200 +#define TAPPING_TERM_PER_KEY #define IGNORE_MOD_TAP_INTERRUPT \ No newline at end of file diff --git a/keyboards/ut472/keymaps/hvp/keymap.c b/keyboards/ut472/keymaps/hvp/keymap.c index ec88e24234..80d2d036bd 100644 --- a/keyboards/ut472/keymaps/hvp/keymap.c +++ b/keyboards/ut472/keymaps/hvp/keymap.c @@ -17,43 +17,51 @@ #include "hvp.c" #define LT3_ESC LT(3, KC_ESC) -#define LT4_TAB LT(4, KC_TAB) -#define D_NAVI MT(MOD_LCTL | MOD_LSFT, KC_D) - +#define LT4_TAB LT(5, KC_TAB) +#define LT2 LT(2, KC_LEFT_CURLY_BRACE) +#define LT1 LT(1, KC_RIGHT_CURLY_BRACE) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -LAYOUT( - LT4_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - LT3_ESC, KC_A, KC_S, KC_D, LT(3,KC_F), LT(4,KC_G), KC_H, KC_J, KC_K, KC_L, TD(TD1), TD(TD2), - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, TD(TD3), KC_SFTENT, - KC_LCTL, KC_APP, KC_LGUI, KC_LALT, MO(2), KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +[0] = LAYOUT( + LT4_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + LT3_ESC, LG_A, LA_S, LS_D, LC_F, LT(4,KC_G), RC_H, RS_J, RA_K, RG_L, TD(TD1), TD(TD2), + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, TD(TD3), KC_SFTENT, + KC_LCPO, KC_RPRN, KC_LGUI, KC_LALT, LT2, KC_SPC, LT1, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), -LAYOUT( /* Right */ +[1] = LAYOUT( /* Right */ + KC_TILDE, KC_EXCLAIM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DELETE, KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, XXXXXXX, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +[2] = LAYOUT( /* Left */ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_DELETE, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - _______, _______, _______, _______, _______, _______, _______, KC_UNDERSCORE, KC_PLUS, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, KC_PIPE, - _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END + KC_DELETE, KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, XXXXXXX, XXXXXXX, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, XXXXXXX, XXXXXXX, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), -LAYOUT( /* Left */ - KC_TILDE, KC_EXCLAIM, KC_AT, KC_HASH, KC_DOLLAR, KC_PERCENT, KC_CIRCUMFLEX, KC_AMPERSAND, KC_ASTERISK, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_BSPC, - KC_DELETE, _______, _______, _______, _______, _______, _______, KC_UNDERSCORE, KC_PLUS, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, KC_PIPE, - _______, _______, _______, _______, _______, _______, _______, _______, KC_EQL, KC_LBRC, KC_RBRC, _______, - _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END -), - -LAYOUT( /* Esc */ +[3] = LAYOUT( /* Esc */ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - _______, _______, _______, D_NAVI, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_PSCR, - _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, + _______, KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_PSCR, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_MPLY, KC_MSTP, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT ), -LAYOUT( /* Tab */ - _______, RGB_TOG, RGB_MOD, RGB_RMOD, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, _______, - _______, RGB_M_P, RGB_HUD, RGB_HUI, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, - KC_PSCR, _______, RGB_SAD, RGB_SAI, _______, _______, KC_0, KC_1, KC_2, KC_3, _______, _______, - RESET, _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______ + +[4] = LAYOUT( /* G */ + _______, LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4), LGUI(KC_5), LGUI(KC_6), LGUI(KC_7), KC_7, KC_8, KC_9, KC_BSPC, + _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_4, KC_5, KC_6, KC_0, + _______, _______, _______, _______, _______, _______, XXXXXXX, KC_0, KC_1, KC_2, KC_3, _______, + RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), -}; \ No newline at end of file + +[5] = LAYOUT( /* Tab */ + _______, G(S(KC_1)), G(S(KC_2)), G(S(KC_3)), G(S(KC_4)), G(S(KC_5)), G(S(KC_6)), G(S(KC_7)), G(S(KC_8)), G(S(KC_9)), G(S(KC_0)), _______, + RGB_TOG, RGB_MOD, RGB_M_P, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, + KC_PSCR, _______, RGB_RMOD, RGB_SAD, RGB_SAI, _______, _______, _______, _______, _______, _______, KC_CAPS, + RESET, _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, KC_NLCK +), +}; diff --git a/users/hvp/config.h b/users/hvp/config.h new file mode 100644 index 0000000000..68dd8b4828 --- /dev/null +++ b/users/hvp/config.h @@ -0,0 +1,18 @@ + /* Copyright 2021 hvp + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#define LONG_TAPPING_TERM 1000 \ No newline at end of file diff --git a/users/hvp/hvp.h b/users/hvp/hvp.h index b016da9e25..275838a49a 100644 --- a/users/hvp/hvp.h +++ b/users/hvp/hvp.h @@ -1,13 +1,43 @@ + /* Copyright 2021 hvp + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + #pragma once +#include "quantum.h" +#undef TAPPING_TERM +#define TAPPING_TERM 150 #ifdef TAP_DANCE_ENABLE # include "tap_dances.h" #endif -#include "quantum.h" -#undef TAPPING_TERM -#define TAPPING_TERM 150 +#ifdef TAPPING_TERM_PER_KEY +# include "per_key.h" +#endif -// Keys #define D_NAVI MT(MOD_LCTL | MOD_LSFT, KC_D) + +/* Home-row mods */ +#define LG_A MT(MOD_LGUI, KC_A) +#define LA_S MT(MOD_LALT, KC_S) +#define LS_D MT(MOD_LSFT, KC_D) +#define LC_F MT(MOD_LCTL, KC_F) + +#define RC_H MT(MOD_RCTL, KC_H) +#define RS_J MT(MOD_RSFT, KC_J) +#define RA_K MT(MOD_RALT, KC_K) +#define RG_L MT(MOD_RGUI, KC_L) \ No newline at end of file diff --git a/users/hvp/per_key.c b/users/hvp/per_key.c new file mode 100644 index 0000000000..571fdcc915 --- /dev/null +++ b/users/hvp/per_key.c @@ -0,0 +1,43 @@ + /* Copyright 2021 hvp + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +// #include per_key.h + +uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case MT(MOD_LGUI, KC_A): + return TAPPING_TERM + LONG_TAPPING_TERM; + case MT(MOD_LALT, KC_S): + return TAPPING_TERM + LONG_TAPPING_TERM; + case MT(MOD_LSFT, KC_D): + return TAPPING_TERM + LONG_TAPPING_TERM; + case MT(MOD_LCTL, KC_F): + return TAPPING_TERM + LONG_TAPPING_TERM; + case MT(MOD_RCTL, KC_H): + return TAPPING_TERM + LONG_TAPPING_TERM; + case MT(MOD_RSFT, KC_J): + return TAPPING_TERM + LONG_TAPPING_TERM; + case MT(MOD_RALT, KC_K): + return TAPPING_TERM + LONG_TAPPING_TERM; + case MT(MOD_RGUI, KC_L): + return TAPPING_TERM + LONG_TAPPING_TERM; + case KC_LCPO: + return TAPPING_TERM 75; + default: + return TAPPING_TERM; + } +} \ No newline at end of file diff --git a/users/hvp/rules.mk b/users/hvp/rules.mk index 0a7e679631..549483b67b 100644 --- a/users/hvp/rules.mk +++ b/users/hvp/rules.mk @@ -1,4 +1,9 @@ + SRC += hvp.c ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) - SRC += tap_dances.c + SRC += tap_dances.c +endif + +ifeq ($(strip $(TAPPING_TERM_PER_KEY)), yes) + SRC += per_key.c endif \ No newline at end of file diff --git a/users/hvp/tap_dances.h b/users/hvp/tap_dances.h index cad9bd90ec..a00caf0929 100644 --- a/users/hvp/tap_dances.h +++ b/users/hvp/tap_dances.h @@ -1,5 +1,22 @@ + /* Copyright 2021 hvp + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + #pragma once -#include "hvp.h" +#include "quantum.h" // Tap Dance Declarations enum tapdance_id @@ -9,4 +26,4 @@ enum tapdance_id TD3, TD4, TD5 -}; +}; \ No newline at end of file