Update Fri Dec 15 06:24:08 AM CST 2023
This commit is contained in:
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -1,3 +1,6 @@
|
|||||||
[submodule "qmk_firmware"]
|
[submodule "qmk_firmware"]
|
||||||
path = qmk_firmware
|
path = qmk_firmware
|
||||||
url = https://github.com/dgvigil/qmk_firmware.git
|
url = https://github.com/dgvigil/qmk_firmware.git
|
||||||
|
[submodule "kmk_firmware"]
|
||||||
|
path = kmk_firmware
|
||||||
|
url = git@github.com:KMKfw/kmk_firmware.git
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ enum {
|
|||||||
CUSTOM_KEYCODE_START = SAFE_RANGE,
|
CUSTOM_KEYCODE_START = SAFE_RANGE,
|
||||||
M_PASS1,
|
M_PASS1,
|
||||||
M_PASS2,
|
M_PASS2,
|
||||||
|
M_PASS3,
|
||||||
|
M_PASS4,
|
||||||
CUSTOM_KEYCODE_END
|
CUSTOM_KEYCODE_END
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
|
|
||||||
// _BASE
|
// _BASE
|
||||||
#define __________________BASE_L1____________________ Q_ESC, W_GRV, KC_E, KC_R, KC_T
|
#define __________________BASE_L1____________________ Q_ESC, KC_W, KC_E, KC_R, KC_T
|
||||||
#define __________________BASE_L2____________________ KC_A, KC_S, KC_D, KC_F, KC_G
|
#define __________________BASE_L2____________________ KC_A, KC_S, KC_D, KC_F, KC_G
|
||||||
#define __________________BASE_L3____________________ KC_Z, KC_X, KC_C, KC_V, KC_B
|
#define __________________BASE_L3____________________ KC_Z, KC_X, KC_C, KC_V, KC_B
|
||||||
|
|
||||||
@@ -32,6 +32,7 @@
|
|||||||
|
|
||||||
|
|
||||||
// _NAV
|
// _NAV
|
||||||
|
#define __________________NAV_L2____________________ _______, _______, _______, M_PASS3, M_PASS4
|
||||||
#define __________________NAV_L3____________________ _______, _______, _______, M_PASS2, M_PASS1
|
#define __________________NAV_L3____________________ _______, _______, _______, M_PASS2, M_PASS1
|
||||||
|
|
||||||
#define __________________NAV_R1____________________ _______, KC_PSTE, KC_COPY, KC_CUT, KC_UNDO
|
#define __________________NAV_R1____________________ _______, KC_PSTE, KC_COPY, KC_CUT, KC_UNDO
|
||||||
|
|||||||
@@ -2,61 +2,62 @@
|
|||||||
|
|
||||||
#include "tapdance.h"
|
#include "tapdance.h"
|
||||||
|
|
||||||
static td_tap_t tap_state = {.state = TD_NONE};
|
td_state_t cur_dance(tap_dance_state_t *state) {
|
||||||
|
|
||||||
__attribute__((weak)) td_state_t dance_state(tap_dance_state_t *state) {
|
|
||||||
if (state->count == 1) {
|
if (state->count == 1) {
|
||||||
if (state->interrupted || !state->pressed) return TD_SINGLE_TAP;
|
if (state->interrupted || !state->pressed) return TD_SINGLE_TAP;
|
||||||
// Key has not been interrupted, but the key is still held. Means you want to send a 'HOLD'.
|
// Key has not been interrupted, but the key is still held. Means you want to send a 'HOLD'.
|
||||||
else
|
else return TD_SINGLE_HOLD;
|
||||||
return TD_SINGLE_HOLD;
|
|
||||||
} else if (state->count == 2) {
|
} else if (state->count == 2) {
|
||||||
// TD_DOUBLE_SINGLE_TAP is to distinguish between typing "pepper", and actually wanting a double tap
|
// TD_DOUBLE_SINGLE_TAP is to distinguish between typing "pepper", and actually wanting a double tap
|
||||||
// action when hitting 'pp'. Suggested use case for this return value is when you want to send two
|
// action when hitting 'pp'. Suggested use case for this return value is when you want to send two
|
||||||
// keystrokes of the key, and not the 'double tap' action/macro.
|
// keystrokes of the key, and not the 'double tap' action/macro.
|
||||||
if (state->interrupted)
|
if (state->interrupted) return TD_DOUBLE_SINGLE_TAP;
|
||||||
return TD_DOUBLE_SINGLE_TAP;
|
else if (state->pressed) return TD_DOUBLE_HOLD;
|
||||||
else if (state->pressed)
|
else return TD_DOUBLE_TAP;
|
||||||
return TD_DOUBLE_HOLD;
|
|
||||||
else
|
|
||||||
return TD_DOUBLE_TAP;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Assumes no one is trying to type the same letter three times (at least not quickly).
|
// Assumes no one is trying to type the same letter three times (at least not quickly).
|
||||||
// If your tap dance key is 'KC_W', and you want to type "www." quickly - then you will need to add
|
// If your tap dance key is 'KC_W', and you want to type "www." quickly - then you will need to add
|
||||||
// an exception here to return a 'TD_TRIPLE_SINGLE_TAP', and define that enum just like 'TD_DOUBLE_SINGLE_TAP'
|
// an exception here to return a 'TD_TRIPLE_SINGLE_TAP', and define that enum just like 'TD_DOUBLE_SINGLE_TAP'
|
||||||
if (state->count == 3) {
|
if (state->count == 3) {
|
||||||
if (state->interrupted || !state->pressed)
|
if (state->interrupted || !state->pressed) return TD_TRIPLE_TAP;
|
||||||
return TD_TRIPLE_TAP;
|
else return TD_TRIPLE_HOLD;
|
||||||
else
|
} else return TD_UNKNOWN;
|
||||||
return TD_TRIPLE_HOLD;
|
|
||||||
} else
|
|
||||||
return TD_UNKNOWN;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool is_shifted(void) {
|
// Create an instance of 'td_tap_t' for the 'q' tap dance.
|
||||||
return get_mods() & MOD_MASK_SHIFT || get_oneshot_mods() & MOD_MASK_SHIFT ||
|
static td_tap_t qtap_state = {
|
||||||
get_oneshot_locked_mods() & MOD_MASK_SHIFT;
|
.is_press_action = true,
|
||||||
}
|
.state = TD_NONE
|
||||||
|
};
|
||||||
|
|
||||||
void td_open_parentesis(tap_dance_state_t *state, void *user_data) {
|
void q_finished(tap_dance_state_t *state, void *user_data) {
|
||||||
tap_state.state = dance_state(state);
|
qtap_state.state = cur_dance(state);
|
||||||
switch (tap_state.state) {
|
switch (qtap_state.state) {
|
||||||
case TD_SINGLE_TAP:
|
case TD_SINGLE_TAP: register_code(KC_Q); break;
|
||||||
tap_code16(KC_LPRN);
|
case TD_SINGLE_HOLD:
|
||||||
break;
|
register_code(KC_LSFT);
|
||||||
case TD_SINGLE_HOLD:
|
register_code(KC_Q);
|
||||||
tap_code16(KC_END);
|
|
||||||
tap_code16(KC_LPRN);
|
|
||||||
break;
|
|
||||||
case TD_DOUBLE_TAP:
|
|
||||||
SEND_STRING("var ");
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
break;
|
||||||
|
case TD_DOUBLE_TAP: register_code(KC_ESC); break;
|
||||||
|
case TD_DOUBLE_HOLD: register_code(KC_GRAVE); break;
|
||||||
|
default: break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void q_reset(tap_dance_state_t *state, void *user_data) {
|
||||||
|
switch (qtap_state.state) {
|
||||||
|
case TD_SINGLE_TAP: unregister_code(KC_Q); break;
|
||||||
|
case TD_SINGLE_HOLD:
|
||||||
|
unregister_code(KC_LSFT);
|
||||||
|
unregister_code(KC_Q);
|
||||||
|
break;
|
||||||
|
case TD_DOUBLE_TAP: unregister_code(KC_ESC); break;
|
||||||
|
case TD_DOUBLE_HOLD: unregister_code(KC_GRAVE); break;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
qtap_state.state = TD_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// clang-format off
|
// clang-format off
|
||||||
@@ -64,9 +65,7 @@ void td_open_parentesis(tap_dance_state_t *state, void *user_data) {
|
|||||||
// Tap dance declarations
|
// Tap dance declarations
|
||||||
|
|
||||||
tap_dance_action_t tap_dance_actions[] = {
|
tap_dance_action_t tap_dance_actions[] = {
|
||||||
[TD_Q_ESC] = ACTION_TAP_DANCE_DOUBLE(KC_Q, KC_ESC),
|
[TD_Q_ESC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, q_finished, q_reset),
|
||||||
[TD_W_GRV] = ACTION_TAP_DANCE_DOUBLE(KC_W, KC_GRAVE),
|
|
||||||
[BRT_OPA] = ACTION_TAP_DANCE_FN(td_open_parentesis),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// clang-format on
|
// clang-format on
|
||||||
@@ -17,8 +17,8 @@ typedef enum {
|
|||||||
} td_state_t;
|
} td_state_t;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
bool is_press_action;
|
||||||
td_state_t state;
|
td_state_t state;
|
||||||
bool recording;
|
|
||||||
} td_tap_t;
|
} td_tap_t;
|
||||||
|
|
||||||
td_state_t dance_state(tap_dance_state_t *state);
|
td_state_t cur_dance(tap_dance_state_t *state);
|
||||||
@@ -52,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
// ┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐
|
// ┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐
|
||||||
__________________EMPTY_____________________, __________________NAV_R1____________________,
|
__________________EMPTY_____________________, __________________NAV_R1____________________,
|
||||||
// ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤
|
// ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤
|
||||||
__________________EMPTY_____________________, __________________NAV_R2____________________,
|
__________________NAV_L2____________________, __________________NAV_R2____________________,
|
||||||
// ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤
|
// ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤
|
||||||
__________________NAV_L3____________________, __________________NAV_R3____________________,
|
__________________NAV_L3____________________, __________________NAV_R3____________________,
|
||||||
// └────────┴────────┴────────┴────────┼────────┤ ├────────┼────────┴────────┴────────┴────────┘
|
// └────────┴────────┴────────┴────────┼────────┤ ├────────┼────────┴────────┴────────┴────────┘
|
||||||
@@ -295,12 +295,22 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||||||
switch (keycode) {
|
switch (keycode) {
|
||||||
case M_PASS1:
|
case M_PASS1:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
SEND_STRING("T3lg3Ranch!2023");
|
SEND_STRING("P0plarLake!2023");
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
case M_PASS2:
|
case M_PASS2:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
SEND_STRING("C0pperfield!2023");
|
SEND_STRING("Thel0ve0fchrist!");
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case M_PASS3:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
SEND_STRING("6754");
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case M_PASS4:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
SEND_STRING("10242677");
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,9 +54,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
_______, _______, _______, _______, _______, KC_LPAD, KC_PSCR, _______, _______, _______, _______, RGB_TOG,
|
_______, _______, _______, _______, _______, KC_LPAD, KC_PSCR, _______, _______, _______, _______, RGB_TOG,
|
||||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
_______, _________________BOOT_L1____________________, __________________NAV_R1____________________, _______,
|
_______, __________________EMPTY_____________________, __________________NAV_R1____________________, _______,
|
||||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
_______, __________________EMPTY_____________________, __________________NAV_R2____________________, _______,
|
_______, __________________NAV_L2____________________, __________________NAV_R2____________________, _______,
|
||||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
_______, __________________NAV_L3____________________, _______, _______, __________________NAV_R3____________________, _______,
|
_______, __________________NAV_L3____________________, _______, _______, __________________NAV_R3____________________, _______,
|
||||||
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
||||||
@@ -130,7 +130,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
_______, __________________EMPTY_____________________, _______, _______, __________________MOU_R3____________________, _______,
|
_______, __________________EMPTY_____________________, _______, _______, __________________MOU_R3____________________, _______,
|
||||||
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
|
||||||
___________THUMB_3__BLANK__, ___________THUMB_3__BLANK__
|
___________THUMB_3__BLANK__, ___________THUMB_3__BLANK__
|
||||||
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
// └────────┴────────┴────────┘ └────────┴────────┴────────┘
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
@@ -140,12 +140,22 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||||||
switch (keycode) {
|
switch (keycode) {
|
||||||
case M_PASS1:
|
case M_PASS1:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
SEND_STRING("T3lg3Ranch!2023");
|
SEND_STRING("P0plarLake!2023");
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
case M_PASS2:
|
case M_PASS2:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
SEND_STRING("P0plarLake!2023");
|
SEND_STRING("Thel0ve0fchrist!");
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case M_PASS3:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
SEND_STRING("6754");
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case M_PASS4:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
SEND_STRING("10242677");
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
1
kmk_firmware
Submodule
1
kmk_firmware
Submodule
Submodule kmk_firmware added at e7b0c0eab3
@@ -150,7 +150,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||||||
switch (keycode) {
|
switch (keycode) {
|
||||||
case M_PASS1:
|
case M_PASS1:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
SEND_STRING("T3lg3Ranch!2023");
|
SEND_STRING("P0plarLake!2023");
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
case M_PASS2:
|
case M_PASS2:
|
||||||
|
|||||||
Submodule qmk_firmware updated: 1db2481a72...afb821077b
6
sweep-kmk/README.md
Normal file
6
sweep-kmk/README.md
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
# Ferris Sweep
|
||||||
|
|
||||||
|
The [Ferris Sweep](https://github.com/davidphilipbarr/Sweep) is a split, 34 key keyboard designed by David Philip Barr. It uses a Pro-Micro footprint.
|
||||||
|
|
||||||
|
It's based in turn on the Ferris by Philip Chevalier.
|
||||||
|
The default keymap is based on the [original Ferris default keymap](https://github.com/qmk/qmk_firmware/tree/master/keyboards/ferris/keymaps/default).
|
||||||
Binary file not shown.
BIN
sweep-kmk/flash_nuke.uf2
Normal file
BIN
sweep-kmk/flash_nuke.uf2
Normal file
Binary file not shown.
36
sweep-kmk/kb.py
Normal file
36
sweep-kmk/kb.py
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
# Ferris Sweep pinout translated from QMK repo
|
||||||
|
# CreditT: 2018-2020 ENDO Katsuhiro, David Philip Barr, Pierre Chevalier
|
||||||
|
|
||||||
|
import board
|
||||||
|
|
||||||
|
from storage import getmount
|
||||||
|
|
||||||
|
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
|
||||||
|
from kmk.quickpin.pro_micro.elite_pi import pinout as pins
|
||||||
|
from kmk.scanners.keypad import KeysScanner
|
||||||
|
|
||||||
|
# GPIO to key mapping - each line is a new row.
|
||||||
|
# fmt: off
|
||||||
|
_KEY_CFG_LEFT = [
|
||||||
|
pins[9], pins[16], pins[17], pins[18], pins[19],
|
||||||
|
pins[15], pins[14], pins[13], pins[12], pins[0],
|
||||||
|
pins[4], pins[5], pins[6], pins[7], pins[8],
|
||||||
|
pins[10], pins[11],
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
# fmt: on
|
||||||
|
|
||||||
|
class KMKKeyboard(_KMKKeyboard):
|
||||||
|
def __init__(self):
|
||||||
|
# create and register the scanner
|
||||||
|
self.matrix = KeysScanner(_KEY_CFG_LEFT)
|
||||||
|
|
||||||
|
# flake8: noqa
|
||||||
|
# fmt: off
|
||||||
|
coord_mapping = [
|
||||||
|
0, 1, 2, 3, 4, 21, 20, 19, 18, 17,
|
||||||
|
5, 6, 7, 8, 9, 26, 25, 24, 23, 22,
|
||||||
|
10, 11, 12, 13, 14, 31, 30, 29, 28, 27,
|
||||||
|
15, 16, 33, 32
|
||||||
|
]
|
||||||
113
sweep-kmk/main.py
Normal file
113
sweep-kmk/main.py
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
|
||||||
|
import board
|
||||||
|
|
||||||
|
from kb import KMKKeyboard
|
||||||
|
|
||||||
|
from kmk.keys import KC
|
||||||
|
from kmk.modules.layers import Layers
|
||||||
|
from kmk.modules.mouse_keys import MouseKeys
|
||||||
|
from kmk.modules.split import Split, SplitSide
|
||||||
|
from kmk.handlers.sequences import send_string
|
||||||
|
from kmk.modules.tapdance import TapDance
|
||||||
|
from kmk.modules.capsword import CapsWord
|
||||||
|
from kmk.modules.combos import Combos, Chord, Sequence
|
||||||
|
from kmk.modules.autoshift import Autoshift
|
||||||
|
|
||||||
|
keyboard = KMKKeyboard()
|
||||||
|
keyboard.debug_enabled = False
|
||||||
|
|
||||||
|
|
||||||
|
# TODO Comment one of these on each side
|
||||||
|
split_side = SplitSide.LEFT
|
||||||
|
#split_side = SplitSide.RIGHT
|
||||||
|
split = Split(
|
||||||
|
# split_flip=True,
|
||||||
|
data_pin=board.D1,
|
||||||
|
split_side=split_side,
|
||||||
|
split_target_left=False,
|
||||||
|
# Using the default wasn't working, try pio
|
||||||
|
use_pio=True,
|
||||||
|
uart_flip=True,
|
||||||
|
)
|
||||||
|
|
||||||
|
layers = Layers()
|
||||||
|
mouse_key = MouseKeys()
|
||||||
|
tapdance = TapDance()
|
||||||
|
tapdance.tap_time = 750
|
||||||
|
caps_word=CapsWord()
|
||||||
|
combos = Combos()
|
||||||
|
autoshift = Autoshift()
|
||||||
|
|
||||||
|
keyboard.modules = [layers, split, mouse_key, tapdance, caps_word, combos, autoshift]
|
||||||
|
|
||||||
|
# Cleaner key names
|
||||||
|
_______ = KC.TRNS
|
||||||
|
XXXXXXX = KC.NO
|
||||||
|
|
||||||
|
# Tap Dance
|
||||||
|
Q_ESC = KC.TD(
|
||||||
|
# Tap once for "Q"
|
||||||
|
KC.Q,
|
||||||
|
# Tap twice for "ESC"
|
||||||
|
KC.ESC,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# Layer tap for other home row keys
|
||||||
|
NAV_BKSP = KC.LT(1, KC.BSPC)
|
||||||
|
FUN_TAB = KC.LT(4, KC.TAB)
|
||||||
|
SYM_ENTER = KC.LT(3, KC.ENT)
|
||||||
|
NUM_SPC = KC.LT(2, KC.SPC)
|
||||||
|
|
||||||
|
# Send String
|
||||||
|
M_PASS1 = send_string("T3lg3Ranch!2023")
|
||||||
|
M_PASS2 = send_string("P0plarLake!2023")
|
||||||
|
|
||||||
|
# COMBOS
|
||||||
|
combos.combos = [
|
||||||
|
Chord((KC.F, KC.A), KC.LGUI),
|
||||||
|
Chord((KC.F, KC.S), KC.LALT),
|
||||||
|
Chord((KC.F, KC.D), KC.LCTL),
|
||||||
|
Chord((KC.J, KC.QUOT), KC.RGUI),
|
||||||
|
Chord((KC.J, KC.L), KC.RALT),
|
||||||
|
Chord((KC.J, KC.K), KC.RCTL),
|
||||||
|
Chord((KC.Z, KC.X), KC.LSFT)
|
||||||
|
]
|
||||||
|
|
||||||
|
# fmt: off
|
||||||
|
# flake8: noqa
|
||||||
|
keyboard.keymap = [
|
||||||
|
[ # 0 QWERTY/ BASE
|
||||||
|
Q_ESC, 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.X, KC.C, KC.V, KC.B, KC.N, KC.M, KC.COMM, KC.DOT, KC.SLSH,
|
||||||
|
NAV_BKSP, FUN_TAB, SYM_ENTER, NUM_SPC,
|
||||||
|
],
|
||||||
|
[ # 1 NAVIGATION
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, KC.CAPSWORD, KC.LEFT, KC.DOWN, KC.UP, KC.RGHT,
|
||||||
|
_______, _______, _______, M_PASS2, M_PASS1, _______, KC.HOME, KC.PGUP, KC.PGDN, KC.END,
|
||||||
|
_______, _______, _______, _______,
|
||||||
|
],
|
||||||
|
[ # 2 NUMBERS
|
||||||
|
KC.LBRC, KC.N7, KC.N8, KC.N9, KC.RBRC, _______, _______, _______, _______, _______,
|
||||||
|
KC.SCLN, KC.N4, KC.N5, KC.N6, KC.PLUS, _______, _______, _______, _______, _______,
|
||||||
|
KC.DOT, KC.N1, KC.N2, KC.N3, KC.BSLS, _______, _______, _______, _______, _______,
|
||||||
|
KC.N0, KC.MINS, _______, _______,
|
||||||
|
],
|
||||||
|
[ # 3 SYMBOLS
|
||||||
|
KC.LCBR, KC.AMPR, KC.ASTR, KC.LPRN, KC.RCBR, _______, _______, _______, _______, _______,
|
||||||
|
KC.COLN, KC.DLR, KC.PERC, KC.CIRC, KC.PLUS, _______, _______, _______, _______, _______,
|
||||||
|
KC.TILD, KC.EXLM, KC.AT, KC.HASH, KC.PIPE, _______, _______, _______, _______, _______,
|
||||||
|
KC.RPRN, KC.UNDS, _______, _______,
|
||||||
|
],
|
||||||
|
[ # 4 FUNCTION
|
||||||
|
_______, _______, _______, _______, _______, _______, KC.F7, KC.F8, KC.F9, KC.F10,
|
||||||
|
_______, _______, _______, _______, _______, _______, KC.F4, KC.F5, KC.F6, KC.F11,
|
||||||
|
_______, _______, _______, _______, _______, _______, KC.F1, KC.F2, KC.F3, KC.F12,
|
||||||
|
_______, _______, _______, _______,
|
||||||
|
],
|
||||||
|
]
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
keyboard.go()
|
||||||
@@ -147,7 +147,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||||||
switch (keycode) {
|
switch (keycode) {
|
||||||
case M_PASS1:
|
case M_PASS1:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
SEND_STRING("T3lg3Ranch!2023");
|
SEND_STRING("P0plarLake!2023");
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
case M_PASS2:
|
case M_PASS2:
|
||||||
|
|||||||
Reference in New Issue
Block a user