diff options
| -rw-r--r-- | keyboards/bigswitch/bigswitch.c | 2 | ||||
| -rw-r--r-- | keyboards/bigswitch/keymaps/wanleg/config.h | 45 | ||||
| -rw-r--r-- | keyboards/bigswitch/keymaps/wanleg/keymap.c | 27 | ||||
| -rw-r--r-- | keyboards/bigswitch/keymaps/wanleg/rules.mk | 7 | ||||
| -rw-r--r-- | users/wanleg/tapdances.c | 59 | ||||
| -rw-r--r-- | users/wanleg/wanleg.h | 1 | 
6 files changed, 141 insertions, 0 deletions
| diff --git a/keyboards/bigswitch/bigswitch.c b/keyboards/bigswitch/bigswitch.c index dfd9710e27..b924c7017c 100644 --- a/keyboards/bigswitch/bigswitch.c +++ b/keyboards/bigswitch/bigswitch.c @@ -19,10 +19,12 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  volatile uint8_t runonce = true;  static uint16_t my_timer; +__attribute__ ((weak))  void matrix_init_user(void) {    my_timer = timer_read();  } +__attribute__ ((weak))  void matrix_scan_user(void) {    if (runonce && timer_elapsed(my_timer) > 1000) {      runonce = false; diff --git a/keyboards/bigswitch/keymaps/wanleg/config.h b/keyboards/bigswitch/keymaps/wanleg/config.h new file mode 100644 index 0000000000..f1e1693457 --- /dev/null +++ b/keyboards/bigswitch/keymaps/wanleg/config.h @@ -0,0 +1,45 @@ +/* Copyright 2018 wanleg + * + * 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 + +// place overrides here +#undef MATRIX_ROW_PINS +#define MATRIX_ROW_PINS { B4 } +#undef MATRIX_COL_PINS +#define MATRIX_COL_PINS { B6 } +//#define UNUSED_PINS + +/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ +#undef DIODE_DIRECTION +#define DIODE_DIRECTION COL2ROW + +#define BACKLIGHT_PIN B5 +#define BACKLIGHT_BREATHING +#define BACKLIGHT_LEVELS 3 +#define BREATHING_PERIOD 5 + +/* for Tap Dance */ +#undef TAPPING_TERM +#define TAPPING_TERM 700 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +//#define DEBOUNCING_DELAY 5 +#undef DEBOUNCING_DELAY +#define DEBOUNCING_DELAY 2 + +// set flashing LED with QMK DFU +#define QMK_LED B0 diff --git a/keyboards/bigswitch/keymaps/wanleg/keymap.c b/keyboards/bigswitch/keymaps/wanleg/keymap.c new file mode 100644 index 0000000000..7f4150e581 --- /dev/null +++ b/keyboards/bigswitch/keymaps/wanleg/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2018 wanleg + * + * 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 "wanleg.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT( /* Base */ +TD(CAD_TD) \ +), +}; + +void led_set_user(uint8_t usb_led) { + +} diff --git a/keyboards/bigswitch/keymaps/wanleg/rules.mk b/keyboards/bigswitch/keymaps/wanleg/rules.mk new file mode 100644 index 0000000000..bc4a1873f8 --- /dev/null +++ b/keyboards/bigswitch/keymaps/wanleg/rules.mk @@ -0,0 +1,7 @@ +BACKLIGHT_ENABLE = yes       # Enable keyboard backlight functionality on B7 by default + +#If using a ProMicro and it has the QMK DFU bootloader instead of Caterina, +#run "make <keyboard>:<keymap> dfu=qmk" when compiling to ensure it is flagged properly after being flashed +ifeq ($(strip $(dfu)), qmk) +    BOOTLOADER = qmk-dfu +endif
\ No newline at end of file diff --git a/users/wanleg/tapdances.c b/users/wanleg/tapdances.c index 318810b1b2..6a98b896a5 100644 --- a/users/wanleg/tapdances.c +++ b/users/wanleg/tapdances.c @@ -94,6 +94,64 @@ 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. +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")); +		backlight_set(3); +		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")); +        _delay_ms(500); +        SEND_STRING("mspaint" SS_TAP(X_ENTER)); +        _delay_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)))); +		backlight_set(0); +		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 DOUBLE_SINGLE_TAP: register_code(KC_NO); unregister_code(KC_NO); register_code(KC_NO); +  } +} + +void CAD_reset (qk_tap_dance_state_t *state, void *user_data) { +  switch (CADtap_state.state) { +    case SINGLE_TAP:  +		//unregister_code(KC_SPC);  +		SEND_STRING(SS_LGUI("l")); +		backlight_set(3); +		break; +    case SINGLE_HOLD:  +		register_code(KC_NO); //(un)register this keycode when button is held and then released +		//SEND_STRING(SS_LCTRL("v")); +		break;  +    case DOUBLE_TAP:  +		//register_code(KC_ENT);  +		SEND_STRING(SS_LCTRL(SS_LALT(SS_TAP(X_DELETE)))); +		backlight_set(0); +		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; +}  ///// QUAD FUNCTION TAP DANCE PERSONALIZATION SECTION END /////  //Tap Dance Definitions @@ -104,6 +162,7 @@ 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) + ,[CAD_TD] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, CAD_finished, CAD_reset)  };  //In Layer declaration, add tap dance item in place of a key code diff --git a/users/wanleg/wanleg.h b/users/wanleg/wanleg.h index 5cec82e605..8b98ec7ddf 100644 --- a/users/wanleg/wanleg.h +++ b/users/wanleg/wanleg.h @@ -106,6 +106,7 @@ enum {    ,TD_Q_ESC    ,ENT_TAP_DANCE    ,DEL_TAP_DANCE +  ,CAD_TD  };  #endif | 
