Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Big switch config #3904

Merged
merged 6 commits into from
Sep 17, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions keyboards/bigswitch/bigswitch.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
45 changes: 45 additions & 0 deletions keyboards/bigswitch/keymaps/wanleg/config.h
Original file line number Diff line number Diff line change
@@ -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
27 changes: 27 additions & 0 deletions keyboards/bigswitch/keymaps/wanleg/keymap.c
Original file line number Diff line number Diff line change
@@ -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) {

}
7 changes: 7 additions & 0 deletions keyboards/bigswitch/keymaps/wanleg/rules.mk
Original file line number Diff line number Diff line change
@@ -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
59 changes: 59 additions & 0 deletions users/wanleg/tapdances.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
1 change: 1 addition & 0 deletions users/wanleg/wanleg.h
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ enum {
,TD_Q_ESC
,ENT_TAP_DANCE
,DEL_TAP_DANCE
,CAD_TD
};
#endif

Expand Down