aboutsummaryrefslogtreecommitdiffstats
path: root/users/wanleg
diff options
context:
space:
mode:
authorAlex Ong <the.onga@gmail.com>2019-01-04 19:43:45 +1100
committerAlex Ong <the.onga@gmail.com>2019-01-04 19:43:45 +1100
commit2bb2977c133646c4e056960e72029270d77cc1eb (patch)
tree235d491f992121ac1716c5bf2fafb80983748576 /users/wanleg
parenta55c838961c89097ab849ed6cb1f261791e6b9b4 (diff)
parent47c91fc7f75ae0a477e55b687aa0fc30da0a283c (diff)
downloadfirmware-2bb2977c133646c4e056960e72029270d77cc1eb.tar.gz
firmware-2bb2977c133646c4e056960e72029270d77cc1eb.tar.bz2
firmware-2bb2977c133646c4e056960e72029270d77cc1eb.zip
Merge branch 'master' into debounce_refactor
# Conflicts: # tmk_core/common/keyboard.c
Diffstat (limited to 'users/wanleg')
-rw-r--r--users/wanleg/config.h26
-rw-r--r--users/wanleg/rules.mk35
-rw-r--r--users/wanleg/tapdances.c242
-rw-r--r--users/wanleg/wanleg.c75
-rw-r--r--users/wanleg/wanleg.h115
5 files changed, 333 insertions, 160 deletions
diff --git a/users/wanleg/config.h b/users/wanleg/config.h
index 22073449b..0c8b048af 100644
--- a/users/wanleg/config.h
+++ b/users/wanleg/config.h
@@ -1,11 +1,20 @@
-#ifndef USERSPACE_CONFIG_H
-#define USERSPACE_CONFIG_H
-
-#define PREVENT_STUCK_MODIFIERS
+#pragma once
//TAPPING_TERM
-#ifdef TAP_DANCE_ENABLE
-#define TAPPING_TERM 200
+//tapping term short (<100): on multi-purpose keys, slow taps may not register, but "holds" register easier. multi-tap keys may be difficult to activate.
+//tapping term long (>200): holds don't register as easily - noticeable when typing quickly (e.g. shift doesn't want to engage.)
+
+
+//MIGHT HAVE TO SPLIT THIS INTO TWO CONDITIONS
+#if defined(TAP_DANCE_ENABLE) && defined(KEYBOARD_lets_split_rev2) || defined(KEYBOARD_iris_rev2)
+//Kailh Coppers activate quickly and don't need a long tapping term
+#define TAPPING_TERM 100
+
+#elif defined(TAP_DANCE_ENABLE) && defined(KEYBOARD_bigswitch)
+#define TAPPING_TERM 700
+
+#else
+#define TAPPING_TERM 145
#endif
//Mousekey Settings
@@ -29,4 +38,7 @@
#define NO_ACTION_FUNCTION
#define NO_ACTION_ONESHOT
-#endif // !USERSPACE_CONFIG_H
+// Disable mod tap interrrupt
+#ifndef IGNORE_MOD_TAP_INTERRUPT
+#define IGNORE_MOD_TAP_INTERRUPT
+#endif // !mod tap interrrupt \ No newline at end of file
diff --git a/users/wanleg/rules.mk b/users/wanleg/rules.mk
index ac8676953..b069cd8d3 100644
--- a/users/wanleg/rules.mk
+++ b/users/wanleg/rules.mk
@@ -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,32 @@ MOUSEKEY_ENABLE = yes
ifeq ($(strip $(dfu)), qmk)
BOOTLOADER = qmk-dfu
endif
+
+#use alternate settings for boards using ProMicro instead of Micro
+#example usage: make 4x4:wanleg PM=yes
+ifeq ($(strip $(PM)), yes)
+ OPT_DEFS += -DPRO_MICRO
+endif
+
+#use alternate settings for boards using "Adafruit Feather 32u4 Bluefruit LE" instead of Micro
+#example usage: make 5x5:wanleg BT=yes
+ifeq ($(strip $(BT)), yes)
+ #opt_defs for alternate pin usage
+ OPT_DEFS += -DBLUEFRUIT
+ #Adafruit Bluefruit controller settings
+ BLUETOOTH = AdafruitBLE
+ BLUETOOTH_ENABLE = yes
+ F_CPU = 8000000
+ CONSOLE_ENABLE = no # Console for debug(+400)
+ COMMAND_ENABLE = no # Commands for debug and configuration
+ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+endif
+
+#move numpad to Left/Centre/Right(default) on 5x15 boards
+#example usage: make 4x4:wanleg padc=yes
+ifeq ($(strip $(padc)), yes)
+ OPT_DEFS += -DPADC
+endif
+ifeq ($(strip $(padl)), yes)
+ OPT_DEFS += -DPADL
+endif \ No newline at end of file
diff --git a/users/wanleg/tapdances.c b/users/wanleg/tapdances.c
index 318810b1b..1be5636dc 100644
--- a/users/wanleg/tapdances.c
+++ b/users/wanleg/tapdances.c
@@ -1,6 +1,12 @@
//Tap Dance Settings
#include "wanleg.h"
+//audio settings for one of the tap dances below
+#ifdef AUDIO_ENABLE
+ float lyrup_song[][2] = SONG(MUSIC_ON_SOUND);
+ float lyrdown_song[][2] = SONG(MUSIC_OFF_SOUND);
+#endif
+
///// QUAD FUNCTION TAP DANCE GENERAL SETUP SECTION START /////
///// (no need to edit this section) /////
//Enums used to clearly convey the state of the tap dance
@@ -9,7 +15,10 @@ enum {
SINGLE_HOLD = 2,
DOUBLE_TAP = 3,
DOUBLE_HOLD = 4,
- DOUBLE_SINGLE_TAP = 5 //send SINGLE_TAP twice - NOT DOUBLE_TAP
+ DOUBLE_SINGLE_TAP = 5, //send SINGLE_TAP twice - NOT DOUBLE_TAP
+ TRIPLE_TAP = 6,
+ TRIPLE_HOLD = 7,
+ TRIPLE_SINGLE_TAP = 8
// Add more enums here if you want for triple, quadruple, etc.
};
@@ -32,68 +41,209 @@ int cur_dance (qk_tap_dance_state_t *state) {
else if (state->pressed) return DOUBLE_HOLD;
else return DOUBLE_TAP;
}
- else return 6; //magic number. At some point this method will expand to work for more presses
+
+ //If count = 3, and it has been interrupted - assume that user is trying to type the letter associated
+ //with double tap.
+ else if (state->count == 3) {
+ if (state->interrupted) return TRIPLE_SINGLE_TAP;
+ else if (state->pressed) return TRIPLE_HOLD;
+ else return TRIPLE_TAP;
+ }
+ else return 9; //magic number. At some point this method will expand to work for more presses
}
///// 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.
-static tap ENTtap_state = {
+//instantiate 'tap' for the 'CAD' tap dance.
+static tap CADtap_state = {
+ .is_press_action = true,
+ .state = 0
+};
+
+void CAD_finished (qk_tap_dance_state_t *state, void *user_data) {
+ CADtap_state.state = cur_dance(state);
+ switch (CADtap_state.state) {
+ case SINGLE_TAP:
+ //register_code(KC_SPC);
+ SEND_STRING(SS_LGUI("l"));
+ #ifdef BACKLIGHT_ENABLE
+ backlight_level(3);
+ #endif
+ break;
+ case SINGLE_HOLD:
+ //register_code(KC_NO);
+ //take a screenshot of a single window, open Paint and paste
+ SEND_STRING(SS_LALT(SS_TAP(X_PSCREEN)) SS_LGUI("r"));
+ wait_ms(500);
+ SEND_STRING("mspaint" SS_TAP(X_ENTER));
+ wait_ms(700);
+ SEND_STRING(SS_LCTRL("v"));
+ break; //register this keycode when button is held
+ case DOUBLE_TAP:
+ //register_code(KC_ENT);
+ SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_DELETE))));
+ #ifdef BACKLIGHT_ENABLE
+ backlight_level(0);
+ #endif
+ break;
+ //case DOUBLE_HOLD: register_code(KC_NO); break; //register this keycode when button is tapped and then held
+ case DOUBLE_HOLD:
+ reset_keyboard();
+ break; //register this keycode when button is tapped and then held
+ case TRIPLE_TAP:
+ SEND_STRING("wanleg@github.com");
+ break;
+ case TRIPLE_HOLD:
+ set_single_persistent_default_layer(1);
+ #ifdef AUDIO_ENABLE
+ stop_all_notes();
+ PLAY_SONG(lyrup_song);
+ #endif
+ break;
+ }
+}
+
+void CAD_reset (qk_tap_dance_state_t *state, void *user_data) {
+ switch (CADtap_state.state) {
+//nothing to do
+ }
+ 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_SINGLE_TAP: register_code(KC_LCTL); unregister_code(KC_LCTL); register_code(KC_LCTL); break;
+ }
+}
+
+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_SINGLE_TAP: unregister_code(KC_LCTL); break;
+ }
+ 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 DOUBLE_TAP: set_single_persistent_default_layer(_GK); 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 DOUBLE_TAP: set_single_persistent_default_layer(_GK); break;
+ case DOUBLE_SINGLE_TAP: unregister_code(KC_PSLS);
+ }
+ LYRtap_state.state = 0;
+}
+
+//instantiate 'tap' for the 'LYR75' tap dance.
+static tap LYR75tap_state = {
.is_press_action = true,
.state = 0
};
-void ENT_finished (qk_tap_dance_state_t *state, void *user_data) {
- ENTtap_state.state = cur_dance(state);
- switch (ENTtap_state.state) {
- case SINGLE_TAP: register_code(KC_SPC); break;
- case SINGLE_HOLD: register_code(KC_LSFT); break;
- case DOUBLE_TAP: register_code(KC_ENT); break;
- case DOUBLE_HOLD: register_code(KC_NO); break; // setting double hold to do nothing (change this if you want)
- case DOUBLE_SINGLE_TAP: register_code(KC_SPC); unregister_code(KC_SPC); register_code(KC_SPC);
- //Last case is for fast typing. Assuming your key is `f`:
- //For example, when typing the word `buffer`, and you want to make sure that you send `ff` and not `Esc`.
- //In order to type `ff` when typing fast, the next character will have to be hit within the `TAPPING_TERM`, which by default is 200ms.
+void LYR75_finished (qk_tap_dance_state_t *state, void *user_data) {
+ LYR75tap_state.state = cur_dance(state);
+ switch (LYR75tap_state.state) {
+ case SINGLE_TAP: register_code(KC_PSLS); break;
+ case DOUBLE_TAP: set_single_persistent_default_layer(_GK); break;
+ case DOUBLE_SINGLE_TAP: register_code(KC_PSLS); unregister_code(KC_PSLS); register_code(KC_PSLS);
}
}
-void ENT_reset (qk_tap_dance_state_t *state, void *user_data) {
- switch (ENTtap_state.state) {
- case SINGLE_TAP: unregister_code(KC_SPC); break;
- case SINGLE_HOLD: unregister_code(KC_LSFT); break;
- case DOUBLE_TAP: unregister_code(KC_ENT); break;
- case DOUBLE_HOLD: unregister_code(KC_NO);
- case DOUBLE_SINGLE_TAP: unregister_code(KC_SPC);
+void LYR75_reset (qk_tap_dance_state_t *state, void *user_data) {
+ switch (LYR75tap_state.state) {
+ case SINGLE_TAP: unregister_code(KC_PSLS); break;
+ case DOUBLE_TAP: set_single_persistent_default_layer(_GK); break;
+ case DOUBLE_SINGLE_TAP: unregister_code(KC_PSLS);
}
- ENTtap_state.state = 0;
+ LYR75tap_state.state = 0;
}
-//instanalize an instance of 'tap' for the 'DEL' tap dance.
-static tap DELtap_state = {
+//instantiate 'tap' for the 'LYR50' tap dance.
+static tap LYR50tap_state = {
.is_press_action = true,
.state = 0
};
-void DEL_finished (qk_tap_dance_state_t *state, void *user_data) {
- DELtap_state.state = cur_dance(state);
- switch (DELtap_state.state) {
- case SINGLE_TAP: register_code(KC_BSPC); break;
- case SINGLE_HOLD: register_code(KC_LCTL); break;
- case DOUBLE_TAP: register_code(KC_DEL); break;
- case DOUBLE_HOLD: register_code(KC_NO); break;
- case DOUBLE_SINGLE_TAP: register_code(KC_BSPC); unregister_code(KC_BSPC); register_code(KC_BSPC);
+void LYR50_finished (qk_tap_dance_state_t *state, void *user_data) {
+ LYR50tap_state.state = cur_dance(state);
+ switch (LYR75tap_state.state) {
+ case SINGLE_TAP: register_code(KC_PSLS); break;
+ case DOUBLE_TAP: set_single_persistent_default_layer(GK50); break;
+ case DOUBLE_SINGLE_TAP: register_code(KC_PSLS); unregister_code(KC_PSLS); register_code(KC_PSLS);
}
}
-void DEL_reset (qk_tap_dance_state_t *state, void *user_data) {
- switch (DELtap_state.state) {
- case SINGLE_TAP: unregister_code(KC_BSPC); break;
- case SINGLE_HOLD: unregister_code(KC_LCTL); break;
- case DOUBLE_TAP: unregister_code(KC_DEL); break;
- case DOUBLE_HOLD: unregister_code(KC_NO);
- case DOUBLE_SINGLE_TAP: unregister_code(KC_BSPC);
+void LYR50_reset (qk_tap_dance_state_t *state, void *user_data) {
+ switch (LYR50tap_state.state) {
+ case SINGLE_TAP: unregister_code(KC_PSLS); break;
+ case DOUBLE_TAP: set_single_persistent_default_layer(GK50); break;
+ case DOUBLE_SINGLE_TAP: unregister_code(KC_PSLS);
}
- DELtap_state.state = 0;
+ LYR50tap_state.state = 0;
}
+
+//instantiate 'tap' for the 'BSW' tap dance.
+static tap BSWtap_state = {
+ .is_press_action = true,
+ .state = 0
+};
+
+void BSW_finished (qk_tap_dance_state_t *state, void *user_data) {
+ BSWtap_state.state = cur_dance(state);
+ switch (BSWtap_state.state) {
+ case SINGLE_TAP: register_code(KC_ENTER); break;
+ case SINGLE_HOLD:
+ set_single_persistent_default_layer(0);
+ #ifdef AUDIO_ENABLE
+ stop_all_notes();
+ PLAY_SONG(lyrdown_song);
+ #endif
+ break;
+ case DOUBLE_TAP:
+ register_code(KC_LCTRL);
+ register_code(KC_C);
+ break;
+ case DOUBLE_HOLD:
+ reset_keyboard();
+ break; //register this keycode when button is tapped and then held
+ }
+}
+
+void BSW_reset (qk_tap_dance_state_t *state, void *user_data) {
+ switch (BSWtap_state.state) {
+ case SINGLE_TAP: unregister_code(KC_ENTER); break;
+ case DOUBLE_TAP:
+ unregister_code(KC_LCTRL);
+ unregister_code(KC_C);
+ break;
+ }
+ BSWtap_state.state = 0;
+}
+
///// QUAD FUNCTION TAP DANCE PERSONALIZATION SECTION END /////
//Tap Dance Definitions
@@ -102,9 +252,13 @@ qk_tap_dance_action_t tap_dance_actions[] = {
[TD_SFT_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS)
// Other declarations would go here, separated by commas, if you have them
,[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)
+ ,[LYR75_TAP_DANCE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, LYR75_finished, LYR75_reset)
+ ,[LYR50_TAP_DANCE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, LYR50_finished, LYR50_reset)
+ ,[BSW_TAP_DANCE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, BSW_finished, BSW_reset)
};
//In Layer declaration, add tap dance item in place of a key code
-//TD(TD_SFT_CAPS) \ No newline at end of file
+//TD(TD_SFT_CAPS)
diff --git a/users/wanleg/wanleg.c b/users/wanleg/wanleg.c
index 0175ae201..274c74f72 100644
--- a/users/wanleg/wanleg.c
+++ b/users/wanleg/wanleg.c
@@ -29,15 +29,15 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return false;
break;
- case QWERTY75:
+ case NUMPAD:
if (record->event.pressed) {
- set_single_persistent_default_layer(QW75);
+ set_single_persistent_default_layer(PAD);
}
return false;
break;
- case GHERKIN75:
+ case GHERKIN50:
if (record->event.pressed) {
- set_single_persistent_default_layer(GK75);
+ set_single_persistent_default_layer(GK50);
}
return false;
break;
@@ -105,54 +105,35 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return false;
break;
- case SUBTER75:
+ case FUNCTION:
if (record->event.pressed) {
- layer_on(SUB75);
+ layer_on(_FN);
} else {
- layer_off(SUB75);
- }
- return false;
- break;
- case SUPRA75:
- if (record->event.pressed) {
- layer_on(SUP75);
- } else {
- layer_off(SUP75);
- }
- return false;
- break;
- case NUMBER75:
- if (record->event.pressed) {
- layer_on(NUM75);
- } else {
- layer_off(NUM75);
- }
- return false;
- break;
- case DIRECTION75:
- if (record->event.pressed) {
- layer_on(DIR75);
- } else {
- layer_off(DIR75);
- }
- return false;
- break;
- case ETCETERA75:
- if (record->event.pressed) {
- layer_on(ETC75);
- } else {
- layer_off(ETC75);
- }
- return false;
- break;
- case FUNCTION75:
- if (record->event.pressed) {
- layer_on(FN75);
- } else {
- layer_off(FN75);
+ layer_off(_FN);
}
return false;
break;
}
return true;
}
+
+/// Turn off LEDs on ProMicros of Let's Split ///
+// LEDs only on by default on Let's Split
+// Add reconfigurable functions here, for keymap customization
+// This allows for a global, userspace functions, and continued
+// customization of the keymap. Use _keymap instead of _user
+// functions in the keymaps
+__attribute__ ((weak))
+void matrix_init_keymap(void) {}
+
+// Call user matrix init, then call the keymap's init function
+void matrix_init_user(void) {
+#if defined(KEYBOARD_lets_split_rev2)
+ DDRD &= ~(1<<5);
+ PORTD &= ~(1<<5);
+
+ DDRB &= ~(1<<0);
+ PORTB &= ~(1<<0);
+#endif
+ matrix_init_keymap();
+} \ No newline at end of file
diff --git a/users/wanleg/wanleg.h b/users/wanleg/wanleg.h
index da14dcdf5..9d07760a7 100644
--- a/users/wanleg/wanleg.h
+++ b/users/wanleg/wanleg.h
@@ -1,5 +1,4 @@
-#ifndef USERSPACE
-#define USERSPACE
+#pragma once
#include "quantum.h"
@@ -12,66 +11,51 @@ enum userspace_layers {
gETC,
_GK,
_QW,
- QW75,
- GK75,
ONE,
SUB,
SUP,
NUM,
DIR,
ETC,
- SUB75,
- SUP75,
- NUM75,
- DIR75,
- ETC75,
- FN75
+ _FN,
+ PAD,
+ GK50,
};
-#elif KEYBOARD_xd75
+#elif KEYBOARD_40percentclub_5x5
enum userspace_layers {
- GK75 = 0,
- QW75,
- SUB75,
- SUP75,
- NUM75,
- DIR75,
- ETC75,
- FN75,
- gGK,
+ GK50 = 0,
_GK,
_QW,
+ PAD,
+ gNUM,
+ gDIR,
+ gETC,
+ gGK,
ONE,
SUB,
SUP,
NUM,
DIR,
ETC,
- gNUM,
- gDIR,
- gETC,
+ _FN,
};
#else
enum userspace_layers {
_GK = 0,
_QW,
- QW75,
- GK75,
- gGK,
+ PAD,
ONE,
SUB,
SUP,
NUM,
DIR,
ETC,
+ gGK,
gNUM,
gDIR,
gETC,
- SUB75,
- SUP75,
- NUM75,
- DIR75,
- ETC75,
- FN75
+ _FN,
+ GK50,
};
#endif
@@ -79,8 +63,6 @@ enum userspace_custom_keycodes {
gGHERKIN = SAFE_RANGE,
GHERKIN,
QWERTY,
- QWERTY75,
- GHERKIN75,
ONEHAND,
SUBTER,
SUPRA,
@@ -90,12 +72,9 @@ enum userspace_custom_keycodes {
gNUMBER,
gDIRECTION,
gETCETERA,
- SUBTER75,
- SUPRA75,
- NUMBER75,
- DIRECTION75,
- ETCETERA75,
- FUNCTION75
+ FUNCTION,
+ NUMPAD,
+ GHERKIN50,
};
@@ -104,8 +83,12 @@ enum userspace_custom_keycodes {
enum {
TD_SFT_CAPS = 0
,TD_Q_ESC
- ,ENT_TAP_DANCE
- ,DEL_TAP_DANCE
+ ,CAD_TD
+ ,RST_TAP_DANCE
+ ,LYR_TAP_DANCE
+ ,LYR50_TAP_DANCE
+ ,LYR75_TAP_DANCE
+ ,BSW_TAP_DANCE
};
#endif
@@ -119,7 +102,10 @@ enum {
#define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__)
#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
#define LAYOUT_ortho_3x10_wrapper(...) LAYOUT_ortho_3x10(__VA_ARGS__)
+#define LAYOUT_ortho_4x4_wrapper(...) LAYOUT_ortho_4x4(__VA_ARGS__)
#define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
+#define LAYOUT_ortho_5x5_wrapper(...) LAYOUT_ortho_5x5(__VA_ARGS__)
+#define LAYOUT_ortho_5x10_wrapper(...) LAYOUT_ortho_5x10(__VA_ARGS__)
#define LAYOUT_ortho_5x15_wrapper(...) LAYOUT_ortho_5x15(__VA_ARGS__)
// Blocks for each of the major keyboard layouts
@@ -139,7 +125,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|
* '-----------------------------------------------------------------------------------------'
*/
@@ -166,7 +152,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|
* '-----------------------------------------------------------------------------------------'
*/
@@ -176,25 +162,25 @@ enum {
/* Et Cetera
* .-----------------------------------------------------------------------------------------.
- * | ` | mUP | | | RESET | SHIFT | mScrUp | mScrDn | | \ |
+ * | ` | mUP | | | RESET | SHIFT | mScrDn | mScrUp | | \ |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
* | mLeft | mDown | mRight | | SHIFT | mBtn3 | mBtn1 | mBtn2 | ; | ' |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | Sft//Cp| | | | | C-A-D | mScrL | mScrR | ALT | DEL |
+ * | Sft//Cp| CAPS | | | | C-A-D | mScrL | mScrR | ALT | DEL |
* '-----------------------------------------------------------------------------------------'
*/
-#define _______________Gherkin_ETC_0_______________ KC_GRV, KC_MS_U, _______,_______, RESET, KC_RSFT, KC_WH_U, KC_WH_D, _______, KC_BSLS
+#define _______________Gherkin_ETC_0_______________ KC_GRV, KC_MS_U, _______,_______, RESET, KC_RSFT, KC_WH_D, KC_WH_U, _______, KC_BSLS
#define _______________Gherkin_ETC_1_______________ KC_MS_L, KC_MS_D, KC_MS_R,_______, KC_LSFT, KC_BTN3, KC_BTN1, KC_BTN2, KC_SCLN, KC_QUOT
-#define _______________Gherkin_ETC_2_______________ TD(TD_SFT_CAPS),_______, _______,_______, _______, LALT(LCTL(KC_DEL)), KC_WH_L, KC_WH_R, KC_LALT, KC_DEL
+#define _______________Gherkin_ETC_2_______________ TD(TD_SFT_CAPS),KC_CAPS, _______,_______, _______, LALT(LCTL(KC_DEL)), KC_WH_L, KC_WH_R, KC_LALT, KC_DEL
/* 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 |
@@ -204,11 +190,11 @@ enum {
#define _______________GherkinLike_1_______________ KC_TAB, _______________Gherkin_Row_1_______________, KC_QUOT
#define _______________GherkinLike_2_______________ TD(TD_SFT_CAPS), SFT_T(KC_Z), KC_X, KC_C, LT(NUM, KC_V),LT(ETC, KC_B),KC_N, LT(DIR, KC_M), GUI_T(KC_COMM), ALT_T(KC_DOT), CTL_T(KC_BSPC), SFT_T(KC_ENT)
#define _______________GherkinLike_3_______________ KC_LCTL, KC_LGUI, KC_LALT, KC_LALT, NUMBER, ETCETERA, KC_SPC,DIRECTION, KC_RGUI, KC_RALT, KC_DEL, KC_RCTL
-#define _______________GherkinLike_3_OneHand_______ KC_LCTL, KC_LGUI, KC_LALT, ONEHAND, NUMBER, ETCETERA, KC_SPC,DIRECTION, KC_RGUI, KC_RALT, KC_DEL, KC_RCTL
+#define _______________GherkinLike_3_OneHand_______ KC_LCTL, KC_LGUI, KC_LALT, ONEHAND, NUMBER, ETCETERA, KC_SPC,DIRECTION, KC_RGUI, KC_RALT, ONEHAND, KC_RCTL
/* 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 | ; | ' |
* |-------+------+------+------+------+------|------+------+------+------+------+-------|
@@ -244,7 +230,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 | | | | |
@@ -257,17 +243,17 @@ enum {
/* Gherkin Numbers
* .-----------------------------------------------------------------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | DEL |
+ * | | 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 | | | |
* '-----------------------------------------------------------------------------------------------------------'
*/
-#define _______________NUMBERS_Row_0_______________ _______, _______________Gherkin_NUM_0_______________, KC_DEL
+#define _______________NUMBERS_Row_0_______________ _______, _______________Gherkin_NUM_0_______________, KC_BSPC
#define _______________NUMBERS_Row_1_______________ _______, _______________Gherkin_NUM_1_______________, _______
#define _______________NUMBERS_Row_2_______________ _______, _______________Gherkin_NUM_2_______________, _______
#define _______________NUMBERS_Row_3_______________ _______, _______, _______, _______, _______, _______, KC_ENT, KC_RSFT, KC_RGUI, _______, _______, _______
@@ -305,4 +291,19 @@ enum {
#define ______________ETCETERA_Row__2______________ _______, _______________Gherkin_ETC_2_______________, _______
#define ______________ETCETERA_Row__3______________ _______, _______, _______, _______, _______, _______, LALT(LCTL(KC_DEL)), _______, _______, _______, _______, _______
-#endif // !USERSPACE
+/* 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