diff --git a/keyboards/hazel/bad_wings/keymaps/default/config.h b/keyboards/hazel/bad_wings/keymaps/default/config.h index bd395ec9e5..c572b4b011 100644 --- a/keyboards/hazel/bad_wings/keymaps/default/config.h +++ b/keyboards/hazel/bad_wings/keymaps/default/config.h @@ -12,5 +12,5 @@ #define ONESHOT_TIMEOUT 500 #define DOUBLE_TAP_SHIFT_TURNS_ON_CAPS_WORD #define CIRQUE_PINNACLE_TAP_ENABLE -#define CIRQUE_PINNACLE_POSITION_MODE CIRQUE_PINNACLE_ABSOLUTE_MODE -#define CIRQUE_DEVICE_GESTURES_SCROLL_ENABLE \ No newline at end of file +#define CIRQUE_PINNACLE_POSITION_MODE CIRQUE_PINNACLE_ABSOLUTE_MODE +#define POINTING_DEVICE_GESTURES_SCROLL_ENABLE \ No newline at end of file diff --git a/keyboards/hazel/bad_wings/keymaps/default/keymap.c b/keyboards/hazel/bad_wings/keymaps/default/keymap.c deleted file mode 100644 index e9adc7cc2e..0000000000 --- a/keyboards/hazel/bad_wings/keymaps/default/keymap.c +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2023 Jason Hazel (@jasonhazel) -// SPDX-License-Identifier: GPL-3.0-or-later - -#include QMK_KEYBOARD_H - -layer_state_t layer_state_set_user(layer_state_t state) { - return update_tri_layer_state(state, 1, 2, 3); -} - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_split_3x5_3( - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \ - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, \ - KC_Z, LGUI_T(KC_X), LALT_T(KC_C), KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \ - KC_LCTL, OSL(1), OSM(MOD_LSFT), KC_SPC, LT(2, KC_BSPC), KC_ENT - ), - [1] = LAYOUT_split_3x5_3( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_RBRC, KC_RCBR, KC_RPRN, KC_RABK, KC_NO, \ - KC_GRV, KC_TILD, KC_UNDS, KC_EQL, KC_NO, KC_LBRC, KC_LCBR, KC_LPRN, KC_LABK, KC_BACKSLASH, \ - KC_NO, KC_NO, KC_PLUS, KC_MINS, KC_NO, KC_NO, KC_NO, KC_COLN, KC_DOT, KC_SCLN, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - [2] = LAYOUT_split_3x5_3( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_PIPE, KC_NO, \ - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \ - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DOT, KC_NO, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ), - [3] = LAYOUT_split_3x5_3( - KC_ESC, KC_F1, KC_F4, KC_F7, KC_F10, KC_NO, KC_HOME, KC_UP, KC_END, KC_BSPC, \ - KC_TAB, KC_F2, KC_F5, KC_F8, KC_F11, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_ENT, \ - KC_NO, KC_F3, KC_F6, KC_F9, KC_F12, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_DEL, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS - ) -}; \ No newline at end of file diff --git a/keyboards/hazel/bad_wings/keymaps/default/keymap.json b/keyboards/hazel/bad_wings/keymaps/default/keymap.json new file mode 100644 index 0000000000..670506eaf6 --- /dev/null +++ b/keyboards/hazel/bad_wings/keymaps/default/keymap.json @@ -0,0 +1,163 @@ +{ + "version": 1, + "notes": "", + "documentation": "", + "keyboard": "hazel/bad_wings", + "keymap": "default", + "layout": "LAYOUT_split_3x5_3", + "layers": [ + [ + "KC_Q", + "KC_W", + "KC_E", + "KC_R", + "KC_T", + "KC_Y", + "KC_U", + "KC_I", + "KC_O", + "KC_P", + "KC_A", + "KC_S", + "KC_D", + "KC_F", + "KC_G", + "KC_H", + "KC_J", + "KC_K", + "KC_L", + "KC_QUOT", + "KC_Z", + "LGUI_T(KC_X)", + "LALT_T(KC_C)", + "KC_V", + "KC_B", + "KC_N", + "KC_M", + "KC_COMM", + "KC_DOT", + "KC_SLSH", + "KC_LCTL", + "OSL(1)", + "OSM(MOD_LSFT)", + "LT(3,KC_SPC)", + "LT(2,KC_BSPC)", + "KC_ENT" + ], + [ + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_RBRC", + "KC_RCBR", + "KC_RPRN", + "KC_GT", + "KC_NO", + "KC_GRV", + "KC_TILD", + "KC_UNDS", + "KC_EQL", + "KC_NO", + "KC_LBRC", + "KC_LCBR", + "KC_LPRN", + "KC_LT", + "KC_BSLS", + "KC_NO", + "KC_NO", + "KC_PLUS", + "KC_MINS", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_COLN", + "KC_DOT", + "KC_SCLN", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS" + ], + [ + "KC_EXLM", + "KC_AT", + "KC_HASH", + "KC_DLR", + "KC_PERC", + "KC_CIRC", + "KC_AMPR", + "KC_ASTR", + "KC_PIPE", + "KC_NO", + "KC_1", + "KC_2", + "KC_3", + "KC_4", + "KC_5", + "KC_6", + "KC_7", + "KC_8", + "KC_9", + "KC_0", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS" + ], + [ + "KC_ESC", + "KC_F1", + "KC_F4", + "KC_F7", + "KC_F10", + "KC_NO", + "KC_HOME", + "KC_UP", + "KC_END", + "KC_NO", + "KC_TAB", + "KC_F2", + "KC_F5", + "KC_F8", + "KC_F11", + "KC_NO", + "KC_LEFT", + "KC_DOWN", + "KC_RGHT", + "KC_NO", + "KC_NO", + "KC_F3", + "KC_F6", + "KC_F9", + "KC_F12", + "KC_NO", + "KC_MRWD", + "KC_MPLY", + "KC_MFFD", + "KC_DEL", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS" + ] + ], + "author": "Jason Hazel" +} \ No newline at end of file diff --git a/keyboards/hazel/bad_wings/keymaps/jasonhazel/config.h b/keyboards/hazel/bad_wings/keymaps/jasonhazel/config.h new file mode 100644 index 0000000000..035419eee6 --- /dev/null +++ b/keyboards/hazel/bad_wings/keymaps/jasonhazel/config.h @@ -0,0 +1,17 @@ +// Copyright 2023 Jason Hazel (@jasonhazel) +// SPDX-License-Identifier: GPL-3.0-or-later + +#pragma once + +#define TAPPING_TERM 200 +#define PERMISSIVE_HOLD +#define IGNORE_MOD_TAP_INTERRUPT +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM_PER_KEY +#define ONESHOT_TAP_TOGGLE 10 +#define ONESHOT_TIMEOUT 500 +#define DOUBLE_TAP_SHIFT_TURNS_ON_CAPS_WORD +#define CIRQUE_PINNACLE_TAP_ENABLE +#define CIRQUE_PINNACLE_POSITION_MODE CIRQUE_PINNACLE_ABSOLUTE_MODE + +#define POINTING_DEVICE_GESTURES_SCROLL_ENABLE \ No newline at end of file diff --git a/keyboards/hazel/bad_wings/keymaps/jasonhazel/keymap.c b/keyboards/hazel/bad_wings/keymaps/jasonhazel/keymap.c new file mode 100644 index 0000000000..0c3d9c70af --- /dev/null +++ b/keyboards/hazel/bad_wings/keymaps/jasonhazel/keymap.c @@ -0,0 +1,118 @@ +// Copyright 2023 Jason Hazel (@jasonhazel) +// SPDX-License-Identifier: GPL-3.0-or-later + +#include QMK_KEYBOARD_H + +enum layers { + _ALPHA, + _SYMBOL, + _NUMBER, + _NAVIGATION, + LAYER_LENGTH +}; + + +enum tapdances { + TD_QESC, + TD_SBKT, + TD_CBKT, + TD_PARN, + TD_LTGT, + TD_ATAB, + TAPDANCE_LENGTH +}; + +enum combos { + COMBO_NAVIGATION, + COMBO_LENGTH +}; + + +// begin tapdances +#define KC_QESC TD(TD_QESC) +#define KC_SBKT TD(TD_SBKT) +#define KC_CBKT TD(TD_CBKT) +#define KC_PARN TD(TD_PARN) +#define KC_LTGT TD(TD_LTGT) +#define KC_ATAB TD(TD_ATAB) + +#define KC_GUIX LGUI_T(KC_X) +#define KC_ALTC LALT_T(KC_C) + +// oneshots +#define KC_OSFT OSM(MOD_LSFT) +#define KC_OALT OSM(MOD_LALT) + +// layer changing +#define KC_OSYM OSL(_SYMBOL) +#define KC_ONUM LT(_NUMBER, KC_BSPC) + +uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { + switch(keycode) { + case KC_GUIX: + case KC_ALTC: + return TAPPING_TERM * 2; + default: + return TAPPING_TERM; + } +} + +// tapdances +tap_dance_action_t tap_dance_actions[] = { + [TD_QESC] = ACTION_TAP_DANCE_DOUBLE(KC_Q, KC_ESC), + [TD_SBKT] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC), + [TD_CBKT] = ACTION_TAP_DANCE_DOUBLE(KC_LCBR, KC_RCBR), + [TD_PARN] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, KC_RPRN), + [TD_LTGT] = ACTION_TAP_DANCE_DOUBLE(KC_LABK, KC_RABK), + [TD_ATAB] = ACTION_TAP_DANCE_DOUBLE(KC_A, KC_TAB) +}; +// end tapdances + +uint16_t COMBO_LEN = COMBO_LENGTH; + +const uint16_t PROGMEM combo_navigation[] = { KC_OSYM, KC_ONUM, COMBO_END }; +combo_t key_combos[] = { + [COMBO_NAVIGATION] = COMBO(combo_navigation, OSL(_NAVIGATION)), +}; + +uint16_t get_combo_term(uint16_t index, combo_t *combo) { + switch(index) { + case COMBO_NAVIGATION: // extending the combo term here helps reduce sticky layers some more. + return 250; + default: + return COMBO_TERM; + } +} +// end combos + + +// begin layers +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_ALPHA] = LAYOUT_split_3x5_3( + KC_QESC, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, + KC_Z, KC_GUIX, KC_ALTC, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_LCTL, KC_OSYM, KC_OSFT, KC_SPC, KC_ONUM, KC_ENT + ), + [_SYMBOL] = LAYOUT_split_3x5_3( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_PIPE, KC_NO, + KC_GRV, KC_TILD, KC_UNDS, KC_EQL, KC_NO, KC_SBKT, KC_CBKT, KC_PARN, KC_LTGT, KC_BACKSLASH, + KC_NO, KC_NO, KC_PLUS, KC_MINS, KC_NO, KC_NO, KC_NO, KC_COLN, KC_DOT, KC_SCLN, + KC_LCTL, KC_OSYM, KC_OSFT, KC_SPC, KC_ONUM, KC_ENT + ), + [_NUMBER] = LAYOUT_split_3x5_3( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DOT, KC_NO, + KC_LCTL, KC_OSYM, KC_OSFT, KC_SPC, KC_ONUM, KC_ENT + ), + [_NAVIGATION] = LAYOUT_split_3x5_3( + KC_NO, KC_F2, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_UP, KC_END, KC_BSPC, + KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_ENT, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_DEL, + KC_LCTL, KC_OSYM, KC_OSFT, KC_SPC, KC_ONUM, KC_ENT + ) +}; + + + diff --git a/keyboards/hazel/bad_wings/keymaps/jasonhazel/rules.mk b/keyboards/hazel/bad_wings/keymaps/jasonhazel/rules.mk new file mode 100644 index 0000000000..26d76a0df6 --- /dev/null +++ b/keyboards/hazel/bad_wings/keymaps/jasonhazel/rules.mk @@ -0,0 +1,4 @@ +MOUSEKEY_ENABLE = yes +EXTRAKEY_ENABLE = yes +COMBO_ENABLE = yes +TAP_DANCE_ENABLE = yes \ No newline at end of file