mirror of
https://github.com/qmk/qmk_userspace.git
synced 2026-07-26 19:31:55 -04:00
Refactor keymap and configuration files; enable user language key and adjust mouse settings
This commit is contained in:
parent
d11a24a3dd
commit
de0c578f56
8 changed files with 175 additions and 67 deletions
|
|
@ -1,6 +1,10 @@
|
|||
#define CHARYBDIS_CONFIG_SYNC
|
||||
#define POINTING_DEVICE_AUTO_MOUSE_ENABLE
|
||||
#define AUTO_MOUSE_DEFAULT_LAYER 10
|
||||
#define AUTO_MOUSE_TIME 400
|
||||
// #define POINTING_DEVICE_AUTO_MOUSE_ENABLE
|
||||
// #define AUTO_MOUSE_DEFAULT_LAYER 10
|
||||
// #define AUTO_MOUSE_TIME 400
|
||||
// #define AUTO_MOUSE_DELAY TAPPING_TERM
|
||||
#define CHARYBDIS_DRAGSCROLL_REVERSE_Y
|
||||
#define TAPPING_TOGGLE 1
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -42,22 +42,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
KC_ESC, __________________NUMROW_L_________________, __________________NUMROW_R_________________, KC_MINS,
|
||||
KC_TAB, __________________QWERTY_L1________________, __________________QWERTY_R1________________, KC_EQL,
|
||||
SFT_CAPS,__________________QWERTY_SACS_L2___________, __________________QWERTY_R2________________, KC_QUOT,
|
||||
KC_LGUI, __________________QWERTY_L3________________, __________________QWERTY_HOME_R3___________, KC_BSLS,
|
||||
KC_LGUI, KC_Z, KC_X, LT(_ONEHAND,KC_C),KC_V, KC_B, __________________QWERTY_HOME_R3___________, KC_BSLS,
|
||||
// ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
|
||||
THUMB_L1,THUMB_L2, KC_LNG1,/* */THUMB_R3,THUMB_R2,
|
||||
THUMB_L3, KC_LNG2,/* */THUMB_R1
|
||||
THUMB_L1,THUMB_L2, TT(_ONEHAND),/* */THUMB_R3,THUMB_R2,
|
||||
THUMB_L3, USR_LNG,/* */THUMB_R1
|
||||
// ╰───────────────────────────╯ ╰──────────────────╯
|
||||
),
|
||||
|
||||
[_IPC] = LAYOUT_charybdis_wrapper(
|
||||
// ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
|
||||
ALT_F4, C(KC_F1),KC_P, KC_X, C(G(KC_C)),TO(_ONEHAND), KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, XXXXXXX, _______,
|
||||
KC_LNG2, C(G(KC_C)), XXXXXXX, CLASS_E, CLASS_A, HWP_MACRO, KC_GRV, _________NUM_789_________, XXXXXXX, _______,
|
||||
ALT_F4, C(KC_F1),KC_P, KC_X, INV_DSP, TO(_ONEHAND), KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, XXXXXXX, _______,
|
||||
ALT_TAB, INV_DSP, XXXXXXX, CLASS_E, CLASS_A, HWP_MACRO, KC_GRV, _________NUM_789_________, XXXXXXX, _______,
|
||||
_______, IPC(A), IPC(S), IPC_MIN, IPC(F), KC_DOT, AT_IPC, _________NUM_456_________, KC_COLN, KC_DQUO,
|
||||
G(C(KC_SPC)), IPC(Z), HWP_CITE,IPC(C), KC_EQL, KC_BSLS, XXXXXXX, _________NUM_123_________, _______, KC_PIPE,
|
||||
IME_CHG, IPC(Z), HWP_CITE,IPC(C), KC_EQL, KC_BSLS, XXXXXXX, _________NUM_123_________, _______, KC_PIPE,
|
||||
// ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
|
||||
_______, _______, _______,/* */HWP_MACRO, LT(_NAV, KC_0),
|
||||
QK_BOOT, _______,/* */G(C(KC_SPC))
|
||||
QK_BOOT, _______,/* */IME_CHG
|
||||
// ╰───────────────────────────╯ ╰──────────────────╯
|
||||
),
|
||||
[_NAV] = LAYOUT_charybdis_wrapper(
|
||||
|
|
@ -74,12 +74,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
[_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_F6, KC_F9, KC_WH_L, XXXXXXX, XXXXXXX, XXXXXXX, QK_MAKE,
|
||||
KC_U, KC_BTN4, KC_WH_D, KC_MS_U, KC_WH_U, KC_F6, 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_F7, KC_F10, KC_ACL0, KC_BTN1, KC_BTN2, KC_BTN3, KC_ENT,
|
||||
KC_X, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, BOLDFACE, KC_APP, KC_ACL0, KC_BTN1, KC_BTN2, KC_BTN3, XXXXXXX,
|
||||
KC_X, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, BOLDFACE, KC_APP, KC_ACL0, KC_BTN4, KC_BTN5, XXXXXXX, XXXXXXX,
|
||||
// ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
|
||||
_______, KC_BSPC, KC_DEL,/* */_______, _______,
|
||||
_______, _______,/* */QK_BOOT
|
||||
_______, _______,/* */_______
|
||||
// ╰───────────────────────────╯ ╰──────────────────╯
|
||||
),
|
||||
|
||||
|
|
@ -97,66 +97,66 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
|
||||
[_ONEHAND] = LAYOUT_charybdis_wrapper(
|
||||
// ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
|
||||
XXXXXXX, CTRL_F1, KC_F2, KC_F3, ALT_F4, KC_F5, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT,
|
||||
XXXXXXX, XXXXXXX, KC_WH_D, XXXXXXX, KC_WH_U, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_MAKE,
|
||||
S_D_MOD, KC_LCTL, KC_BTN2, KC_LSFT, KC_BTN1, DPI_MOD, C(KC_TAB), KC_BTN3, KC_BTN1, KC_BTN2, DRGSCRL, XXXXXXX,
|
||||
S_D_RMOD,KC_BTN3, KC_X, KC_C, KC_V, DPI_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, SNIPING, XXXXXXX,
|
||||
ALT_F4, CTRL_F1, KC_LEFT, XXXXXXX, KC_RGHT, KC_F5, S_D_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT,
|
||||
XXXXXXX, XXXXXXX, KC_WH_D, XXXXXXX, KC_WH_U, XXXXXXX, S_D_RMOD,KC_BTN4, KC_BTN5, XXXXXXX, XXXXXXX, QK_MAKE,
|
||||
XXXXXXX, KC_LCTL, KC_BTN2, KC_LSFT, KC_BTN1, DPI_MOD, C(KC_TAB), KC_BTN3, KC_BTN1, KC_BTN2, DRGSCRL, XXXXXXX,
|
||||
DRG_TOG, DRGSCRL, KC_BTN2, _______, KC_BTN1, DPI_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, SNIPING, XXXXXXX,
|
||||
// ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
|
||||
KC_LCTL, _______, DRGSCRL,/* */THUMB_R3,THUMB_R2,
|
||||
_______, SNIPING,/* */TO(_BASE)
|
||||
KC_LCTL, _______, _______,/* */_______, _______,
|
||||
_______, DRG_TOG,/* */_______
|
||||
// ╰───────────────────────────╯ ╰──────────────────╯
|
||||
),
|
||||
};
|
||||
// in keymap.c:
|
||||
void pointing_device_init_user(void) {
|
||||
set_auto_mouse_layer(_ONEHAND); // only required if AUTO_MOUSE_DEFAULT_LAYER is not set to index of <mouse_layer>
|
||||
set_auto_mouse_enable(true); // always required before the auto mouse feature will work
|
||||
}
|
||||
// void pointing_device_init_user(void) {
|
||||
// set_auto_mouse_layer(_ONEHAND); // only required if AUTO_MOUSE_DEFAULT_LAYER is not set to index of <mouse_layer>
|
||||
// set_auto_mouse_enable(true); // always required before the auto mouse feature will work
|
||||
// }
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
// checks highest layer other than target layer
|
||||
switch(get_highest_layer(remove_auto_mouse_layer(state, true))) {
|
||||
case _MOUSE:
|
||||
case _NAV:
|
||||
case _IPC:
|
||||
// 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);
|
||||
break;
|
||||
// layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
// // checks highest layer other than target layer
|
||||
// switch(get_highest_layer(remove_auto_mouse_layer(state, true))) {
|
||||
// case _MOUSE:
|
||||
// case _NAV:
|
||||
// case _IPC:
|
||||
// // 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);
|
||||
// break;
|
||||
|
||||
default:
|
||||
set_auto_mouse_enable(true);
|
||||
break;
|
||||
}
|
||||
// recommend that any code that makes adjustment based on auto mouse layer state would go here
|
||||
// default:
|
||||
// set_auto_mouse_enable(true);
|
||||
// break;
|
||||
// }
|
||||
// // recommend that any code that makes adjustment based on auto mouse layer state would go here
|
||||
|
||||
static bool mouse_layer_on = false;
|
||||
bool now_on = layer_state_cmp(state, _ONEHAND);
|
||||
//if (now_on && !mouse_layer_on) {
|
||||
// 마우스 레이어 진입 시
|
||||
// tap_code(KC_LCTL); // 예: 음소거 키 입력
|
||||
//} else
|
||||
if (!now_on && mouse_layer_on) {
|
||||
// 마우스 레이어 탈출 시
|
||||
tap_code(KC_LCTL); // 예: 볼륨업 키 입력
|
||||
}
|
||||
mouse_layer_on = now_on;
|
||||
return state;
|
||||
}
|
||||
// static bool mouse_layer_on = false;
|
||||
// bool now_on = layer_state_cmp(state, _ONEHAND);
|
||||
// //if (now_on && !mouse_layer_on) {
|
||||
// // 마우스 레이어 진입 시
|
||||
// // tap_code(KC_LCTL); // 예: 음소거 키 입력
|
||||
// //} else
|
||||
// if (!now_on && mouse_layer_on) {
|
||||
// // 마우스 레이어 탈출 시
|
||||
// tap_code(KC_LCTL);
|
||||
// }
|
||||
// mouse_layer_on = now_on;
|
||||
// return state;
|
||||
// }
|
||||
|
||||
bool is_mouse_record_kb(uint16_t keycode, keyrecord_t* record) {
|
||||
switch(keycode) {
|
||||
case DRGSCRL:
|
||||
case SNIPING:
|
||||
case KC_LCTL:
|
||||
case KC_LALT:
|
||||
case KC_LSFT:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
return is_mouse_record_user(keycode, record);
|
||||
}
|
||||
// bool is_mouse_record_kb(uint16_t keycode, keyrecord_t* record) {
|
||||
// switch(keycode) {
|
||||
// case DRGSCRL:
|
||||
// case SNIPING:
|
||||
// case KC_LCTL:
|
||||
// case KC_LALT:
|
||||
// case KC_LSFT:
|
||||
// return true;
|
||||
// default:
|
||||
// return false;
|
||||
// }
|
||||
// return is_mouse_record_user(keycode, record);
|
||||
// }
|
||||
|
||||
char chordal_hold_handedness(keypos_t key) {
|
||||
if (key.col == 0 || key.col == MATRIX_COLS - 1) {
|
||||
|
|
|
|||
0
users/oco9oco/config - 복사본.h:Zone.Identifier
Normal file
0
users/oco9oco/config - 복사본.h:Zone.Identifier
Normal file
|
|
@ -465,6 +465,16 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||
unregister_code(KC_TAB);
|
||||
}
|
||||
break;
|
||||
case USR_LNG:
|
||||
if (__TAPPED__ && __PRESSED__) {
|
||||
tap_code(KC_LNG1);
|
||||
} else if (__PRESSED__) {
|
||||
register_code(KC_LNG2);
|
||||
} else {
|
||||
unregister_code(KC_LNG2);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -118,9 +118,11 @@ Z X C V B N M , . /
|
|||
#define _NUM_D LT(_NUM, KC_D)
|
||||
#define _NUM_F LT(_NUM, KC_F)
|
||||
#define _NUM_MIN LCTL_T(KC_MINS)
|
||||
|
||||
#define IME_CHG G(C(KC_SPC))
|
||||
#define INV_DSP G(C(KC_C))
|
||||
#define USR_LNG LT(_BASE, KC_LNG1)
|
||||
#define NUM(x) LT(_NUM, KC_##x)
|
||||
|
||||
//#define DRGMT LT(_ONEHAND, KC_F22)
|
||||
#define BULLET_U C(S(KC_LBRC))
|
||||
#define BULLET_D C(S(KC_RBRC))
|
||||
|
||||
|
|
|
|||
0
users/oco9oco/rules - 복사본.mk:Zone.Identifier
Normal file
0
users/oco9oco/rules - 복사본.mk:Zone.Identifier
Normal file
78
users/oco9oco/user_config.h
Normal file
78
users/oco9oco/user_config.h
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
/*
|
||||
Copyright 2022 oco9oco <oco9oco@gmail.com>
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
/* Handedness. */
|
||||
// #define MASTER_LEFT
|
||||
// #undef MASTER_RIGHT
|
||||
#define MASTER_RIGHT
|
||||
|
||||
// TAP-HOLD OPTIONS
|
||||
#define TAPPING_TERM 200
|
||||
#define QUICK_TAP_TERM 0
|
||||
//#define PERMISSIVE_HOLD_PER_KEY
|
||||
#define HOLD_ON_OTHER_KEY_PRESS_PER_KEY
|
||||
#define CHORDAL_HOLD
|
||||
// AUTO SHIFT OPTIONS
|
||||
#define NO_AUTO_SHIFT_ALPHA
|
||||
|
||||
//MOUSEKEY OPTIONS
|
||||
|
||||
//#define MOUSEKEY_INERTIA
|
||||
// #ifdef MOUSEKEY_INERTIA
|
||||
#undef MOUSEKEY_DELAY
|
||||
#undef MOUSEKEY_INTERVAL
|
||||
#undef MOUSEKEY_MAX_SPEED //Maximum cursor speed at which acceleration stops
|
||||
#undef MOUSEKEY_TIME_TO_MAX //Number of frames until maximum cursor speed is reached
|
||||
#undef MOUSEKEY_FRICTION //How quickly the cursor stops after releasing a key
|
||||
#undef MOUSEKEY_MOVE_DELTA //How much to move on first frame (1 strongly recommended)
|
||||
|
||||
#define MOUSEKEY_DELAY 0
|
||||
#define MOUSEKEY_INTERVAL 16 //Time between cursor movements in milliseconds (16 = 60fps)
|
||||
#define MOUSEKEY_MAX_SPEED 18 //Maximum cursor speed at which acceleration stops
|
||||
#define MOUSEKEY_TIME_TO_MAX 20 //Number of frames until maximum cursor speed is reached
|
||||
#define MOUSEKEY_FRICTION 50 //How quickly the cursor stops after releasing a key
|
||||
#define MOUSEKEY_MOVE_DELTA 1 //How much to move on first frame (1 strongly recommended)
|
||||
// #endif
|
||||
|
||||
#undef MOUSEKEY_WHEEL_DELAY //Delay between pressing a wheel key and wheel movement
|
||||
#undef MOUSEKEY_WHEEL_INTERVAL //Time between wheel movements
|
||||
#undef MOUSEKEY_WHEEL_MAX_SPEED //Maximum number of scroll steps per scroll action
|
||||
#undef MOUSEKEY_WHEEL_TIME_TO_MAX
|
||||
|
||||
#define MOUSEKEY_WHEEL_DELAY 0 //Delay between pressing a wheel key and wheel movement
|
||||
#define MOUSEKEY_WHEEL_INTERVAL 50 //Time between wheel movements
|
||||
#define MOUSEKEY_WHEEL_MAX_SPEED 3
|
||||
#define MOUSEKEY_WHEEL_TIME_TO_MAX 0
|
||||
|
||||
#ifdef MK_KINETIC_SPEED
|
||||
|
||||
#define MOUSEKEY_MOVE_DELTA 30
|
||||
#define MOUSEKEY_INITIAL_SPEED 300
|
||||
#define MOUSEKEY_BASE_SPEED 2000
|
||||
#define MOUSEKEY_DECELERATED_SPEED 300
|
||||
#define MOUSEKEY_ACCELERATED_SPEED 2500
|
||||
#define MOUSEKEY_WHEEL_INITIAL_MOVEMENTS 5
|
||||
#define MOUSEKEY_WHEEL_BASE_MOVEMENTS 8
|
||||
#define MOUSEKEY_WHEEL_ACCELERATED_MOVEMENTS 12
|
||||
#define MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS 5
|
||||
#endif
|
||||
// ONESHOT OPTIONS
|
||||
// #define ONESHOT_TAP_TOGGLE 1 /* Tapping this number of times holds the key until tapped once again. */
|
||||
// #define ONESHOT_TIMEOUT 5000
|
||||
|
||||
// COMBO OPTIONS
|
||||
#define COMBO_TERM 40
|
||||
#define COMBO_TERM_PER_COMBO
|
||||
#define COMBO_COUNT 4
|
||||
14
users/oco9oco/user_rules.mk
Normal file
14
users/oco9oco/user_rules.mk
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
CONSOLE_ENABLE = no
|
||||
COMMAND_ENABME = no
|
||||
OLED_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
|
||||
Loading…
Reference in a new issue