[Keymap] Add my personal userspace and update my keymaps (#5128)
* Add billypython userspace and dz60 keymap * Disable Bootmagic in dz60:billypython keymap * Update whitefox:billypython keymap with userspace changes Also remove numpad layerrgb7seg
parent
ce465c084b
commit
1e6797b4e7
@ -0,0 +1,3 @@ |
||||
#pragma once |
||||
|
||||
#define LAYER_FN |
@ -0,0 +1,46 @@ |
||||
#include QMK_KEYBOARD_H |
||||
#include "billypython.h" |
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
||||
/* Base layer
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ |
||||
* │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │ |
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ |
||||
* │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Bspc │ |
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ |
||||
* │FnCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ |
||||
* ├──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───┬───┤ |
||||
* │LShift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │RSC│ ↑ │Del│ |
||||
* ├────┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┼───┼───┼───┼───┤ |
||||
* │LCtl│LGui│LAlt│ Space │RAl│FnL│ ← │ ↓ │ → │ |
||||
* └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ |
||||
*/ |
||||
[L_BASE] = LAYOUT_directional( \
|
||||
KC_ESC, 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_BSLS, KC_GRV, \
|
||||
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_BSPC, \
|
||||
FN_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, RSF_RCT, KC_UP, KC_DEL, \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, XXXXXXX, KC_SPC, XXXXXXX, KC_RALT, FN_FNLK, KC_LEFT, KC_DOWN, KC_RGHT \
|
||||
), |
||||
|
||||
/* Function layer
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ |
||||
* │ │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ │PSc│ |
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ |
||||
* │ M4 │M2 │M↑ │M1 │M3 │M5 │ │PgU│ ↑ │PgD│Ply│Prv│Nxt│Clear│ |
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ |
||||
* │ │M← │M↓ │M→ │MW↑│ │Hom│ ← │ ↓ │ → │End│ │ │ |
||||
* ├──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───┬───┤ |
||||
* │ │MA0│MA2│MW←│MW→│ │ │ │Vo-│Vo+│Mut│App│PgU│Ins│ |
||||
* ├────┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┼───┼───┼───┼───┤ |
||||
* │ │ │ │ MW↓ │ │ │Hom│PgD│End│ |
||||
* └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ |
||||
*/ |
||||
[L_FN] = LAYOUT_directional( \
|
||||
_______, 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_PSCR, \
|
||||
KC_BTN4, KC_BTN2, KC_MS_U, KC_BTN1, KC_BTN3, KC_BTN5, _______, KC_PGUP, KC_UP, KC_PGDN, KC_MPLY, KC_MPRV, KC_MNXT, CLEAR, \
|
||||
_______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______, _______, \
|
||||
_______, KC_ACL0, KC_ACL2, KC_WH_L, KC_WH_R, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_APP, KC_PGUP, KC_INS, \
|
||||
_______, _______, _______, XXXXXXX, KC_WH_D, XXXXXXX, _______, _______, KC_HOME, KC_PGDN, KC_END \
|
||||
), |
||||
}; |
@ -0,0 +1,8 @@ |
||||
BACKLIGHT_ENABLE = no
|
||||
BOOTMAGIC_ENABLE = no
|
||||
COMMAND_ENABLE = yes
|
||||
CONSOLE_ENABLE = yes
|
||||
EXTRAKEY_ENABLE = yes
|
||||
MOUSEKEY_ENABLE = yes
|
||||
RGBLIGHT_ENABLE = no
|
||||
TAP_DANCE_ENABLE = yes
|
@ -1,17 +1,3 @@ |
||||
#pragma once |
||||
|
||||
#define FORCE_NKRO |
||||
|
||||
#define MAGIC_KEY_LAYER0_ALT1 BSLS |
||||
#define MAGIC_KEY_BOOTLOADER ESC |
||||
|
||||
#define MOUSEKEY_DELAY 50 |
||||
#define MOUSEKEY_INTERVAL 15 |
||||
#define MOUSEKEY_MAX_SPEED 4 |
||||
#define MOUSEKEY_TIME_TO_MAX 50 |
||||
#define MOUSEKEY_WHEEL_MAX_SPEED 1 |
||||
#define MOUSEKEY_WHEEL_TIME_TO_MAX 50 |
||||
|
||||
#define PERMISSIVE_HOLD |
||||
#define TAPPING_TERM 200 |
||||
#define TAPPING_TOGGLE 2 |
||||
#define LAYER_FN |
||||
|
@ -1,15 +1,6 @@ |
||||
AUDIO_ENABLE = no
|
||||
BACKLIGHT_ENABLE = no
|
||||
BLUETOOTH_ENABLE = no
|
||||
BOOTMAGIC_ENABLE = no
|
||||
COMMAND_ENABLE = yes
|
||||
CONSOLE_ENABLE = yes
|
||||
EXTRAKEY_ENABLE = yes
|
||||
MIDI_ENABLE = no
|
||||
MOUSEKEY_ENABLE = yes
|
||||
NKRO_ENABLE = yes
|
||||
RGBLIGHT_ENABLE = no
|
||||
SLEEP_LED_ENABLE = no
|
||||
TAP_DANCE_ENABLE = yes
|
||||
UNICODE_ENABLE = yes
|
||||
VISUALIZER_ENABLE = no
|
||||
|
@ -0,0 +1,32 @@ |
||||
#include "billypython.h" |
||||
|
||||
__attribute__((weak)) |
||||
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { |
||||
return true; |
||||
} |
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
||||
if (!process_record_keymap(keycode, record)) { |
||||
return false; |
||||
} |
||||
|
||||
switch (keycode) { |
||||
case CLEAR: |
||||
if (record->event.pressed) { |
||||
SEND_STRING(SS_LCTRL("a") SS_TAP(X_DELETE)); |
||||
} |
||||
return false; |
||||
|
||||
default: |
||||
return true; |
||||
} |
||||
} |
||||
|
||||
__attribute__((weak)) |
||||
uint32_t layer_state_set_keymap(uint32_t state) { |
||||
return state; |
||||
} |
||||
|
||||
uint32_t layer_state_set_user(uint32_t state) { |
||||
return layer_state_set_keymap(state); |
||||
} |
@ -0,0 +1,34 @@ |
||||
#pragma once |
||||
|
||||
#include "quantum.h" |
||||
|
||||
#ifdef TAP_DANCE_ENABLE |
||||
#include "tap_dance.h" |
||||
#endif |
||||
|
||||
#ifdef LAYER_FN |
||||
#define FN MO(L_FN) |
||||
#define FN_CAPS LT(L_FN, KC_CAPS) |
||||
#define FN_FNLK TT(L_FN) |
||||
#endif |
||||
|
||||
#define TOP LCTL(KC_HOME) |
||||
#define BOTTOM LCTL(KC_END) |
||||
|
||||
enum keycodes_user { |
||||
CLEAR = SAFE_RANGE, |
||||
|
||||
RANGE_KEYMAP, |
||||
}; |
||||
|
||||
enum layers_user { |
||||
L_BASE, |
||||
#ifdef LAYER_FN |
||||
L_FN, |
||||
#endif |
||||
|
||||
L_RANGE_KEYMAP, |
||||
}; |
||||
|
||||
bool process_record_keymap(uint16_t keycode, keyrecord_t *record); |
||||
uint32_t layer_state_set_keymap(uint32_t state); |
@ -0,0 +1,19 @@ |
||||
#pragma once |
||||
|
||||
#define FORCE_NKRO |
||||
|
||||
#define MAGIC_KEY_BOOTLOADER B |
||||
|
||||
#define MOUSEKEY_DELAY 50 |
||||
#define MOUSEKEY_INTERVAL 15 |
||||
#define MOUSEKEY_MAX_SPEED 4 |
||||
#define MOUSEKEY_TIME_TO_MAX 50 |
||||
#define MOUSEKEY_WHEEL_MAX_SPEED 1 |
||||
#define MOUSEKEY_WHEEL_TIME_TO_MAX 50 |
||||
|
||||
#define NO_ACTION_FUNCTION |
||||
#define NO_ACTION_MACRO |
||||
|
||||
#define PERMISSIVE_HOLD |
||||
#define TAPPING_TERM 200 |
||||
#define TAPPING_TOGGLE 2 |
@ -0,0 +1,6 @@ |
||||
SRC += billypython.c
|
||||
ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) |
||||
SRC += tap_dance.c
|
||||
endif |
||||
|
||||
EXTRAFLAGS += -flto
|
@ -0,0 +1,33 @@ |
||||
#include "tap_dance.h" |
||||
|
||||
#define ACTION_TAP_DANCE_DOUBLE_MODS(mod1, mod2) { \ |
||||
.fn = { td_double_mods_each, NULL, td_double_mods_reset }, \
|
||||
.user_data = &(qk_tap_dance_pair_t){ mod1, mod2 }, \
|
||||
} |
||||
|
||||
void td_double_mods_each(qk_tap_dance_state_t *state, void *user_data) { |
||||
qk_tap_dance_pair_t *mods = (qk_tap_dance_pair_t *)user_data; |
||||
// Single tap → mod1, double tap → mod2, triple tap etc. → mod1+mod2
|
||||
if (state->count == 1 || state->count == 3) { |
||||
register_code(mods->kc1); |
||||
} else if (state->count == 2) { |
||||
unregister_code(mods->kc1); |
||||
register_code(mods->kc2); |
||||
} |
||||
// Prevent tap dance from sending kc1 and kc2 as weak mods
|
||||
state->weak_mods &= ~(MOD_BIT(mods->kc1) | MOD_BIT(mods->kc2)); |
||||
} |
||||
|
||||
void td_double_mods_reset(qk_tap_dance_state_t *state, void *user_data) { |
||||
qk_tap_dance_pair_t *mods = (qk_tap_dance_pair_t *)user_data; |
||||
if (state->count == 1 || state->count >= 3) { |
||||
unregister_code(mods->kc1); |
||||
} |
||||
if (state->count >= 2) { |
||||
unregister_code(mods->kc2); |
||||
} |
||||
} |
||||
|
||||
qk_tap_dance_action_t tap_dance_actions[] = { |
||||
[TD_RSF_RCT] = ACTION_TAP_DANCE_DOUBLE_MODS(KC_RSFT, KC_RCTL), |
||||
}; |
@ -0,0 +1,9 @@ |
||||
#pragma once |
||||
|
||||
#include "quantum.h" |
||||
|
||||
#define RSF_RCT TD(TD_RSF_RCT) |
||||
|
||||
enum tap_dance { |
||||
TD_RSF_RCT, |
||||
}; |
Loading…
Reference in new issue