CHARYBDIS TWEAKS

This commit is contained in:
oco9oco 2025-06-11 15:01:13 +09:00
commit e86b02c016
7 changed files with 161 additions and 74 deletions

View file

@ -1,11 +1,31 @@
#define CHARYBDIS_CONFIG_SYNC
#define POINTING_DEVICE_AUTO_MOUSE_ENABLE
#define AUTO_MOUSE_DEFAULT_LAYER 10
#define AUTO_MOUSE_TIME 500
#define AUTO_MOUSE_DELAY 0
//#define POINTING_DEVICE_AUTO_MOUSE_ENABLE
#ifdef POINTING_DEVICE_AUTO_MOUSE_ENABLE
#define AUTO_MOUSE_DEFAULT_LAYER 10
#define AUTO_MOUSE_TIME 300
#define AUTO_MOUSE_DELAY 0
#endif
#define CHARYBDIS_DRAGSCROLL_REVERSE_Y
#define TAPPING_TOGGLE 1
// #undef POINTING_DEVICE_TASK_THROTTLE_MS
// #define POINTING_DEVICE_TASK_THROTTLE_MS
#define CHARYBDIS_MINIMUM_DEFAULT_DPI 400
#define CHARYBDIS_DEFAULT_DPI_CONFIG_STEP 150
#define CHARYBDIS_MINIMUM_SNIPING_DPI 200
#define CHARYBDIS_SNIPING_DPI_CONFIG_STEP 100
#define CHARYBDIS_DRAGSCROLL_DPI 150
#define CHARYBDIS_DRAGSCROLL_BUFFER_SIZE 6
// #define MASTER_LEFT
#ifdef MASTER_LEFT
#undef MASTER_RIGHT
#define SPLIT_POINTING_ENABLE
#define POINTING_DEVICE_RIGHT
#endif

View file

@ -38,24 +38,41 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
*/
[_BASE] = LAYOUT_charybdis_wrapper(
/*
[_BASE] = LAYOUT_charybdis_wrapper(
// ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
KC_ESC, __________________NUMROW_L_________________, __________________NUMROW_R_________________, KC_MINS,
KC_CAPS, __________________QWERTY_L1________________, __________________QWERTY_R1________________, KC_EQL,
USR_LNG, __________________QWERTY_SACS_L2___________, __________________QWERTY_R2________________, KC_QUOT,
KC_LGUI, KC_Z, KC_X, KC_C, KC_V, KC_B, __________________QWERTY_HOME_R3___________, KC_BSLS,
KC_TAB, __________________QWERTY_L1________________, __________________QWERTY_R1________________, KC_EQL,
SFT_CAPS, __________________QWERTY_SACS_L2___________, __________________QWERTY_R2________________, KC_QUOT,
KC_ENT, KC_Z, KC_X, KC_C, KC_V, KC_B, __________________QWERTY_HOME_R3___________, KC_BSLS,
// ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
THUMB_L1,THUMB_L2, THUMB_L3, THUMB_R3,THUMB_R2,
TG(_BASE_NOMOD), TT(_ONEHAND), THUMB_R1
// ╰───────────────────────────╯ ╰──────────────────╯
*/
[_BASE] = LAYOUT_charybdis_wrapper(
// ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
KC_ESC, KC_WH_L, KC_BTN2, KC_BTN3, KC_BTN1, KC_WH_R, __________________NUMROW_R_________________, KC_MINS,
KC_TAB, __________________QWERTY_L1________________, __________________QWERTY_R1________________, KC_EQL,
SFT_CAPS, __________________QWERTY_SACS_L2___________, __________________QWERTY_R2________________, KC_QUOT,
KC_ENT, KC_Z, KC_X, KC_C, KC_V, KC_B, __________________QWERTY_HOME_R3___________, KC_BSLS,
// ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
THUMB_L1,THUMB_L2, THUMB_L3, THUMB_R3,THUMB_R2,
TG(_BASE_NOMOD), TG(_ONEHAND), THUMB_R1
// ╰───────────────────────────╯ ╰──────────────────╯
),
[_BASE_NOMOD] = LAYOUT_charybdis_wrapper(
// ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
KC_ESC, __________________NUMROW_L_________________, __________________NUMROW_R_________________, KC_MINS,
KC_ESC, KC_WH_L, KC_BTN2, KC_BTN3, KC_BTN1, KC_WH_R, __________________NUMROW_R_________________, KC_MINS,
ALT_TAB, __________________QWERTY_L1________________, __________________QWERTY_R1________________, KC_EQL,
_______, __________________QWERTY_L2_SFTA___________, __________________QWERTY_R2________________, KC_QUOT,
_______, __________________QWERTY_L3________________, __________________QWERTY_HOME_R3___________, KC_BSLS,
_______, __________________QWERTY_L3________________, __________________QWERTY_HOME_R3___________, KC_PIPE,
// ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
THUMB_L1,THUMB_L2, THUMB_L3, THUMB_R3,THUMB_R2,
_______, TT(_ONEHAND), THUMB_R1
@ -66,12 +83,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_IPC] = LAYOUT_charybdis_wrapper(
// ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
ALT_F4, C(KC_F1),XXXXXXX, SCRNSHOT,INV_DSP, XXXXXXX, KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, XXXXXXX, _______,
ALT_TAB, INV_DSP, XXXXXXX, USR_LNG, CLASS_A, XXXXXXX, KC_GRV, _________NUM_789_________, XXXXXXX, _______,
KC_CAPS, IPC(A), IPC(S), IPC_D_, IPC(F), KC_DOT, AT_IPC, _________NUM_456_________, KC_COLN, KC_DQUO,
KC_LGUI, IPC(Z), HWP_CITE, IPC(C), KC_EQL, XXXXXXX, HWP_MACRO,_________NUM_123_________, _______, KC_PIPE,
ALT_TAB, INV_DSP, XXXXXXX, CLASS_A, XXXXXXX, XXXXXXX, KC_GRV, _________NUM_789_________, XXXXXXX, _______,
USR_LNG, IPC(A), IPC(S), IPC_D_, IPC(F), KC_DOT, AT_IPC, _________NUM_456_________, KC_COLN, KC_DQUO,
KC_LGUI, IPC(Z), HWP_CITE, IPC(C), KC_EQL, XXXXXXX, HWP_MACRO, _________NUM_123_________, _______, _______,
// ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
TO(_DOOM), _______, _______,/* */_______, LT(_NAV, KC_0),
QK_BOOT, _______,/* */IME_CHG
XXXXXXX, _______,/* */IME_CHG
// ╰───────────────────────────╯ ╰──────────────────╯
),
@ -99,20 +116,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_NAV] = LAYOUT_charybdis_wrapper(
// ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
_______, CTRL_F1, KC_F2, KC_F3, ALT_F4, KC_F5, XXXXXXX, A(KC_7), A(KC_5), A(KC_9), A(KC_0), XXXXXXX,
ALT_TAB, NAV_NS,LCA(KC_J),LCA(KC_K),LCA(KC_L), KC_F5, S(A(KC_3)), A(KC_4), A(KC_8), A(KC_6), KC_NO, KC_NO,
KC_LGUI, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_F6, KC_INS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, DPI_MOD,
G(C(KC_D)), NAV(Z), C(KC_X), C(KC_C), C(KC_V), KC_F7, KC_APP, KC_HOME, KC_PGDN, KC_PGUP, KC_END, DPI_RMOD,
ALT_TAB, NAV_NS,LCA(KC_J),LCA(KC_K),LCA(KC_L), KC_F6, S(A(KC_3)), A(KC_4), A(KC_8), A(KC_6), XXXXXXX, XXXXXXX,
KC_LGUI, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_F7, KC_INS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, DPI_MOD,
G(C(KC_D)), NAV(Z), C(KC_X), C(KC_C), C(KC_V), C(KC_B), KC_APP, KC_HOME, KC_PGDN, KC_PGUP, KC_END, DPI_RMOD,
// ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
_______, KC_BSPC, KC_DEL,/* */_______, _______,
USR_LNG, KC_BSPC, KC_DEL,/* */_______, _______,
_______, _______,/* */_______
// ╰───────────────────────────╯ ╰──────────────────╯
),
[_MOUSE] = LAYOUT_charybdis_wrapper(
// ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
_______, CTRL_F1, KC_F2, KC_F3, ALT_F4, KC_F5, KC_F8, KC_F7, KC_F8, KC_F9, KC_F10, QK_BOOT,
KC_U, KC_BTN4, KC_WH_D, KC_MS_U, KC_WH_U, KC_F5, KC_F9, KC_WH_L, KC_WH_R, XXXXXXX, XXXXXXX, QK_MAKE,
KC_P, KC_LSFT, KC_MS_L, KC_MS_D, KC_MS_R, KC_F6, KC_F10, KC_ACL0, KC_BTN1, KC_BTN2, KC_BTN3, KC_ENT,
KC_X, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_F7, KC_APP, KC_ACL0, KC_BTN4, KC_BTN5, XXXXXXX, XXXXXXX,
_______, CTRL_F1, KC_F2, KC_F3, ALT_F4, KC_F5, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT,
KC_U, KC_BTN4, KC_WH_D, KC_MS_U, KC_WH_U, KC_F6, XXXXXXX, KC_WH_L, KC_WH_R, XXXXXXX, XXXXXXX, QK_MAKE,
KC_P, KC_LSFT, KC_MS_L, KC_MS_D, KC_MS_R, KC_F7, XXXXXXX, KC_ACL0, KC_BTN1, KC_BTN2, KC_BTN3, KC_ENT,
KC_X, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, C(KC_B), KC_APP, KC_ACL0, KC_BTN4, KC_BTN5, XXXXXXX, XXXXXXX,
// ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
_______, KC_BSPC, KC_DEL,/* */_______, _______,
_______, _______,/* */_______
@ -121,10 +138,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_FUNC] = LAYOUT_charybdis_wrapper(
// ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DT_PRNT, KC_F12, KC_F7, KC_F8, KC_F9, XXXXXXX, XXXXXXX,
XXXXXXX, KC_LSFT, KC_LALT, KC_LCTL, KC_LSFT, DT_UP, KC_F11, KC_F4, KC_F5, KC_F6, XXXXXXX, XXXXXXX,
XXXXXXX, KC_LGUI, XXXXXXX, XXXXXXX, XXXXXXX, DT_DOWN, KC_F10, KC_F1, KC_F2, KC_F3, XXXXXXX, XXXXXXX,
_______, AS_OFF, AS_TOGG, AS_DOWN, AS_UP, AS_RPT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT,
XXXXXXX, XXXXXXX, XXXXXXX, DT_DOWN, DT_UP, DT_PRNT, KC_F12, KC_F7, KC_F8, KC_F9, XXXXXXX, XXXXXXX,
XXXXXXX, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_F11, KC_F4, KC_F5, KC_F6, XXXXXXX, XXXXXXX,
XXXXXXX, C(KC_Z), C(KC_X), C(KC_C), C(KC_V), C(KC_B), KC_F10, KC_F1, KC_F2, KC_F3, XXXXXXX, XXXXXXX,
// ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
_______, _______, _______,/* */_______, _______,
_______, _______,/* */_______
@ -133,12 +150,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_ONEHAND] = LAYOUT_charybdis_wrapper(
// ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
_______, CTRL_F1, C(KC_W), XXXXXXX, XXXXXXX, KC_F5, S_D_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT,
ALT_TAB, XXXXXXX, XXXXXXX, DRGSCRL, A(KC_S), KC_F5, S_D_RMOD,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_MAKE,
ALT_TAB, C(KC_A), LT(_ONEHAND,KC_BTN2), SNIPING, KC_BTN1, KC_F6, DPI_MOD, KC_ENT, XXXXXXX, G(KC_6), XXXXXXX, XXXXXXX,
XXXXXXX, C(KC_Z), C(KC_X), C(KC_C), C(KC_V), KC_F7, DPI_RMOD,C(A(KC_1)), C(A(KC_2)), KC_BTN3, XXXXXXX, XXXXXXX,
_______, CTRL_F1, C(KC_W), XXXXXXX, ALT_F4, KC_F5, S_D_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT,
ALT_TAB, _______, _______, DRGSCRL, A(KC_S), KC_F5, S_D_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_MAKE,
ALT_TAB, KC_LSFT, LT(_ONEHAND,KC_BTN2), SNIPING, KC_BTN1, KC_F6, DPI_MOD, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
KC_ENT, C(KC_Z), C(KC_X), C(KC_C), C(KC_V), KC_F7, DPI_RMOD, A(KC_S), KC_BTN1, KC_BTN2, SNIPING, XXXXXXX,
// ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
_______, _______, TO(_BASE),/* */_______, _______,
_______, _______, _______,/* */_______, _______,
C(KC_TAB), _______,/* */_______
// ╰───────────────────────────╯ ╰──────────────────╯
),
@ -177,6 +194,8 @@ const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM =
case _MOUSE:
case _NAV:
case _IPC:
case _FUNC:
case _BASE_NOMOD:
// remove_auto_mouse_target must be called to adjust state *before* setting enable
state = remove_auto_mouse_layer(state, false);
set_auto_mouse_enable(false);
@ -192,12 +211,11 @@ const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM =
bool now_on = layer_state_cmp(state, _ONEHAND);
if (now_on && !mouse_layer_on) {
// 마우스 레이어 진입 시
register_code(KC_F13); // 예: 음소거 키 입력
tap_code(KC_F13); // 예: 음소거 키 입력
} else
if (!now_on && mouse_layer_on) {
// 마우스 레이어 탈출 시
unregister_code(KC_F13);
clear_keyboard();
tap_code(KC_F13);
}
mouse_layer_on = now_on;
return state;
@ -205,6 +223,9 @@ const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM =
bool is_mouse_record_kb(uint16_t keycode, keyrecord_t* record) {
switch(keycode) {
case KC_BTN1:
case KC_BTN2:
case KC_BTN3:
case DRGSCRL:
case DRG_TOG:
case SNIPING:

View file

@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[_IPC] = LAYOUT_crkbd_wrapper(
// |--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|
A(KC_F4), C(KC_F1), SCRNSHOT, G(KC_E), CLASS_A, XXXXXXX, KC_GRV, _________NUM_789_________, _______, KC_PLUS,
A(KC_F4), C(KC_F1), SCRNSHOT, G(KC_E), CLASS_A, JIGGLE, KC_GRV, _________NUM_789_________, _______, KC_PLUS,
TO(_DOOM), IPC(A), IPC(S), _IPC_MIN, IPC(F), KC_DOT, AT_IPC, _________NUM_456_________, KC_COLN, KC_DQUO,
XXXXXXX, IPC(Z), HWP_CITE, IPC(C), KC_EQL, KC_BSLS, HWP_MACRO, _________NUM_123_________, _______, KC_PIPE,
TO(_BASE_SWAP), _______, TO(_BASE), KC_LPRN, KC_RPRN, LT(_NAV,KC_0)

View file

@ -21,7 +21,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define FORCE_NKRO
#define TAPPING_TERM 200
#define QUICK_TAP_TERM 0
//#define PERMISSIVE_HOLD_PER_KEY
@ -29,7 +29,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define CHORDAL_HOLD
// AUTO SHIFT OPTIONS
#define NO_AUTO_SHIFT_ALPHA
#define AUTO_SHIFT_TIMEOUT_PER_KEY
//MOUSEKEY OPTIONS

View file

@ -20,28 +20,73 @@ void appcmd(uint16_t keycode) {
tap_code(KC_APP);
tap_code(keycode);
}
//쌍자음 감지기
/*
if keyrecord row가 doubleconsonants일
corne: row 0
lily58, kimiko, id75, moonlander: row 1
save instaShift on
else instaShift off
vs
-dlaekrk
QWERT
vs
vs
dlEo - shift QWERT shift
on qwertp
*/
bool get_custom_auto_shifted_key(uint16_t keycode, keyrecord_t *record) {
switch(keycode) {
case KC_Q:
case KC_W:
case KC_E:
case KC_R:
case KC_T:
case KC_P:
return true;
default:
return false;
}
}
// process_record_user
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
//GETREUR
// if (record->event.pressed) {
// static deferred_token token = INVALID_DEFERRED_TOKEN;
// static report_mouse_t report = {0};
// if (token) {
// // If jiggler is currently running, stop when any key is pressed.
// cancel_deferred_exec(token);
// token = INVALID_DEFERRED_TOKEN;
// report = (report_mouse_t){}; // Clear the mouse.
// host_mouse_send(&report);
// } else if (keycode == JIGGLE) {
// uint32_t jiggler_callback(uint32_t trigger_time, void* cb_arg) {
// // Deltas to move in a circle of radius 20 pixels over 32 frames.
// static const int8_t deltas[32] = {
// 0, -1, -2, -2, -3, -3, -4, -4, -4, -4, -3, -3, -2, -2, -1, 0,
// 0, 1, 2, 2, 3, 3, 4, 4, 4, 4, 3, 3, 2, 2, 1, 0};
// static uint8_t phase = 0;
// // Get x delta from table and y delta by rotating a quarter cycle.
// report.x = deltas[phase];
// report.y = deltas[(phase + 8) & 31];
// phase = (phase + 1) & 31;
// host_mouse_send(&report);
// return 16; // Call the callback every 16 ms.
// }
// token = defer_exec(1, jiggler_callback, NULL); // Schedule callback.
// }
// }
switch (keycode) {
case THUMB_L2:
case THUMB_L3:
@ -403,11 +448,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
case SFT_CAPS:
if (__TAPPED__ && __PRESSED__) {
tap_code(KC_LNG1);
tap_code(KC_CAPS);
} else if (__PRESSED__) {
register_code(KC_CAPS);
register_code(KC_LGUI);
} else {
unregister_code(KC_CAPS);
unregister_code(KC_LGUI);
}
return false;
break;
@ -417,9 +462,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (__TAPPED__ && __PRESSED__) {
tap_code16(KC_DEL);
} else if (__PRESSED__) {
register_code(KC_BTN4);
} else {
unregister_code(KC_BTN4);
layer_move(_ONEHAND);
}
return false;
break;
@ -567,7 +610,7 @@ bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
void matrix_scan_user(void) { // The very important timer.
if (is_alt_tab_active) {
if (timer_elapsed(alt_tab_timer) > 1000) {
if (timer_elapsed(alt_tab_timer) > 2000) {
unregister_code(KC_LALT);
is_alt_tab_active = false;
}

View file

@ -255,7 +255,7 @@ bool qwert;
// Thumb keys
#define THUMB_L1 LCTL_T(KC_TAB)
#define THUMB_L2 LT(_IPC, KC_BSPC)
#define THUMB_L3 LSFT_T(KC_DEL)
#define THUMB_L3 LT(_ONEHAND,KC_DEL)
#define THUMB_R3 LT(_MOUSE, KC_ENT)
#define THUMB_R2 LT(_NAV, KC_SPC)
@ -324,6 +324,7 @@ enum custom_keycodes {
ALT_TAB,
NAV_NS,
HWP_MACRO,
JIGGLE,
};
enum layer_index {

View file

@ -1,17 +1,19 @@
CONSOLE_ENABLE = no
COMMAND_ENABME = no
OLED_ENABLE = no
SRC+=oco9oco.c
CONSOLE_ENABLE = yes
COMMAND_ENABLE = no
KEY_OVERRIDE_ENABLE = no
COMBO_ENABLE = no
AUTO_SHIFT_ENABLE= no
SPACE_CADET_ENABLE = no
GRAVE_ESC_ENABLE = no
MAGIC_ENABLE = no
NKRO_ENABLE = yes
SRC+=oco9oco.c
MOUSEKEY_ENABLE = yes
# RGB 라이트 기능 활성화
RGBLIGHT_ENABLE = no
DYNAMIC_TAPPING_TERM_ENABLE = yes
# 트랙볼 캘리브레이션용. 버벅거린다면 주석처리
FLOAT_ENABLE = yes
# OLED_ENABLE = no