diff options
| author | wanleg <32079073+wanleg@users.noreply.github.com> | 2018-10-19 11:01:40 -0700 |
|---|---|---|
| committer | Drashna Jaelre <drashna@live.com> | 2018-10-19 11:01:40 -0700 |
| commit | 6f6d28fa8d81063691d2fd11540675eaa5b6989c (patch) | |
| tree | 6a80736f959e9b4029bc180304b790c06d391e12 | |
| parent | 9ca73a9edcb8cfaeba13baae16b8c8cc5c9fafe6 (diff) | |
| download | qmk_firmware-6f6d28fa8d81063691d2fd11540675eaa5b6989c.tar.gz qmk_firmware-6f6d28fa8d81063691d2fd11540675eaa5b6989c.zip | |
Big Switch and 5x5 edits (#4168)
* 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
* playing around with triple tap dance
* sync with upstream
* quick edit
* tapdance cleanup
* mod tap interrupt
* tapping term edit
* tapping term adjust
* 5x5 board edits
* set gherkin tapping term
* big switch tap dance edit
* tapping term refinements
* 5x10 layout setup
* add audio for bigswitch
* keymap change
* keymap change & created testing board
* sound setup for big_switch
* more big switch size testing
* bigswitch testing finished
* final touch-ups
| -rw-r--r-- | keyboards/5x5/5x5.h | 4 | ||||
| -rw-r--r-- | keyboards/bigswitch/bigswitch.c | 2 | ||||
| -rw-r--r-- | keyboards/bigswitch/keymaps/wanleg/config.h | 11 | ||||
| -rw-r--r-- | keyboards/bigswitch/keymaps/wanleg/keymap.c | 9 | ||||
| -rw-r--r-- | keyboards/bigswitch/keymaps/wanleg/rules.mk | 15 | ||||
| -rw-r--r-- | layouts/community/ortho_3x10/wanleg/readme.md | 9 | ||||
| -rw-r--r-- | layouts/community/ortho_5x10/wanleg/config.h | 9 | ||||
| -rw-r--r-- | layouts/community/ortho_5x10/wanleg/keymap.c | 38 | ||||
| -rw-r--r-- | layouts/community/ortho_5x10/wanleg/rules.mk | 3 | ||||
| -rw-r--r-- | layouts/community/ortho_5x15/wanleg/config.h | 11 | ||||
| -rw-r--r-- | layouts/community/ortho_5x15/wanleg/keymap.c | 89 | ||||
| -rw-r--r-- | layouts/community/ortho_5x5/layout.json | 1 | ||||
| -rw-r--r-- | layouts/community/ortho_5x5/readme.md | 3 | ||||
| -rw-r--r-- | users/wanleg/config.h | 18 | ||||
| -rw-r--r-- | users/wanleg/rules.mk | 4 | ||||
| -rw-r--r-- | users/wanleg/tapdances.c | 246 | ||||
| -rw-r--r-- | users/wanleg/wanleg.c | 6 | ||||
| -rw-r--r-- | users/wanleg/wanleg.h | 39 |
18 files changed, 305 insertions, 212 deletions
diff --git a/keyboards/5x5/5x5.h b/keyboards/5x5/5x5.h index cbfc28a90..45fb80a4f 100644 --- a/keyboards/5x5/5x5.h +++ b/keyboards/5x5/5x5.h | |||
| @@ -35,7 +35,7 @@ | |||
| 35 | { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, ___, ___, ___, ___, ___}, \ | 35 | { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, ___, ___, ___, ___, ___}, \ |
| 36 | { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, ___, ___, ___, ___, ___}, \ | 36 | { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, ___, ___, ___, ___, ___}, \ |
| 37 | { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, ___, ___, ___, ___, ___}, \ | 37 | { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, ___, ___, ___, ___, ___}, \ |
| 38 | { K30, K31, K32, K33, K34, K35, K35, K37, K38, K39, ___, ___, ___, ___, ___}, \ | 38 | { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, ___, ___, ___, ___, ___}, \ |
| 39 | { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, ___, ___, ___, ___, ___} \ | 39 | { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, ___, ___, ___, ___, ___} \ |
| 40 | } | 40 | } |
| 41 | 41 | ||
| @@ -50,7 +50,7 @@ | |||
| 50 | { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, K0c, K0d, K0e}, \ | 50 | { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, K0c, K0d, K0e}, \ |
| 51 | { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, K1c, K1d, K1e}, \ | 51 | { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, K1c, K1d, K1e}, \ |
| 52 | { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, K2c, K2d, K2e}, \ | 52 | { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, K2c, K2d, K2e}, \ |
| 53 | { K30, K31, K32, K33, K34, K35, K35, K37, K38, K39, K3a, K3b, K3c, K3d, K3e}, \ | 53 | { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, K3c, K3d, K3e}, \ |
| 54 | { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4a, K4b, K4c, K4d, K4e} \ | 54 | { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4a, K4b, K4c, K4d, K4e} \ |
| 55 | } | 55 | } |
| 56 | 56 | ||
diff --git a/keyboards/bigswitch/bigswitch.c b/keyboards/bigswitch/bigswitch.c index b924c7017..32f9f7fab 100644 --- a/keyboards/bigswitch/bigswitch.c +++ b/keyboards/bigswitch/bigswitch.c | |||
| @@ -26,10 +26,12 @@ void matrix_init_user(void) { | |||
| 26 | 26 | ||
| 27 | __attribute__ ((weak)) | 27 | __attribute__ ((weak)) |
| 28 | void matrix_scan_user(void) { | 28 | void matrix_scan_user(void) { |
| 29 | #if defined(RGBLIGHT_ENABLE) | ||
| 29 | if (runonce && timer_elapsed(my_timer) > 1000) { | 30 | if (runonce && timer_elapsed(my_timer) > 1000) { |
| 30 | runonce = false; | 31 | runonce = false; |
| 31 | rgblight_sethsv_noeeprom(0x0, 0xff, 0x80); | 32 | rgblight_sethsv_noeeprom(0x0, 0xff, 0x80); |
| 32 | rgblight_mode_noeeprom(9); | 33 | rgblight_mode_noeeprom(9); |
| 33 | rgblight_enable_noeeprom(); | 34 | rgblight_enable_noeeprom(); |
| 34 | } | 35 | } |
| 36 | #endif | ||
| 35 | } | 37 | } |
diff --git a/keyboards/bigswitch/keymaps/wanleg/config.h b/keyboards/bigswitch/keymaps/wanleg/config.h index f1e169345..8ac82f40d 100644 --- a/keyboards/bigswitch/keymaps/wanleg/config.h +++ b/keyboards/bigswitch/keymaps/wanleg/config.h | |||
| @@ -21,7 +21,6 @@ | |||
| 21 | #define MATRIX_ROW_PINS { B4 } | 21 | #define MATRIX_ROW_PINS { B4 } |
| 22 | #undef MATRIX_COL_PINS | 22 | #undef MATRIX_COL_PINS |
| 23 | #define MATRIX_COL_PINS { B6 } | 23 | #define MATRIX_COL_PINS { B6 } |
| 24 | //#define UNUSED_PINS | ||
| 25 | 24 | ||
| 26 | /* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ | 25 | /* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ |
| 27 | #undef DIODE_DIRECTION | 26 | #undef DIODE_DIRECTION |
| @@ -32,14 +31,12 @@ | |||
| 32 | #define BACKLIGHT_LEVELS 3 | 31 | #define BACKLIGHT_LEVELS 3 |
| 33 | #define BREATHING_PERIOD 5 | 32 | #define BREATHING_PERIOD 5 |
| 34 | 33 | ||
| 35 | /* for Tap Dance */ | ||
| 36 | #undef TAPPING_TERM | ||
| 37 | #define TAPPING_TERM 700 | ||
| 38 | |||
| 39 | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ | 34 | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ |
| 40 | //#define DEBOUNCING_DELAY 5 | ||
| 41 | #undef DEBOUNCING_DELAY | 35 | #undef DEBOUNCING_DELAY |
| 42 | #define DEBOUNCING_DELAY 2 | 36 | #define DEBOUNCING_DELAY 5 |
| 43 | 37 | ||
| 44 | // set flashing LED with QMK DFU | 38 | // set flashing LED with QMK DFU |
| 45 | #define QMK_LED B0 | 39 | #define QMK_LED B0 |
| 40 | |||
| 41 | // set audio pin | ||
| 42 | #define C6_AUDIO | ||
diff --git a/keyboards/bigswitch/keymaps/wanleg/keymap.c b/keyboards/bigswitch/keymaps/wanleg/keymap.c index 7f4150e58..76d0808fd 100644 --- a/keyboards/bigswitch/keymaps/wanleg/keymap.c +++ b/keyboards/bigswitch/keymaps/wanleg/keymap.c | |||
| @@ -20,8 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 20 | [0] = LAYOUT( /* Base */ | 20 | [0] = LAYOUT( /* Base */ |
| 21 | TD(CAD_TD) \ | 21 | TD(CAD_TD) \ |
| 22 | ), | 22 | ), |
| 23 | }; | 23 | [1] = LAYOUT( /*Secondary*/ |
| 24 | 24 | TD(BSW_TAP_DANCE) \ | |
| 25 | void led_set_user(uint8_t usb_led) { | 25 | ), |
| 26 | 26 | }; \ No newline at end of file | |
| 27 | } | ||
diff --git a/keyboards/bigswitch/keymaps/wanleg/rules.mk b/keyboards/bigswitch/keymaps/wanleg/rules.mk index bc4a1873f..a6c7d1d3f 100644 --- a/keyboards/bigswitch/keymaps/wanleg/rules.mk +++ b/keyboards/bigswitch/keymaps/wanleg/rules.mk | |||
| @@ -1,7 +1,16 @@ | |||
| 1 | BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default | ||
| 2 | |||
| 3 | #If using a ProMicro and it has the QMK DFU bootloader instead of Caterina, | 1 | #If using a ProMicro and it has the QMK DFU bootloader instead of Caterina, |
| 4 | #run "make <keyboard>:<keymap> dfu=qmk" when compiling to ensure it is flagged properly after being flashed | 2 | #run "make <keyboard>:<keymap> dfu=qmk" when compiling to ensure it is flagged properly after being flashed |
| 5 | ifeq ($(strip $(dfu)), qmk) | 3 | ifeq ($(strip $(dfu)), qmk) |
| 6 | BOOTLOADER = qmk-dfu | 4 | BOOTLOADER = qmk-dfu |
| 7 | endif \ No newline at end of file | 5 | endif |
| 6 | |||
| 7 | AUDIO_ENABLE = yes # Audio output on port C6 | ||
| 8 | BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default | ||
| 9 | CONSOLE_ENABLE = no # Console for debug(+400) | ||
| 10 | COMMAND_ENABLE = no # Commands for debug and configuration | ||
| 11 | RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow | ||
| 12 | MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) | ||
| 13 | UNICODE_ENABLE = no # Unicode | ||
| 14 | BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | ||
| 15 | FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches | ||
| 16 | HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400) \ No newline at end of file | ||
diff --git a/layouts/community/ortho_3x10/wanleg/readme.md b/layouts/community/ortho_3x10/wanleg/readme.md index ef6c1f9db..8696cccf6 100644 --- a/layouts/community/ortho_3x10/wanleg/readme.md +++ b/layouts/community/ortho_3x10/wanleg/readme.md | |||
| @@ -1,13 +1,10 @@ | |||
| 1 |  | 1 |  |
| 2 | # Gherkin Wanleg Layout | 2 | # Gherkin Wanleg Layout |
| 3 | This is the layout I came up with to preserve a standard QWERTY 104 key ANSI layout as much as possible, in as few layers as possible for a 30 key board. | 3 | This is the layout I came up with to preserve a standard QWERTY 104 key ANSI layout as much as possible, in as few layers as possible for a 30 key board. |
| 4 | I originally set up a few Tap Dance keys, but dropped half of them in favor of chorded versions since in actual use, they tended to impede typing speed more than their current two-key versions. | 4 | Here are the two Tap Dance keys I've set up for this board: |
| 5 | I've left them in my `keymap.c` ready for use if anyone wants to try them out: | ||
| 6 | 5 | ||
| 7 | Legend Name | Single Tap | Double Tap | Hold | 6 | Legend Name | Single Tap | Double Tap | Hold |
| 8 | --- | --- | --- | --- | 7 | --- | --- | --- | --- |
| 9 | *null* | space | enter | shift | ||
| 10 | *null* | backspace | delete | control | ||
| 11 | Sft//Cp | shift | caps lock | *null* | 8 | Sft//Cp | shift | caps lock | *null* |
| 12 | Q//Esc | KC_Q | escape | *null* | 9 | Q//Esc | KC_Q | escape | *null* |
| 13 | 10 | ||
diff --git a/layouts/community/ortho_5x10/wanleg/config.h b/layouts/community/ortho_5x10/wanleg/config.h deleted file mode 100644 index 2d24f2771..000000000 --- a/layouts/community/ortho_5x10/wanleg/config.h +++ /dev/null | |||
| @@ -1,9 +0,0 @@ | |||
| 1 | #pragma once | ||
| 2 | |||
| 3 | //QMK DFU settings (ProMicro boards) | ||
| 4 | // set top left key as bootloader mode escape key on Gherkin | ||
| 5 | #if defined(KEYBOARD_5x5) | ||
| 6 | #define QMK_LED B0 | ||
| 7 | #define QMK_ESC_OUTPUT D7 // usually COL | ||
| 8 | #define QMK_ESC_INPUT B2 // usually ROW | ||
| 9 | #endif | ||
diff --git a/layouts/community/ortho_5x10/wanleg/keymap.c b/layouts/community/ortho_5x10/wanleg/keymap.c deleted file mode 100644 index 5d06e53ae..000000000 --- a/layouts/community/ortho_5x10/wanleg/keymap.c +++ /dev/null | |||
| @@ -1,38 +0,0 @@ | |||
| 1 | #include QMK_KEYBOARD_H | ||
| 2 | #include "wanleg.h" | ||
| 3 | |||
| 4 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 5 | [gGK] = LAYOUT_ortho_5x10_wrapper( | ||
| 6 | _______________Gherkin_NUM_0_______________, | ||
| 7 | _______________Gherkin_Row_0_______________, | ||
| 8 | _______________Gherkin_Row_1_______________, | ||
| 9 | _______________Gherkin_Row_2_______________, | ||
| 10 | _______, _______, _______, gNUMBER, gETCETERA, KC_SPC,gDIRECTION, KC_RGUI, _______, _______ | ||
| 11 | ), | ||
| 12 | |||
| 13 | |||
| 14 | [gNUM] = LAYOUT_ortho_5x10_wrapper( | ||
| 15 | _______________Gherkin_NUM_0_______________, | ||
| 16 | _______________Gherkin_NUM_0_______________, | ||
| 17 | _______________Gherkin_NUM_1_______________, | ||
| 18 | _______________Gherkin_NUM_2_______________, | ||
| 19 | _______, _______, _______, _______, _______, KC_ENT, KC_RSFT, KC_RGUI, _______, _______ | ||
| 20 | ), | ||
| 21 | |||
| 22 | [gDIR] = LAYOUT_ortho_5x10_wrapper( | ||
| 23 | _______________Gherkin_NUM_0_______________, | ||
| 24 | _______________Gherkin_DIR_0_______________, | ||
| 25 | _______________Gherkin_DIR_1_______________, | ||
| 26 | _______________Gherkin_DIR_2_______________, | ||
| 27 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 28 | ), | ||
| 29 | |||
| 30 | [gETC] = LAYOUT_ortho_5x10_wrapper( | ||
| 31 | _______________Gherkin_NUM_0_______________, | ||
| 32 | _______________Gherkin_ETC_0_______________, | ||
| 33 | _______________Gherkin_ETC_1_______________, | ||
| 34 | _______________Gherkin_ETC_2_______________, | ||
| 35 | _______, _______, _______, _______, _______, LALT(LCTL(KC_DEL)), _______, _______, _______, _______ | ||
| 36 | ), | ||
| 37 | |||
| 38 | }; | ||
diff --git a/layouts/community/ortho_5x10/wanleg/rules.mk b/layouts/community/ortho_5x10/wanleg/rules.mk deleted file mode 100644 index 90841d2ab..000000000 --- a/layouts/community/ortho_5x10/wanleg/rules.mk +++ /dev/null | |||
| @@ -1,3 +0,0 @@ | |||
| 1 | SWAP_HANDS_ENABLE = no | ||
| 2 | |||
| 3 | BOOTLOADER = qmk-dfu \ No newline at end of file | ||
diff --git a/layouts/community/ortho_5x15/wanleg/config.h b/layouts/community/ortho_5x15/wanleg/config.h index a55fc6a3e..1043986f7 100644 --- a/layouts/community/ortho_5x15/wanleg/config.h +++ b/layouts/community/ortho_5x15/wanleg/config.h | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | #ifndef CONFIG_USER_H | 1 | #pragma once |
| 2 | #define CONFIG_USER_H | 2 | |
| 3 | #endif | 3 | // set top left key as bootloader mode escape key on 5x5 75key layout |
| 4 | #if defined(KEYBOARD_5x5) && !defined(PRO_MICRO) | ||
| 5 | #define QMK_LED B0 | ||
| 6 | #define QMK_ESC_OUTPUT D7 // usually COL | ||
| 7 | #define QMK_ESC_INPUT B2 // usually ROW | ||
| 8 | #endif \ No newline at end of file | ||
diff --git a/layouts/community/ortho_5x15/wanleg/keymap.c b/layouts/community/ortho_5x15/wanleg/keymap.c index 7731edb6a..df7424115 100644 --- a/layouts/community/ortho_5x15/wanleg/keymap.c +++ b/layouts/community/ortho_5x15/wanleg/keymap.c | |||
| @@ -2,30 +2,36 @@ | |||
| 2 | #include "wanleg.h" | 2 | #include "wanleg.h" |
| 3 | 3 | ||
| 4 | #define _________________BLANK_75__________________ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | 4 | #define _________________BLANK_75__________________ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ |
| 5 | #define _________________BLANK_50__________________ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | ||
| 5 | #define _________________Num_Row_75________________ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NLCK | 6 | #define _________________Num_Row_75________________ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NLCK |
| 6 | 7 | ||
| 7 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 8 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
| 8 | /* QWERTY 75 | 9 | #if defined(KEYBOARD_5x5) |
| 9 | * .--------------------------------------------------------------------------------------------------------------------------------------. | 10 | [GK75] = LAYOUT_ortho_5x15_wrapper( |
| 10 | * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | NUMLOCK| gherkin| | FN | | 11 | _________________Num_Row_75________________, QWERTY75, XXXXXXX, FUNCTION75, |
| 11 | * |-----------------------------------------------------------------------------------------------------------+--------+--------+--------| | 12 | _______________GherkinLike_0_______________, KC_KP_7, KC_KP_8, KC_KP_9, |
| 12 | * | | 7 | 8 | 9 | | 13 | _______________GherkinLike_1_______________, KC_KP_4, KC_KP_5, KC_KP_6, |
| 13 | * | |--------+--------+--------| | 14 | TD(TD_SFT_CAPS), SFT_T(KC_Z), KC_X, KC_C, LT(NUM75, KC_V), LT(ETC75, KC_B), KC_N, LT(DIR75, KC_M), GUI_T(KC_COMM), ALT_T(KC_DOT), CTL_T(KC_BSPC), SFT_T(KC_ENT), KC_KP_1, KC_KP_2, KC_KP_3, |
| 14 | * | 4x12 QWERTY LAYOUT | 4 | 5 | 6 | | 15 | TD(RST_TAP_DANCE), GHERKIN50, KC_LALT, NUMPAD, NUMBER75, ETCETERA75, KC_SPC,DIRECTION75, KC_RGUI, KC_RALT, KC_DEL, KC_RCTL, KC_KP_0, KC_KP_0, KC_KP_DOT |
| 15 | * | |--------+--------+--------| | 16 | ), |
| 16 | * | | 1 | 2 | 3 | | 17 | |
| 17 | * | |--------+--------+--------| | 18 | [PAD] = LAYOUT_ortho_5x5_wrapper( |
| 18 | * | | 0 | 0 | . | | 19 | _______, _______, _______, _______, _______, |
| 19 | * '--------------------------------------------------------------------------------------------------------------------------------------' | 20 | _______________NUMPAD_Row__0_______________, _______, |
| 20 | */ | 21 | _______________NUMPAD_Row__1_______________, _______, |
| 21 | [QW75] = LAYOUT_ortho_5x15_wrapper( | 22 | _______________NUMPAD_Row__2_______________, _______, |
| 22 | _________________Num_Row_75________________, GHERKIN75, XXXXXXX, FUNCTION75, | 23 | KC_KP_0, TD(LYR50_TAP_DANCE), KC_KP_DOT, KC_PMNS, _______ |
| 23 | _______________Qwerty_Row__0_______________, KC_KP_7, KC_KP_8, KC_KP_9, | 24 | ), |
| 24 | _______________Qwerty_Row__1_______________, KC_KP_4, KC_KP_5, KC_KP_6, | 25 | |
| 25 | _______________Qwerty_Row__2_______________, KC_KP_1, KC_KP_2, KC_KP_3, | 26 | [GK50] = LAYOUT_ortho_5x10_wrapper( |
| 26 | KC_LCTL, KC_LGUI, KC_LALT, KC_LALT, SUBTER75, KC_LSFT, KC_SPC, SUPRA75, KC_RGUI, KC_RALT, KC_DEL, KC_RCTL, KC_KP_0, KC_KP_0, KC_KP_DOT | 27 | KC_ESC, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSPC, |
| 28 | _______________Gherkin_Row_0_______________, | ||
| 29 | _______________Gherkin_Row_1_______________, | ||
| 30 | _______________Gherkin_Row_2_______________, | ||
| 31 | TD(RST_TAP_DANCE), GHERKIN75, NUMPAD, gNUMBER, gETCETERA, KC_SPC,gDIRECTION, KC_RGUI, KC_RALT, KC_RGUI | ||
| 27 | ), | 32 | ), |
| 28 | 33 | ||
| 34 | #else | ||
| 29 | /* Gherkin 75 | 35 | /* Gherkin 75 |
| 30 | * .--------------------------------------------------------------------------------------------------------------------------------------. | 36 | * .--------------------------------------------------------------------------------------------------------------------------------------. |
| 31 | * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | NUMLOCK| qwerty | | FN | | 37 | * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | NUMLOCK| qwerty | | FN | |
| @@ -46,6 +52,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 46 | TD(TD_SFT_CAPS), SFT_T(KC_Z), KC_X, KC_C, LT(NUM75, KC_V), LT(ETC75, KC_B), KC_N, LT(DIR75, KC_M), GUI_T(KC_COMM), ALT_T(KC_DOT), CTL_T(KC_BSPC), SFT_T(KC_ENT), KC_KP_1, KC_KP_2, KC_KP_3, | 52 | TD(TD_SFT_CAPS), SFT_T(KC_Z), KC_X, KC_C, LT(NUM75, KC_V), LT(ETC75, KC_B), KC_N, LT(DIR75, KC_M), GUI_T(KC_COMM), ALT_T(KC_DOT), CTL_T(KC_BSPC), SFT_T(KC_ENT), KC_KP_1, KC_KP_2, KC_KP_3, |
| 47 | KC_LCTL, KC_LGUI, KC_LALT, KC_LALT, NUMBER75, ETCETERA75, KC_SPC,DIRECTION75, KC_RGUI, KC_RALT, KC_DEL, KC_RCTL, KC_KP_0, KC_KP_0, KC_KP_DOT | 53 | KC_LCTL, KC_LGUI, KC_LALT, KC_LALT, NUMBER75, ETCETERA75, KC_SPC,DIRECTION75, KC_RGUI, KC_RALT, KC_DEL, KC_RCTL, KC_KP_0, KC_KP_0, KC_KP_DOT |
| 48 | ), | 54 | ), |
| 55 | #endif | ||
| 56 | /* QWERTY 75 | ||
| 57 | * .--------------------------------------------------------------------------------------------------------------------------------------. | ||
| 58 | * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | NUMLOCK| gherkin| | FN | | ||
| 59 | * |-----------------------------------------------------------------------------------------------------------+--------+--------+--------| | ||
| 60 | * | | 7 | 8 | 9 | | ||
| 61 | * | |--------+--------+--------| | ||
| 62 | * | 4x12 QWERTY LAYOUT | 4 | 5 | 6 | | ||
| 63 | * | |--------+--------+--------| | ||
| 64 | * | | 1 | 2 | 3 | | ||
| 65 | * | |--------+--------+--------| | ||
| 66 | * | | 0 | 0 | . | | ||
| 67 | * '--------------------------------------------------------------------------------------------------------------------------------------' | ||
| 68 | */ | ||
| 69 | [QW75] = LAYOUT_ortho_5x15_wrapper( | ||
| 70 | _________________Num_Row_75________________, GHERKIN75, XXXXXXX, FUNCTION75, | ||
| 71 | _______________Qwerty_Row__0_______________, KC_KP_7, KC_KP_8, KC_KP_9, | ||
| 72 | _______________Qwerty_Row__1_______________, KC_KP_4, KC_KP_5, KC_KP_6, | ||
| 73 | _______________Qwerty_Row__2_______________, KC_KP_1, KC_KP_2, KC_KP_3, | ||
| 74 | KC_LCTL, KC_LGUI, KC_LALT, KC_LALT, SUBTER75, KC_LSFT, KC_SPC, SUPRA75, KC_RGUI, KC_RALT, KC_DEL, KC_RCTL, KC_KP_0, KC_KP_0, KC_KP_DOT | ||
| 75 | ), | ||
| 49 | 76 | ||
| 50 | /* SUBTER75 | 77 | /* SUBTER75 |
| 51 | * .--------------------------------------------------------------------------------------------------------------------------------------. | 78 | * .--------------------------------------------------------------------------------------------------------------------------------------. |
| @@ -173,4 +200,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 173 | RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_INC, BL_DEC, _______, _______, KC_MS_U, KC_WH_D, | 200 | RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_INC, BL_DEC, _______, _______, KC_MS_U, KC_WH_D, |
| 174 | _______, _______, _______, _______, _______, _______, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R | 201 | _______, _______, _______, _______, _______, _______, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R |
| 175 | ), | 202 | ), |
| 203 | |||
| 204 | [gNUM] = LAYOUT_ortho_5x10_wrapper( | ||
| 205 | _________________BLANK_50__________________, | ||
| 206 | _______________Gherkin_NUM_0_______________, | ||
| 207 | _______________Gherkin_NUM_1_______________, | ||
| 208 | _______________Gherkin_NUM_2_______________, | ||
| 209 | _______, _______, _______, _______, _______, KC_ENT, KC_RSFT, KC_RGUI, _______, _______ | ||
| 210 | ), | ||
| 211 | |||
| 212 | [gDIR] = LAYOUT_ortho_5x10_wrapper( | ||
| 213 | _________________BLANK_50__________________, | ||
| 214 | _______________Gherkin_DIR_0_______________, | ||
| 215 | _______________Gherkin_DIR_1_______________, | ||
| 216 | _______________Gherkin_DIR_2_______________, | ||
| 217 | _________________BLANK_50__________________ | ||
| 218 | ), | ||
| 219 | |||
| 220 | [gETC] = LAYOUT_ortho_5x10_wrapper( | ||
| 221 | _________________BLANK_50__________________, | ||
| 222 | _______________Gherkin_ETC_0_______________, | ||
| 223 | _______________Gherkin_ETC_1_______________, | ||
| 224 | _______________Gherkin_ETC_2_______________, | ||
| 225 | _______, KC_CAPS, _______, _______, _______, LALT(LCTL(KC_DEL)), _______, _______, _______, _______ | ||
| 226 | ), | ||
| 176 | }; | 227 | }; |
diff --git a/layouts/community/ortho_5x5/layout.json b/layouts/community/ortho_5x5/layout.json new file mode 100644 index 000000000..ab4eef8e1 --- /dev/null +++ b/layouts/community/ortho_5x5/layout.json | |||
| @@ -0,0 +1 @@ | |||
| ["","","","",""],["","","","",""],["","","","",""],["","","","",""],["","","","",""] | |||
diff --git a/layouts/community/ortho_5x5/readme.md b/layouts/community/ortho_5x5/readme.md new file mode 100644 index 000000000..3dd75765d --- /dev/null +++ b/layouts/community/ortho_5x5/readme.md | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | # ortho_5x5 | ||
| 2 | |||
| 3 | LAYOUT_ortho_5x5 \ No newline at end of file | ||
diff --git a/users/wanleg/config.h b/users/wanleg/config.h index 28e7690e6..f2e785659 100644 --- a/users/wanleg/config.h +++ b/users/wanleg/config.h | |||
| @@ -2,8 +2,17 @@ | |||
| 2 | #define USERSPACE_CONFIG_H | 2 | #define USERSPACE_CONFIG_H |
| 3 | 3 | ||
| 4 | //TAPPING_TERM | 4 | //TAPPING_TERM |
| 5 | #ifdef TAP_DANCE_ENABLE | 5 | //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. |
| 6 | #define TAPPING_TERM 200 | 6 | //tapping term long (>200): holds don't register as easily - noticeable when typing quickly (e.g. shift doesn't want to engage.) |
| 7 | #if defined(TAP_DANCE_ENABLE) && defined(KEYBOARD_lets_split_rev2) | ||
| 8 | //Kailh Coppers activate quickly and don't need a long tapping term | ||
| 9 | #define TAPPING_TERM 100 | ||
| 10 | |||
| 11 | #elif defined(TAP_DANCE_ENABLE) && defined(KEYBOARD_bigswitch) | ||
| 12 | #define TAPPING_TERM 700 | ||
| 13 | |||
| 14 | #else | ||
| 15 | #define TAPPING_TERM 145 | ||
| 7 | #endif | 16 | #endif |
| 8 | 17 | ||
| 9 | //Mousekey Settings | 18 | //Mousekey Settings |
| @@ -27,4 +36,9 @@ | |||
| 27 | #define NO_ACTION_FUNCTION | 36 | #define NO_ACTION_FUNCTION |
| 28 | #define NO_ACTION_ONESHOT | 37 | #define NO_ACTION_ONESHOT |
| 29 | 38 | ||
| 39 | // Disable mod tap interrrupt | ||
| 40 | #ifndef IGNORE_MOD_TAP_INTERRUPT | ||
| 41 | #define IGNORE_MOD_TAP_INTERRUPT | ||
| 42 | #endif // !mod tap interrrupt | ||
| 43 | |||
| 30 | #endif // !USERSPACE_CONFIG_H | 44 | #endif // !USERSPACE_CONFIG_H |
diff --git a/users/wanleg/rules.mk b/users/wanleg/rules.mk index 563040131..2a2a65cfe 100644 --- a/users/wanleg/rules.mk +++ b/users/wanleg/rules.mk | |||
| @@ -9,8 +9,8 @@ ifeq ($(strip $(dfu)), qmk) | |||
| 9 | BOOTLOADER = qmk-dfu | 9 | BOOTLOADER = qmk-dfu |
| 10 | endif | 10 | endif |
| 11 | 11 | ||
| 12 | #use alternate settings for 4x4 board using ProMicro instead of Micro | 12 | #use alternate settings for boards using ProMicro instead of Micro |
| 13 | #usage: make 4x4:wanleg PM=yes | 13 | #example usage: make 4x4:wanleg PM=yes |
| 14 | ifeq ($(strip $(PM)), yes) | 14 | ifeq ($(strip $(PM)), yes) |
| 15 | OPT_DEFS += -DPRO_MICRO | 15 | OPT_DEFS += -DPRO_MICRO |
| 16 | endif | 16 | endif |
diff --git a/users/wanleg/tapdances.c b/users/wanleg/tapdances.c index 0778bf5f7..3878e6d31 100644 --- a/users/wanleg/tapdances.c +++ b/users/wanleg/tapdances.c | |||
| @@ -1,6 +1,12 @@ | |||
| 1 | //Tap Dance Settings | 1 | //Tap Dance Settings |
| 2 | #include "wanleg.h" | 2 | #include "wanleg.h" |
| 3 | 3 | ||
| 4 | //audio settings for one of the tap dances below | ||
| 5 | #ifdef AUDIO_ENABLE | ||
| 6 | float lyrup_song[][2] = SONG(MUSIC_ON_SOUND); | ||
| 7 | float lyrdown_song[][2] = SONG(MUSIC_OFF_SOUND); | ||
| 8 | #endif | ||
| 9 | |||
| 4 | ///// QUAD FUNCTION TAP DANCE GENERAL SETUP SECTION START ///// | 10 | ///// QUAD FUNCTION TAP DANCE GENERAL SETUP SECTION START ///// |
| 5 | ///// (no need to edit this section) ///// | 11 | ///// (no need to edit this section) ///// |
| 6 | //Enums used to clearly convey the state of the tap dance | 12 | //Enums used to clearly convey the state of the tap dance |
| @@ -9,7 +15,10 @@ enum { | |||
| 9 | SINGLE_HOLD = 2, | 15 | SINGLE_HOLD = 2, |
| 10 | DOUBLE_TAP = 3, | 16 | DOUBLE_TAP = 3, |
| 11 | DOUBLE_HOLD = 4, | 17 | DOUBLE_HOLD = 4, |
| 12 | DOUBLE_SINGLE_TAP = 5 //send SINGLE_TAP twice - NOT DOUBLE_TAP | 18 | DOUBLE_SINGLE_TAP = 5, //send SINGLE_TAP twice - NOT DOUBLE_TAP |
| 19 | TRIPLE_TAP = 6, | ||
| 20 | TRIPLE_HOLD = 7, | ||
| 21 | TRIPLE_SINGLE_TAP = 8 | ||
| 13 | // Add more enums here if you want for triple, quadruple, etc. | 22 | // Add more enums here if you want for triple, quadruple, etc. |
| 14 | }; | 23 | }; |
| 15 | 24 | ||
| @@ -32,69 +41,18 @@ int cur_dance (qk_tap_dance_state_t *state) { | |||
| 32 | else if (state->pressed) return DOUBLE_HOLD; | 41 | else if (state->pressed) return DOUBLE_HOLD; |
| 33 | else return DOUBLE_TAP; | 42 | else return DOUBLE_TAP; |
| 34 | } | 43 | } |
| 35 | else return 6; //magic number. At some point this method will expand to work for more presses | ||
| 36 | } | ||
| 37 | ///// QUAD FUNCTION TAP DANCE GENERAL SETUP SECTION END ///// | ||
| 38 | ///// QUAD FUNCTION TAP DANCE PERSONALIZATION SECTION START ///// | ||
| 39 | //instantiate 'tap' for the 'ENT' tap dance. | ||
| 40 | static tap ENTtap_state = { | ||
| 41 | .is_press_action = true, | ||
| 42 | .state = 0 | ||
| 43 | }; | ||
| 44 | |||
| 45 | void ENT_finished (qk_tap_dance_state_t *state, void *user_data) { | ||
| 46 | ENTtap_state.state = cur_dance(state); | ||
| 47 | switch (ENTtap_state.state) { | ||
| 48 | case SINGLE_TAP: register_code(KC_SPC); break; | ||
| 49 | case SINGLE_HOLD: register_code(KC_LSFT); break; | ||
| 50 | case DOUBLE_TAP: register_code(KC_ENT); break; | ||
| 51 | case DOUBLE_HOLD: register_code(KC_NO); break; // setting double hold to do nothing (change this if you want) | ||
| 52 | case DOUBLE_SINGLE_TAP: register_code(KC_SPC); unregister_code(KC_SPC); register_code(KC_SPC); | ||
| 53 | //Last case is for fast typing. Assuming your key is `f`: | ||
| 54 | //For example, when typing the word `buffer`, and you want to make sure that you send `ff` and not `Esc`. | ||
| 55 | //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. | ||
| 56 | } | ||
| 57 | } | ||
| 58 | |||
| 59 | void ENT_reset (qk_tap_dance_state_t *state, void *user_data) { | ||
| 60 | switch (ENTtap_state.state) { | ||
| 61 | case SINGLE_TAP: unregister_code(KC_SPC); break; | ||
| 62 | case SINGLE_HOLD: unregister_code(KC_LSFT); break; | ||
| 63 | case DOUBLE_TAP: unregister_code(KC_ENT); break; | ||
| 64 | case DOUBLE_HOLD: unregister_code(KC_NO); | ||
| 65 | case DOUBLE_SINGLE_TAP: unregister_code(KC_SPC); | ||
| 66 | } | ||
| 67 | ENTtap_state.state = 0; | ||
| 68 | } | ||
| 69 | |||
| 70 | //instantiate 'tap' for the 'DEL' tap dance. | ||
| 71 | static tap DELtap_state = { | ||
| 72 | .is_press_action = true, | ||
| 73 | .state = 0 | ||
| 74 | }; | ||
| 75 | |||
| 76 | void DEL_finished (qk_tap_dance_state_t *state, void *user_data) { | ||
| 77 | DELtap_state.state = cur_dance(state); | ||
| 78 | switch (DELtap_state.state) { | ||
| 79 | case SINGLE_TAP: register_code(KC_BSPC); break; | ||
| 80 | case SINGLE_HOLD: register_code(KC_LCTL); break; | ||
| 81 | case DOUBLE_TAP: register_code(KC_DEL); break; | ||
| 82 | case DOUBLE_HOLD: register_code(KC_NO); break; | ||
| 83 | case DOUBLE_SINGLE_TAP: register_code(KC_BSPC); unregister_code(KC_BSPC); register_code(KC_BSPC); | ||
| 84 | } | ||
| 85 | } | ||
| 86 | 44 | ||
| 87 | void DEL_reset (qk_tap_dance_state_t *state, void *user_data) { | 45 | //If count = 3, and it has been interrupted - assume that user is trying to type the letter associated |
| 88 | switch (DELtap_state.state) { | 46 | //with double tap. |
| 89 | case SINGLE_TAP: unregister_code(KC_BSPC); break; | 47 | else if (state->count == 3) { |
| 90 | case SINGLE_HOLD: unregister_code(KC_LCTL); break; | 48 | if (state->interrupted) return TRIPLE_SINGLE_TAP; |
| 91 | case DOUBLE_TAP: unregister_code(KC_DEL); break; | 49 | else if (state->pressed) return TRIPLE_HOLD; |
| 92 | case DOUBLE_HOLD: unregister_code(KC_NO); | 50 | else return TRIPLE_TAP; |
| 93 | case DOUBLE_SINGLE_TAP: unregister_code(KC_BSPC); | ||
| 94 | } | 51 | } |
| 95 | DELtap_state.state = 0; | 52 | else return 9; //magic number. At some point this method will expand to work for more presses |
| 96 | } | 53 | } |
| 97 | 54 | ///// QUAD FUNCTION TAP DANCE GENERAL SETUP SECTION END ///// | |
| 55 | ///// QUAD FUNCTION TAP DANCE PERSONALIZATION SECTION START ///// | ||
| 98 | //instantiate 'tap' for the 'CAD' tap dance. | 56 | //instantiate 'tap' for the 'CAD' tap dance. |
| 99 | static tap CADtap_state = { | 57 | static tap CADtap_state = { |
| 100 | .is_press_action = true, | 58 | .is_press_action = true, |
| @@ -104,14 +62,14 @@ static tap CADtap_state = { | |||
| 104 | void CAD_finished (qk_tap_dance_state_t *state, void *user_data) { | 62 | void CAD_finished (qk_tap_dance_state_t *state, void *user_data) { |
| 105 | CADtap_state.state = cur_dance(state); | 63 | CADtap_state.state = cur_dance(state); |
| 106 | switch (CADtap_state.state) { | 64 | switch (CADtap_state.state) { |
| 107 | case SINGLE_TAP: | 65 | case SINGLE_TAP: |
| 108 | //register_code(KC_SPC); | 66 | //register_code(KC_SPC); |
| 109 | SEND_STRING(SS_LGUI("l")); | 67 | SEND_STRING(SS_LGUI("l")); |
| 110 | #ifdef BACKLIGHT_ENABLE | 68 | #ifdef BACKLIGHT_ENABLE |
| 111 | backlight_set(3); | 69 | backlight_level(3); |
| 112 | #endif | 70 | #endif |
| 113 | break; | 71 | break; |
| 114 | case SINGLE_HOLD: | 72 | case SINGLE_HOLD: |
| 115 | //register_code(KC_NO); | 73 | //register_code(KC_NO); |
| 116 | //take a screenshot of a single window, open Paint and paste | 74 | //take a screenshot of a single window, open Paint and paste |
| 117 | SEND_STRING(SS_LALT(SS_TAP(X_PSCREEN)) SS_LGUI("r")); | 75 | SEND_STRING(SS_LALT(SS_TAP(X_PSCREEN)) SS_LGUI("r")); |
| @@ -120,47 +78,37 @@ void CAD_finished (qk_tap_dance_state_t *state, void *user_data) { | |||
| 120 | _delay_ms(700); | 78 | _delay_ms(700); |
| 121 | SEND_STRING(SS_LCTRL("v")); | 79 | SEND_STRING(SS_LCTRL("v")); |
| 122 | break; //register this keycode when button is held | 80 | break; //register this keycode when button is held |
| 123 | case DOUBLE_TAP: | 81 | case DOUBLE_TAP: |
| 124 | //register_code(KC_ENT); | 82 | //register_code(KC_ENT); |
| 125 | SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_DELETE)))); | 83 | SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_DELETE)))); |
| 126 | #ifdef BACKLIGHT_ENABLE | 84 | #ifdef BACKLIGHT_ENABLE |
| 127 | backlight_set(0); | 85 | backlight_level(0); |
| 128 | #endif | 86 | #endif |
| 129 | break; | 87 | break; |
| 130 | //case DOUBLE_HOLD: register_code(KC_NO); break; //register this keycode when button is tapped and then held | 88 | //case DOUBLE_HOLD: register_code(KC_NO); break; //register this keycode when button is tapped and then held |
| 131 | case DOUBLE_HOLD: | 89 | case DOUBLE_HOLD: |
| 132 | reset_keyboard(); | 90 | reset_keyboard(); |
| 133 | break; //register this keycode when button is tapped and then held | 91 | break; //register this keycode when button is tapped and then held |
| 134 | case DOUBLE_SINGLE_TAP: register_code(KC_NO); unregister_code(KC_NO); register_code(KC_NO); | 92 | case TRIPLE_TAP: |
| 93 | SEND_STRING("wanleg@github.com"); | ||
| 94 | break; | ||
| 95 | case TRIPLE_HOLD: | ||
| 96 | set_single_persistent_default_layer(1); | ||
| 97 | #ifdef AUDIO_ENABLE | ||
| 98 | stop_all_notes(); | ||
| 99 | PLAY_SONG(lyrup_song); | ||
| 100 | #endif | ||
| 101 | break; | ||
| 135 | } | 102 | } |
| 136 | } | 103 | } |
| 137 | 104 | ||
| 138 | void CAD_reset (qk_tap_dance_state_t *state, void *user_data) { | 105 | void CAD_reset (qk_tap_dance_state_t *state, void *user_data) { |
| 139 | switch (CADtap_state.state) { | 106 | switch (CADtap_state.state) { |
| 140 | case SINGLE_TAP: | 107 | //nothing to do |
| 141 | //unregister_code(KC_SPC); | ||
| 142 | SEND_STRING(SS_LGUI("l")); | ||
| 143 | #ifdef BACKLIGHT_ENABLE | ||
| 144 | backlight_set(3); | ||
| 145 | #endif | ||
| 146 | break; | ||
| 147 | case SINGLE_HOLD: | ||
| 148 | register_code(KC_NO); //(un)register this keycode when button is held and then released | ||
| 149 | //SEND_STRING(SS_LCTRL("v")); | ||
| 150 | break; | ||
| 151 | case DOUBLE_TAP: | ||
| 152 | //register_code(KC_ENT); | ||
| 153 | SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_DELETE)))); | ||
| 154 | #ifdef BACKLIGHT_ENABLE | ||
| 155 | backlight_set(0); | ||
| 156 | #endif | ||
| 157 | break; | ||
| 158 | case DOUBLE_HOLD: register_code(KC_NO); //(un)register this keycode when button is tapped and then held, and then released | ||
| 159 | case DOUBLE_SINGLE_TAP: unregister_code(KC_NO); | ||
| 160 | } | 108 | } |
| 161 | CADtap_state.state = 0; | 109 | CADtap_state.state = 0; |
| 162 | } | 110 | } |
| 163 | 111 | ||
| 164 | //instantiate 'tap' for the 'RST' tap dance. | 112 | //instantiate 'tap' for the 'RST' tap dance. |
| 165 | static tap RSTtap_state = { | 113 | static tap RSTtap_state = { |
| 166 | .is_press_action = true, | 114 | .is_press_action = true, |
| @@ -173,21 +121,18 @@ void RST_finished (qk_tap_dance_state_t *state, void *user_data) { | |||
| 173 | case SINGLE_TAP: register_code(KC_LCTL); break; | 121 | case SINGLE_TAP: register_code(KC_LCTL); break; |
| 174 | case SINGLE_HOLD: register_code(KC_LCTL); break; | 122 | case SINGLE_HOLD: register_code(KC_LCTL); break; |
| 175 | case DOUBLE_TAP: reset_keyboard(); break; | 123 | case DOUBLE_TAP: reset_keyboard(); break; |
| 176 | case DOUBLE_HOLD: register_code(KC_NO); break; | 124 | case DOUBLE_SINGLE_TAP: register_code(KC_LCTL); unregister_code(KC_LCTL); register_code(KC_LCTL); break; |
| 177 | case DOUBLE_SINGLE_TAP: register_code(KC_LCTL); unregister_code(KC_LCTL); register_code(KC_LCTL); | ||
| 178 | } | 125 | } |
| 179 | } | 126 | } |
| 180 | 127 | ||
| 181 | void RST_reset (qk_tap_dance_state_t *state, void *user_data) { | 128 | void RST_reset (qk_tap_dance_state_t *state, void *user_data) { |
| 182 | switch (RSTtap_state.state) { | 129 | switch (RSTtap_state.state) { |
| 183 | case SINGLE_TAP: unregister_code(KC_LCTL); break; | 130 | case SINGLE_TAP: unregister_code(KC_LCTL); break; |
| 184 | case SINGLE_HOLD: unregister_code(KC_LCTL); break; | 131 | case SINGLE_HOLD: unregister_code(KC_LCTL); break; |
| 185 | case DOUBLE_TAP: unregister_code(KC_NO); break; | 132 | case DOUBLE_SINGLE_TAP: unregister_code(KC_LCTL); break; |
| 186 | case DOUBLE_HOLD: unregister_code(KC_NO); | ||
| 187 | case DOUBLE_SINGLE_TAP: unregister_code(KC_LCTL); | ||
| 188 | } | 133 | } |
| 189 | RSTtap_state.state = 0; | 134 | RSTtap_state.state = 0; |
| 190 | } | 135 | } |
| 191 | 136 | ||
| 192 | //instantiate 'tap' for the 'LYR' tap dance. | 137 | //instantiate 'tap' for the 'LYR' tap dance. |
| 193 | static tap LYRtap_state = { | 138 | static tap LYRtap_state = { |
| @@ -199,23 +144,106 @@ void LYR_finished (qk_tap_dance_state_t *state, void *user_data) { | |||
| 199 | LYRtap_state.state = cur_dance(state); | 144 | LYRtap_state.state = cur_dance(state); |
| 200 | switch (LYRtap_state.state) { | 145 | switch (LYRtap_state.state) { |
| 201 | case SINGLE_TAP: register_code(KC_PSLS); break; | 146 | case SINGLE_TAP: register_code(KC_PSLS); break; |
| 202 | case SINGLE_HOLD: register_code(KC_NO); break; | ||
| 203 | case DOUBLE_TAP: set_single_persistent_default_layer(_GK); break; | 147 | case DOUBLE_TAP: set_single_persistent_default_layer(_GK); break; |
| 204 | case DOUBLE_HOLD: register_code(KC_NO); break; | ||
| 205 | case DOUBLE_SINGLE_TAP: register_code(KC_PSLS); unregister_code(KC_PSLS); register_code(KC_PSLS); | 148 | case DOUBLE_SINGLE_TAP: register_code(KC_PSLS); unregister_code(KC_PSLS); register_code(KC_PSLS); |
| 206 | } | 149 | } |
| 207 | } | 150 | } |
| 208 | 151 | ||
| 209 | void LYR_reset (qk_tap_dance_state_t *state, void *user_data) { | 152 | void LYR_reset (qk_tap_dance_state_t *state, void *user_data) { |
| 210 | switch (LYRtap_state.state) { | 153 | switch (LYRtap_state.state) { |
| 211 | case SINGLE_TAP: unregister_code(KC_PSLS); break; | 154 | case SINGLE_TAP: unregister_code(KC_PSLS); break; |
| 212 | case SINGLE_HOLD: unregister_code(KC_NO); break; | ||
| 213 | case DOUBLE_TAP: set_single_persistent_default_layer(_GK); break; | 155 | case DOUBLE_TAP: set_single_persistent_default_layer(_GK); break; |
| 214 | case DOUBLE_HOLD: unregister_code(KC_NO); | ||
| 215 | case DOUBLE_SINGLE_TAP: unregister_code(KC_PSLS); | 156 | case DOUBLE_SINGLE_TAP: unregister_code(KC_PSLS); |
| 216 | } | 157 | } |
| 217 | LYRtap_state.state = 0; | 158 | LYRtap_state.state = 0; |
| 218 | } | 159 | } |
| 160 | |||
| 161 | //instantiate 'tap' for the 'LYR75' tap dance. | ||
| 162 | static tap LYR75tap_state = { | ||
| 163 | .is_press_action = true, | ||
| 164 | .state = 0 | ||
| 165 | }; | ||
| 166 | |||
| 167 | void LYR75_finished (qk_tap_dance_state_t *state, void *user_data) { | ||
| 168 | LYR75tap_state.state = cur_dance(state); | ||
| 169 | switch (LYR75tap_state.state) { | ||
| 170 | case SINGLE_TAP: register_code(KC_PSLS); break; | ||
| 171 | case DOUBLE_TAP: set_single_persistent_default_layer(GK75); break; | ||
| 172 | case DOUBLE_SINGLE_TAP: register_code(KC_PSLS); unregister_code(KC_PSLS); register_code(KC_PSLS); | ||
| 173 | } | ||
| 174 | } | ||
| 175 | |||
| 176 | void LYR75_reset (qk_tap_dance_state_t *state, void *user_data) { | ||
| 177 | switch (LYR75tap_state.state) { | ||
| 178 | case SINGLE_TAP: unregister_code(KC_PSLS); break; | ||
| 179 | case DOUBLE_TAP: set_single_persistent_default_layer(GK75); break; | ||
| 180 | case DOUBLE_SINGLE_TAP: unregister_code(KC_PSLS); | ||
| 181 | } | ||
| 182 | LYR75tap_state.state = 0; | ||
| 183 | } | ||
| 184 | |||
| 185 | //instantiate 'tap' for the 'LYR50' tap dance. | ||
| 186 | static tap LYR50tap_state = { | ||
| 187 | .is_press_action = true, | ||
| 188 | .state = 0 | ||
| 189 | }; | ||
| 190 | |||
| 191 | void LYR50_finished (qk_tap_dance_state_t *state, void *user_data) { | ||
| 192 | LYR50tap_state.state = cur_dance(state); | ||
| 193 | switch (LYR75tap_state.state) { | ||
| 194 | case SINGLE_TAP: register_code(KC_PSLS); break; | ||
| 195 | case DOUBLE_TAP: set_single_persistent_default_layer(GK50); break; | ||
| 196 | case DOUBLE_SINGLE_TAP: register_code(KC_PSLS); unregister_code(KC_PSLS); register_code(KC_PSLS); | ||
| 197 | } | ||
| 198 | } | ||
| 199 | |||
| 200 | void LYR50_reset (qk_tap_dance_state_t *state, void *user_data) { | ||
| 201 | switch (LYR50tap_state.state) { | ||
| 202 | case SINGLE_TAP: unregister_code(KC_PSLS); break; | ||
| 203 | case DOUBLE_TAP: set_single_persistent_default_layer(GK50); break; | ||
| 204 | case DOUBLE_SINGLE_TAP: unregister_code(KC_PSLS); | ||
| 205 | } | ||
| 206 | LYR50tap_state.state = 0; | ||
| 207 | } | ||
| 208 | |||
| 209 | //instantiate 'tap' for the 'BSW' tap dance. | ||
| 210 | static tap BSWtap_state = { | ||
| 211 | .is_press_action = true, | ||
| 212 | .state = 0 | ||
| 213 | }; | ||
| 214 | |||
| 215 | void BSW_finished (qk_tap_dance_state_t *state, void *user_data) { | ||
| 216 | BSWtap_state.state = cur_dance(state); | ||
| 217 | switch (BSWtap_state.state) { | ||
| 218 | case SINGLE_TAP: register_code(KC_ENTER); break; | ||
| 219 | case SINGLE_HOLD: | ||
| 220 | set_single_persistent_default_layer(0); | ||
| 221 | #ifdef AUDIO_ENABLE | ||
| 222 | stop_all_notes(); | ||
| 223 | PLAY_SONG(lyrdown_song); | ||
| 224 | #endif | ||
| 225 | break; | ||
| 226 | case DOUBLE_TAP: | ||
| 227 | register_code(KC_LCTRL); | ||
| 228 | register_code(KC_C); | ||
| 229 | break; | ||
| 230 | case DOUBLE_HOLD: | ||
| 231 | reset_keyboard(); | ||
| 232 | break; //register this keycode when button is tapped and then held | ||
| 233 | } | ||
| 234 | } | ||
| 235 | |||
| 236 | void BSW_reset (qk_tap_dance_state_t *state, void *user_data) { | ||
| 237 | switch (BSWtap_state.state) { | ||
| 238 | case SINGLE_TAP: unregister_code(KC_ENTER); break; | ||
| 239 | case DOUBLE_TAP: | ||
| 240 | unregister_code(KC_LCTRL); | ||
| 241 | unregister_code(KC_C); | ||
| 242 | break; | ||
| 243 | } | ||
| 244 | BSWtap_state.state = 0; | ||
| 245 | } | ||
| 246 | |||
| 219 | ///// QUAD FUNCTION TAP DANCE PERSONALIZATION SECTION END ///// | 247 | ///// QUAD FUNCTION TAP DANCE PERSONALIZATION SECTION END ///// |
| 220 | 248 | ||
| 221 | //Tap Dance Definitions | 249 | //Tap Dance Definitions |
| @@ -224,12 +252,12 @@ qk_tap_dance_action_t tap_dance_actions[] = { | |||
| 224 | [TD_SFT_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS) | 252 | [TD_SFT_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS) |
| 225 | // Other declarations would go here, separated by commas, if you have them | 253 | // Other declarations would go here, separated by commas, if you have them |
| 226 | ,[TD_Q_ESC] = ACTION_TAP_DANCE_DOUBLE(KC_Q, KC_ESC) | 254 | ,[TD_Q_ESC] = ACTION_TAP_DANCE_DOUBLE(KC_Q, KC_ESC) |
| 227 | ,[ENT_TAP_DANCE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ENT_finished, ENT_reset) | ||
| 228 | ,[DEL_TAP_DANCE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, DEL_finished, DEL_reset) | ||
| 229 | ,[RST_TAP_DANCE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, RST_finished, RST_reset) | 255 | ,[RST_TAP_DANCE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, RST_finished, RST_reset) |
| 230 | ,[CAD_TD] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, CAD_finished, CAD_reset) | 256 | ,[CAD_TD] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, CAD_finished, CAD_reset) |
| 231 | ,[LYR_TAP_DANCE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, LYR_finished, LYR_reset) | 257 | ,[LYR_TAP_DANCE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, LYR_finished, LYR_reset) |
| 232 | 258 | ,[LYR75_TAP_DANCE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, LYR75_finished, LYR75_reset) | |
| 259 | ,[LYR50_TAP_DANCE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, LYR50_finished, LYR50_reset) | ||
| 260 | ,[BSW_TAP_DANCE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, BSW_finished, BSW_reset) | ||
| 233 | }; | 261 | }; |
| 234 | 262 | ||
| 235 | //In Layer declaration, add tap dance item in place of a key code | 263 | //In Layer declaration, add tap dance item in place of a key code |
diff --git a/users/wanleg/wanleg.c b/users/wanleg/wanleg.c index f22c34ba3..4e60c422f 100644 --- a/users/wanleg/wanleg.c +++ b/users/wanleg/wanleg.c | |||
| @@ -47,6 +47,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 47 | } | 47 | } |
| 48 | return false; | 48 | return false; |
| 49 | break; | 49 | break; |
| 50 | case GHERKIN50: | ||
| 51 | if (record->event.pressed) { | ||
| 52 | set_single_persistent_default_layer(GK50); | ||
| 53 | } | ||
| 54 | return false; | ||
| 55 | break; | ||
| 50 | case SUBTER: | 56 | case SUBTER: |
| 51 | if (record->event.pressed) { | 57 | if (record->event.pressed) { |
| 52 | layer_on(SUB); | 58 | layer_on(SUB); |
diff --git a/users/wanleg/wanleg.h b/users/wanleg/wanleg.h index 65028751a..9e0cf3ee5 100644 --- a/users/wanleg/wanleg.h +++ b/users/wanleg/wanleg.h | |||
| @@ -27,10 +27,12 @@ enum userspace_layers { | |||
| 27 | ETC75, | 27 | ETC75, |
| 28 | FN75, | 28 | FN75, |
| 29 | PAD, | 29 | PAD, |
| 30 | GK50, | ||
| 30 | }; | 31 | }; |
| 31 | #elif KEYBOARD_xd75 | 32 | #elif KEYBOARD_xd75 |
| 32 | enum userspace_layers { | 33 | enum userspace_layers { |
| 33 | GK75 = 0, | 34 | GK75 = 0, |
| 35 | PAD, | ||
| 34 | QW75, | 36 | QW75, |
| 35 | SUB75, | 37 | SUB75, |
| 36 | SUP75, | 38 | SUP75, |
| @@ -50,7 +52,32 @@ enum userspace_layers { | |||
| 50 | gNUM, | 52 | gNUM, |
| 51 | gDIR, | 53 | gDIR, |
| 52 | gETC, | 54 | gETC, |
| 55 | GK50, | ||
| 56 | }; | ||
| 57 | #elif KEYBOARD_5x5 | ||
| 58 | enum userspace_layers { | ||
| 59 | GK50 = 0, | ||
| 60 | gNUM, | ||
| 61 | gDIR, | ||
| 62 | gETC, | ||
| 63 | GK75, | ||
| 64 | QW75, | ||
| 65 | SUB75, | ||
| 66 | SUP75, | ||
| 67 | NUM75, | ||
| 68 | DIR75, | ||
| 69 | ETC75, | ||
| 70 | FN75, | ||
| 53 | PAD, | 71 | PAD, |
| 72 | gGK, | ||
| 73 | _GK, | ||
| 74 | _QW, | ||
| 75 | ONE, | ||
| 76 | SUB, | ||
| 77 | SUP, | ||
| 78 | NUM, | ||
| 79 | DIR, | ||
| 80 | ETC, | ||
| 54 | }; | 81 | }; |
| 55 | #else | 82 | #else |
| 56 | enum userspace_layers { | 83 | enum userspace_layers { |
| @@ -75,6 +102,7 @@ enum userspace_layers { | |||
| 75 | DIR75, | 102 | DIR75, |
| 76 | ETC75, | 103 | ETC75, |
| 77 | FN75, | 104 | FN75, |
| 105 | GK50, | ||
| 78 | }; | 106 | }; |
| 79 | #endif | 107 | #endif |
| 80 | 108 | ||
| @@ -100,6 +128,7 @@ enum userspace_custom_keycodes { | |||
| 100 | ETCETERA75, | 128 | ETCETERA75, |
| 101 | FUNCTION75, | 129 | FUNCTION75, |
| 102 | NUMPAD, | 130 | NUMPAD, |
| 131 | GHERKIN50, | ||
| 103 | 132 | ||
| 104 | }; | 133 | }; |
| 105 | 134 | ||
| @@ -108,11 +137,12 @@ enum userspace_custom_keycodes { | |||
| 108 | enum { | 137 | enum { |
| 109 | TD_SFT_CAPS = 0 | 138 | TD_SFT_CAPS = 0 |
| 110 | ,TD_Q_ESC | 139 | ,TD_Q_ESC |
| 111 | ,ENT_TAP_DANCE | ||
| 112 | ,DEL_TAP_DANCE | ||
| 113 | ,CAD_TD | 140 | ,CAD_TD |
| 114 | ,RST_TAP_DANCE | 141 | ,RST_TAP_DANCE |
| 115 | ,LYR_TAP_DANCE | 142 | ,LYR_TAP_DANCE |
| 143 | ,LYR50_TAP_DANCE | ||
| 144 | ,LYR75_TAP_DANCE | ||
| 145 | ,BSW_TAP_DANCE | ||
| 116 | }; | 146 | }; |
| 117 | #endif | 147 | #endif |
| 118 | 148 | ||
| @@ -130,6 +160,7 @@ enum { | |||
| 130 | #define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__) | 160 | #define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__) |
| 131 | #define LAYOUT_ortho_5x15_wrapper(...) LAYOUT_ortho_5x15(__VA_ARGS__) | 161 | #define LAYOUT_ortho_5x15_wrapper(...) LAYOUT_ortho_5x15(__VA_ARGS__) |
| 132 | #define LAYOUT_ortho_4x4_wrapper(...) LAYOUT_ortho_4x4(__VA_ARGS__) | 162 | #define LAYOUT_ortho_4x4_wrapper(...) LAYOUT_ortho_4x4(__VA_ARGS__) |
| 163 | #define LAYOUT_ortho_5x5_wrapper(...) LAYOUT_ortho_5x5(__VA_ARGS__) | ||
| 133 | 164 | ||
| 134 | // Blocks for each of the major keyboard layouts | 165 | // Blocks for each of the major keyboard layouts |
| 135 | // Organized so we can quickly adapt and modify all of them | 166 | // Organized so we can quickly adapt and modify all of them |
| @@ -189,12 +220,12 @@ enum { | |||
| 189 | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | 220 | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |
| 190 | * | mLeft | mDown | mRight | | SHIFT | mBtn3 | mBtn1 | mBtn2 | ; | ' | | 221 | * | mLeft | mDown | mRight | | SHIFT | mBtn3 | mBtn1 | mBtn2 | ; | ' | |
| 191 | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | 222 | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |
| 192 | * | Sft//Cp| | | | | C-A-D | mScrL | mScrR | ALT | DEL | | 223 | * | Sft//Cp| CAPS | | | | C-A-D | mScrL | mScrR | ALT | DEL | |
| 193 | * '-----------------------------------------------------------------------------------------' | 224 | * '-----------------------------------------------------------------------------------------' |
| 194 | */ | 225 | */ |
| 195 | #define _______________Gherkin_ETC_0_______________ KC_GRV, KC_MS_U, _______,_______, RESET, KC_RSFT, KC_WH_U, KC_WH_D, _______, KC_BSLS | 226 | #define _______________Gherkin_ETC_0_______________ KC_GRV, KC_MS_U, _______,_______, RESET, KC_RSFT, KC_WH_U, KC_WH_D, _______, KC_BSLS |
| 196 | #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 | 227 | #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 |
| 197 | #define _______________Gherkin_ETC_2_______________ TD(TD_SFT_CAPS),_______, _______,_______, _______, LALT(LCTL(KC_DEL)), KC_WH_L, KC_WH_R, KC_LALT, KC_DEL | 228 | #define _______________Gherkin_ETC_2_______________ TD(TD_SFT_CAPS),KC_CAPS, _______,_______, _______, LALT(LCTL(KC_DEL)), KC_WH_L, KC_WH_R, KC_LALT, KC_DEL |
| 198 | 229 | ||
| 199 | /* Gherkin-Like | 230 | /* Gherkin-Like |
| 200 | * .-----------------------------------------------------------------------------------------------------------. | 231 | * .-----------------------------------------------------------------------------------------------------------. |
