Skip to content

Commit

Permalink
Keymap: Big switch config (#3904)
Browse files Browse the repository at this point in the history
* bigswitch keymap

* bigswitch keymap

* bigswitch keymap

* bigswitch keymap

* recommended edits made

* forgot to revert this change with the others
  • Loading branch information
wanleg authored and drashna committed Sep 17, 2018
1 parent 7434494 commit fe3bfd9
Show file tree
Hide file tree
Showing 6 changed files with 141 additions and 0 deletions.
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

0 comments on commit fe3bfd9

Please sign in to comment.