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

[Keyboard] [Keymap] Update G60BLE folder to allow firmware to use Bluetooth with QMK keymaps #21120

Merged
merged 13 commits into from
Jun 5, 2023
Merged
Prev Previous commit
Next Next commit
added my keymap
* compiles successfully, tap dances working over bluetooth
  • Loading branch information
will-hedges committed Jun 3, 2023
commit aeb58be26c1d3bae0a7c107acb2ffce02b099190
89 changes: 89 additions & 0 deletions keyboards/bioi/g60ble/keymaps/chemicalwill/g60ble_tap_dances.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
enum {
N9_F9,
N0_F10,
MINS_F11,
EQL_F12
};

typedef struct {
uint16_t tap;
uint16_t hold;
uint16_t held;
} tap_dance_tap_hold_t;

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
tap_dance_action_t *action;

switch (keycode) {
case TD(N9_F9):
action = &tap_dance_actions[TD_INDEX(keycode)];
if (!record->event.pressed && action->state.count && !action->state.finished) {
tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data;
tap_code16(tap_hold->tap);
}
break;

case TD(N0_F10):
action = &tap_dance_actions[TD_INDEX(keycode)];
if (!record->event.pressed && action->state.count && !action->state.finished) {
tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data;
tap_code16(tap_hold->tap);
}
break;

case TD(MINS_F11):
action = &tap_dance_actions[TD_INDEX(keycode)];
if (!record->event.pressed && action->state.count && !action->state.finished) {
tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data;
tap_code16(tap_hold->tap);
}
break;

case TD(EQL_F12):
action = &tap_dance_actions[TD_INDEX(keycode)];
if (!record->event.pressed && action->state.count && !action->state.finished) {
tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data;
tap_code16(tap_hold->tap);
}
break;
}
return true;
}

void tap_dance_tap_hold_finished(tap_dance_state_t *state, void *user_data) {
tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)user_data;

if (state->pressed) {
if (state->count == 1
#ifndef PERMISSIVE_HOLD
&& !state->interrupted
#endif
) {
register_code16(tap_hold->hold);
tap_hold->held = tap_hold->hold;
} else {
register_code16(tap_hold->tap);
tap_hold->held = tap_hold->tap;
}
}
}

void tap_dance_tap_hold_reset(tap_dance_state_t *state, void *user_data) {
tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)user_data;

if (tap_hold->held) {
unregister_code16(tap_hold->held);
tap_hold->held = 0;
}
}

#define ACTION_TAP_DANCE_TAP_HOLD(tap, hold) \
{ .fn = {NULL, tap_dance_tap_hold_finished, tap_dance_tap_hold_reset}, .user_data = (void *)&((tap_dance_tap_hold_t){tap, hold, 0}), }

tap_dance_action_t tap_dance_actions[] = {
[N9_F9] = ACTION_TAP_DANCE_TAP_HOLD(KC_9, KC_F9),
[N0_F10] = ACTION_TAP_DANCE_TAP_HOLD(KC_0, KC_F10),
[MINS_F11] = ACTION_TAP_DANCE_TAP_HOLD(KC_MINS, KC_F11),
[EQL_F12] = ACTION_TAP_DANCE_TAP_HOLD(KC_EQL, KC_F12)
};

37 changes: 37 additions & 0 deletions keyboards/bioi/g60ble/keymaps/chemicalwill/keymap.c
will-hedges marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#include QMK_KEYBOARD_H

#define _QWER 0
#define _WORK 1
#define _FN1 2
will-hedges marked this conversation as resolved.
Show resolved Hide resolved

#define FN1_CAPS LT(_FN1, KC_CAPS)

#include "g60ble_tap_dances.c"
will-hedges marked this conversation as resolved.
Show resolved Hide resolved

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

[_QWER] = LAYOUT_60_ansi(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
FN1_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, MO(_FN1), KC_RCTL
),

[_WORK] = LAYOUT_60_ansi(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, TD(N9_F9), TD(N0_F10), TD(MINS_F11), TD(EQL_F12), KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
FN1_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, MO(_FN1), KC_RCTL
),

[_FN1] = LAYOUT_60_ansi(
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
_______, _______, KC_PGUP, _______, QK_RBT, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______,
_______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
_______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, DF(_WORK), _______, DF(_QWER)
)

};
7 changes: 7 additions & 0 deletions keyboards/bioi/g60ble/keymaps/chemicalwill/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# features enabled by default that I want to turn off
BACKLIGHT_ENABLE = no
MOUSEKEY_ENABLE = no
RGBLIGHT_ENABLE = no

# features I want to add
TAP_DANCE_ENABLE = yes