~ruther/qmk_firmware

cb53c4fd41885ba60192cbd0b5fd23d6a687ab17 — hvp 4 years ago 872414f
[Keymap] hvp keymap for Cornelius, updated ut47.2 and userspace (#14187)

A keyboards/foostan/cornelius/keymaps/hvp/config.h => keyboards/foostan/cornelius/keymaps/hvp/config.h +20 -0
@@ 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 <http://www.gnu.org/licenses/>.
 */

#pragma once
#define TAPPING_TERM 200
#define TAPPING_TERM_PER_KEY
#define IGNORE_MOD_TAP_INTERRUPT
\ No newline at end of file

A keyboards/foostan/cornelius/keymaps/hvp/keymap.c => keyboards/foostan/cornelius/keymaps/hvp/keymap.c +66 -0
@@ 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 <http://www.gnu.org/licenses/>.
 */
#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
  ),
};

A keyboards/foostan/cornelius/keymaps/hvp/readme.md => keyboards/foostan/cornelius/keymaps/hvp/readme.md +1 -0
@@ 0,0 1,1 @@
# The default keymap for cornelius

A keyboards/foostan/cornelius/keymaps/hvp/rules.mk => keyboards/foostan/cornelius/keymaps/hvp/rules.mk +1 -0
@@ 0,0 1,1 @@
TAP_DANCE_ENABLE = yes
\ No newline at end of file

M keyboards/ut472/keymaps/hvp/config.h => keyboards/ut472/keymaps/hvp/config.h +2 -2
@@ 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

M keyboards/ut472/keymaps/hvp/keymap.c => keyboards/ut472/keymaps/hvp/keymap.c +35 -27
@@ 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 */
  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
[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,
  _______, _______, _______, _______, _______,     _______,      _______, _______, _______, _______, _______
),

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
[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_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( /* 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, _______, _______, _______, _______,     _______,      _______, _______, _______, _______, _______
),

[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
),
};
\ No newline at end of file
};

A users/hvp/config.h => users/hvp/config.h +18 -0
@@ 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 <http://www.gnu.org/licenses/>. 
  */ 
#pragma once

#define LONG_TAPPING_TERM 1000
\ No newline at end of file

M users/hvp/hvp.h => users/hvp/hvp.h +34 -4
@@ 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 <http://www.gnu.org/licenses/>. 
  */ 


#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

A users/hvp/per_key.c => users/hvp/per_key.c +43 -0
@@ 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 <http://www.gnu.org/licenses/>. 
  */ 


// #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

M users/hvp/rules.mk => users/hvp/rules.mk +6 -1
@@ 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

M users/hvp/tap_dances.h => users/hvp/tap_dances.h +19 -2
@@ 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 <http://www.gnu.org/licenses/>. 
  */ 


#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