1
0
Fork 0

Keymap: 4x4 pro micro (#3976)

* 4x4 - pro micro version

* pro-micro setup on 4x4

* tap dance LCTL/RESET key

* remove test file

* more research

* revert a couple un-intended edits

* opt_defs version of adding custom rules.mk variables

* cleanup

* cleanup

* cleanup

* cleanup

* layout edits

* layout edits

* keymap edit

* numpad layout change

* got tap dance layer-switch working

* keymap changes

* temporary revert

* restore previous settings

* misc fixes

* layer order change

* fix layout matrix

* Update tapdances.c
This commit is contained in:
wanleg 2018-09-25 15:39:41 -07:00 committed by Drashna Jaelre
parent 61f9541066
commit 223081bf2b
7 changed files with 158 additions and 28 deletions

View file

@ -1,8 +1,4 @@
ifeq ($(strip $(KEYBOARD)), lets_split_rev2)
SRC += ../../keyboards/lets_split/lets_split.c
endif
SRC += wanleg.c tapdances.c
SRC += wanleg.c tapdances.c
TAP_DANCE_ENABLE = yes
MOUSEKEY_ENABLE = yes
@ -12,3 +8,9 @@ MOUSEKEY_ENABLE = yes
ifeq ($(strip $(dfu)), qmk)
BOOTLOADER = qmk-dfu
endif
#use alternate settings for 4x4 board using ProMicro instead of Micro
#usage: make 4x4:wanleg PM=yes
ifeq ($(strip $(PM)), yes)
OPT_DEFS += -DPRO_MICRO
endif

View file

@ -36,7 +36,7 @@ int cur_dance (qk_tap_dance_state_t *state) {
}
///// QUAD FUNCTION TAP DANCE GENERAL SETUP SECTION END /////
///// QUAD FUNCTION TAP DANCE PERSONALIZATION SECTION START /////
//instantialize an instance of 'tap' for the 'ENT' tap dance.
//instantiate 'tap' for the 'ENT' tap dance.
static tap ENTtap_state = {
.is_press_action = true,
.state = 0
@ -67,7 +67,7 @@ void ENT_reset (qk_tap_dance_state_t *state, void *user_data) {
ENTtap_state.state = 0;
}
//instanalize an instance of 'tap' for the 'DEL' tap dance.
//instantiate 'tap' for the 'DEL' tap dance.
static tap DELtap_state = {
.is_press_action = true,
.state = 0
@ -95,7 +95,7 @@ void DEL_reset (qk_tap_dance_state_t *state, void *user_data) {
DELtap_state.state = 0;
}
//instantialize an instance of 'tap' for the 'CAD' tap dance.
//instantiate 'tap' for the 'CAD' tap dance.
static tap CADtap_state = {
.is_press_action = true,
.state = 0
@ -107,7 +107,9 @@ void CAD_finished (qk_tap_dance_state_t *state, void *user_data) {
case SINGLE_TAP:
//register_code(KC_SPC);
SEND_STRING(SS_LGUI("l"));
#ifdef BACKLIGHT_ENABLE
backlight_set(3);
#endif
break;
case SINGLE_HOLD:
//register_code(KC_NO);
@ -121,7 +123,9 @@ void CAD_finished (qk_tap_dance_state_t *state, void *user_data) {
case DOUBLE_TAP:
//register_code(KC_ENT);
SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_DELETE))));
#ifdef BACKLIGHT_ENABLE
backlight_set(0);
#endif
break;
//case DOUBLE_HOLD: register_code(KC_NO); break; //register this keycode when button is tapped and then held
case DOUBLE_HOLD:
@ -136,7 +140,9 @@ void CAD_reset (qk_tap_dance_state_t *state, void *user_data) {
case SINGLE_TAP:
//unregister_code(KC_SPC);
SEND_STRING(SS_LGUI("l"));
#ifdef BACKLIGHT_ENABLE
backlight_set(3);
#endif
break;
case SINGLE_HOLD:
register_code(KC_NO); //(un)register this keycode when button is held and then released
@ -145,13 +151,71 @@ void CAD_reset (qk_tap_dance_state_t *state, void *user_data) {
case DOUBLE_TAP:
//register_code(KC_ENT);
SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_DELETE))));
#ifdef BACKLIGHT_ENABLE
backlight_set(0);
#endif
break;
case DOUBLE_HOLD: register_code(KC_NO); //(un)register this keycode when button is tapped and then held, and then released
case DOUBLE_SINGLE_TAP: unregister_code(KC_NO);
}
CADtap_state.state = 0;
}
}
//instantiate 'tap' for the 'RST' tap dance.
static tap RSTtap_state = {
.is_press_action = true,
.state = 0
};
void RST_finished (qk_tap_dance_state_t *state, void *user_data) {
RSTtap_state.state = cur_dance(state);
switch (RSTtap_state.state) {
case SINGLE_TAP: register_code(KC_LCTL); break;
case SINGLE_HOLD: register_code(KC_LCTL); break;
case DOUBLE_TAP: reset_keyboard(); break;
case DOUBLE_HOLD: register_code(KC_NO); break;
case DOUBLE_SINGLE_TAP: register_code(KC_LCTL); unregister_code(KC_LCTL); register_code(KC_LCTL);
}
}
void RST_reset (qk_tap_dance_state_t *state, void *user_data) {
switch (RSTtap_state.state) {
case SINGLE_TAP: unregister_code(KC_LCTL); break;
case SINGLE_HOLD: unregister_code(KC_LCTL); break;
case DOUBLE_TAP: unregister_code(KC_NO); break;
case DOUBLE_HOLD: unregister_code(KC_NO);
case DOUBLE_SINGLE_TAP: unregister_code(KC_LCTL);
}
RSTtap_state.state = 0;
}
//instantiate 'tap' for the 'LYR' tap dance.
static tap LYRtap_state = {
.is_press_action = true,
.state = 0
};
void LYR_finished (qk_tap_dance_state_t *state, void *user_data) {
LYRtap_state.state = cur_dance(state);
switch (LYRtap_state.state) {
case SINGLE_TAP: register_code(KC_PSLS); break;
case SINGLE_HOLD: register_code(KC_NO); break;
case DOUBLE_TAP: set_single_persistent_default_layer(_GK); break;
case DOUBLE_HOLD: register_code(KC_NO); break;
case DOUBLE_SINGLE_TAP: register_code(KC_PSLS); unregister_code(KC_PSLS); register_code(KC_PSLS);
}
}
void LYR_reset (qk_tap_dance_state_t *state, void *user_data) {
switch (LYRtap_state.state) {
case SINGLE_TAP: unregister_code(KC_PSLS); break;
case SINGLE_HOLD: unregister_code(KC_NO); break;
case DOUBLE_TAP: set_single_persistent_default_layer(_GK); break;
case DOUBLE_HOLD: unregister_code(KC_NO);
case DOUBLE_SINGLE_TAP: unregister_code(KC_PSLS);
}
LYRtap_state.state = 0;
}
///// QUAD FUNCTION TAP DANCE PERSONALIZATION SECTION END /////
//Tap Dance Definitions
@ -162,8 +226,11 @@ qk_tap_dance_action_t tap_dance_actions[] = {
,[TD_Q_ESC] = ACTION_TAP_DANCE_DOUBLE(KC_Q, KC_ESC)
,[ENT_TAP_DANCE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ENT_finished, ENT_reset)
,[DEL_TAP_DANCE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, DEL_finished, DEL_reset)
,[RST_TAP_DANCE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, RST_finished, RST_reset)
,[CAD_TD] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, CAD_finished, CAD_reset)
,[LYR_TAP_DANCE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, LYR_finished, LYR_reset)
};
//In Layer declaration, add tap dance item in place of a key code
//TD(TD_SFT_CAPS)
//TD(TD_SFT_CAPS)

View file

@ -41,6 +41,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return false;
break;
case NUMPAD:
if (record->event.pressed) {
set_single_persistent_default_layer(PAD);
}
return false;
break;
case SUBTER:
if (record->event.pressed) {
layer_on(SUB);

View file

@ -25,7 +25,8 @@ enum userspace_layers {
NUM75,
DIR75,
ETC75,
FN75
FN75,
PAD,
};
#elif KEYBOARD_xd75
enum userspace_layers {
@ -49,29 +50,31 @@ enum userspace_layers {
gNUM,
gDIR,
gETC,
PAD,
};
#else
enum userspace_layers {
_GK = 0,
PAD,
_QW,
QW75,
GK75,
gGK,
ONE,
SUB,
SUP,
NUM,
DIR,
ETC,
gGK,
gNUM,
gDIR,
gETC,
QW75,
GK75,
SUB75,
SUP75,
NUM75,
DIR75,
ETC75,
FN75
FN75,
};
#endif
@ -95,7 +98,8 @@ enum userspace_custom_keycodes {
NUMBER75,
DIRECTION75,
ETCETERA75,
FUNCTION75
FUNCTION75,
NUMPAD,
};
@ -107,6 +111,8 @@ enum {
,ENT_TAP_DANCE
,DEL_TAP_DANCE
,CAD_TD
,RST_TAP_DANCE
,LYR_TAP_DANCE
};
#endif
@ -123,6 +129,7 @@ enum {
#define LAYOUT_ortho_5x10_wrapper(...) LAYOUT_ortho_5x10(__VA_ARGS__)
#define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
#define LAYOUT_ortho_5x15_wrapper(...) LAYOUT_ortho_5x15(__VA_ARGS__)
#define LAYOUT_ortho_4x4_wrapper(...) LAYOUT_ortho_4x4(__VA_ARGS__)
// Blocks for each of the major keyboard layouts
// Organized so we can quickly adapt and modify all of them
@ -141,7 +148,7 @@ enum {
* | A | S | D | F | G | H | J | K | L | SPACE |
* | | | | | | | | | |SFThold |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | Z | X | C | V/gNUM | B/gETC | N | M/gDIR | ,/GUI | ./ALT | BKSC |
* | Z | X | C | V/gNUM | B/gETC | N | M/gDIR | ,/GUI | ./ALT | BSPC |
* | SFThold| | | | | | | | |CTRLhold|
* '-----------------------------------------------------------------------------------------'
*/
@ -168,7 +175,7 @@ enum {
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | F11 | F12 | | | | ENTER | SHIFT | GUI | ./ALT | BKSC |
* | F11 | F12 | | | | ENTER | SHIFT | GUI | ./ALT | BSPC |
* | | | | | | | | | |CTRLhold|
* '-----------------------------------------------------------------------------------------'
*/
@ -191,12 +198,12 @@ enum {
/* Gherkin-Like
* .-----------------------------------------------------------------------------------------------------------.
* | ESC | Q//ESC | W | E | R | T | Y | U | I | O | P | BACKSP |
* | ESC | Q//ESC | W | E | R | T | Y | U | I | O | P | BSPC |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | TAB | A | S | D | F | G | H | J | K | L | SPACE | ' |
* | | | | | | | | | | |SFThold | |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* |SFT/CAPS| Z | X | C | V/NUM | B/ETC | N | M/DIR | ,/GUI | ./ALT | BKSC | ENT/SFT|
* |SFT/CAPS| Z | X | C | V/NUM | B/ETC | N | M/DIR | ,/GUI | ./ALT | BSPC | ENT/SFT|
* | |SFThold | | | | | | | | |CTRLhold| |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | LCTRL | LGUI | ALT | ONEHAND| NUM | ETC | SPACE | DIR | RGUI | ALT | DEL | CTRL |
@ -210,7 +217,7 @@ enum {
/* Qwerty
* .-------------------------------------------------------------------------------------.
* | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
* | Esc | Q | W | E | R | T | Y | U | I | O | P | BSPC |
* |-------+------+------+------+------+-------------+------+------+------+------+-------|
* | Tab | A | S | D | F | G | H | J | K | L | ; | ' |
* |-------+------+------+------+------+------|------+------+------+------+------+-------|
@ -246,7 +253,7 @@ enum {
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | | F11 | F12 | | | | | | RGUI | ./ALT | BKSC | |
* | | F11 | F12 | | | | | | RGUI | ./ALT | BSPC | |
* | | | | | | | | | | |CTRLhold| |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | | | gherkin| | | | ENTER | SHIFT | | | | |
@ -259,11 +266,11 @@ enum {
/* Gherkin Numbers
* .-----------------------------------------------------------------------------------------------------------.
* | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | BACKSP |
* | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | BSPC |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | | F11 | F12 | | | | ENTER | SHIFT | RGUI | ./ALT | BKSC | |
* | | F11 | F12 | | | | ENTER | SHIFT | RGUI | ./ALT | BSPC | |
* | | | | | | | | | | |CTRLhold| |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | | | | | | | ENTER | SHIFT | RGUI | | | |
@ -307,4 +314,20 @@ enum {
#define ______________ETCETERA_Row__2______________ _______, _______________Gherkin_ETC_2_______________, _______
#define ______________ETCETERA_Row__3______________ _______, _______, _______, _______, _______, _______, LALT(LCTL(KC_DEL)), _______, _______, _______, _______, _______
/* Single 4x4 board only
* .-----------------------------------.
* | 7 | 8 | 9 | BSPC |
* |--------+--------+--------+--------|
* | 4 | 5 | 6 | SPACE |
* |--------+--------+--------+--------|
* | 1 | 2 | 3 | ENTER |
* |--------+--------+--------+--------|
* | 0 |/ //_GK | . | - |
* '-----------------------------------'
*/
#define _______________NUMPAD_Row__0_______________ KC_KP_7, KC_KP_8, KC_KP_9, KC_BSPC
#define _______________NUMPAD_Row__1_______________ KC_KP_4, KC_KP_5, KC_KP_6, KC_SPC
#define _______________NUMPAD_Row__2_______________ KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT
#define _______________NUMPAD_Row__3_______________ KC_KP_0, TD(LYR_TAP_DANCE), KC_KP_DOT, KC_PMNS
#endif // !USERSPACE