overhaul current kemonine keymaps to include accelleration tweaks for usability
This commit is contained in:
parent
cf8237e523
commit
44b1fae401
|
@ -12,3 +12,4 @@
|
|||
#define MOUSEKEY_WHEEL_INTERVAL 50
|
||||
#define MOUSEKEY_WHEEL_TIME_TO_MAX 20
|
||||
#define MOUSEKEY_WHEEL_MAX_SPEED 10
|
||||
#define MK_COMBINED
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -21,6 +21,23 @@ enum {
|
|||
DOUBLE_TAP
|
||||
};
|
||||
|
||||
enum {
|
||||
ACCEL_0 = 0,
|
||||
ACCEL_1 = 1,
|
||||
ACCEL_2 = 2,
|
||||
};
|
||||
enum {
|
||||
ACCEL = SAFE_RANGE,
|
||||
ACCEL_ADJ,
|
||||
};
|
||||
static uint8_t acceleration_level = ACCEL_0;
|
||||
void change_accel(void) {
|
||||
acceleration_level++;
|
||||
if (acceleration_level > ACCEL_2) {
|
||||
acceleration_level = ACCEL_0;
|
||||
}
|
||||
}
|
||||
|
||||
enum td_keycodes {
|
||||
LAYERS // Our example key: `MOD(1)` when held, `TG(2)` when tapped. Add additional keycodes for each tapdance.
|
||||
};
|
||||
|
@ -43,8 +60,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
[2] = LAYOUT_65_ansi(KC_ESC, KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, LCTL(LALT(KC_TAB)), KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, KC_NO, KC_NO, KC_MS_WH_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, LGUI(KC_DOWN), KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_NO, KC_NO, KC_MS_WH_LEFT, KC_MS_WH_RIGHT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_LSFT, KC_NO, KC_X, KC_C, KC_V, KC_NO, KC_NO, KC_MS_WH_DOWN, KC_NO, KC_NO, KC_NO, KC_RSFT, KC_NO, KC_NO,
|
||||
KC_LCTL, KC_NO, TG(2), KC_NO, TG(2), KC_RALT, KC_RCTL, KC_NO, KC_NO, KC_NO),
|
||||
ACCEL, KC_NO, KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_WH_DOWN, KC_NO, KC_NO, KC_NO, KC_RSFT, KC_NO, KC_NO,
|
||||
KC_LCTL, KC_NO, KC_LALT, ACCEL_ADJ, TG(2), KC_RALT, KC_RCTL, KC_NO, KC_NO, KC_NO),
|
||||
};
|
||||
|
||||
// Customized HSV values for layer highlights
|
||||
|
@ -93,6 +110,46 @@ void matrix_init_user(void) {
|
|||
void matrix_scan_user(void) {
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case ACCEL:
|
||||
if (record->event.pressed) {
|
||||
switch(acceleration_level) {
|
||||
case ACCEL_0:
|
||||
register_code16(KC_ACL0);
|
||||
break;
|
||||
case ACCEL_1:
|
||||
register_code16(KC_ACL1);
|
||||
break;
|
||||
case ACCEL_2:
|
||||
register_code16(KC_ACL2);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
switch(acceleration_level) {
|
||||
case ACCEL_0:
|
||||
unregister_code16(KC_ACL0);
|
||||
break;
|
||||
case ACCEL_1:
|
||||
unregister_code16(KC_ACL1);
|
||||
break;
|
||||
case ACCEL_2:
|
||||
unregister_code16(KC_ACL2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return false; // Skip all further processing of this key
|
||||
case ACCEL_ADJ:
|
||||
if (record->event.pressed) {
|
||||
}
|
||||
else {
|
||||
change_accel();
|
||||
}
|
||||
default:
|
||||
return true; // Process all other keycodes normally
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t cur_dance(qk_tap_dance_state_t *state) {
|
||||
if (state->count == 1) {
|
||||
if (!state->pressed) return SINGLE_TAP;
|
||||
|
|
|
@ -98,15 +98,11 @@
|
|||
],
|
||||
[
|
||||
{
|
||||
"a": 6,
|
||||
"w": 2.25
|
||||
},
|
||||
"Shift",
|
||||
{
|
||||
"a": 7
|
||||
},
|
||||
"",
|
||||
"Accel",
|
||||
"",
|
||||
"Esc",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
|
@ -148,8 +144,8 @@
|
|||
"a": 7,
|
||||
"w": 6.25
|
||||
},
|
||||
"",
|
||||
"",
|
||||
"Accel Mode",
|
||||
"TG(2)",
|
||||
"Alt",
|
||||
"Ctrl",
|
||||
"",
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 22 KiB |
|
@ -10,3 +10,4 @@
|
|||
#define MOUSEKEY_WHEEL_INTERVAL 50
|
||||
#define MOUSEKEY_WHEEL_TIME_TO_MAX 20
|
||||
#define MOUSEKEY_WHEEL_MAX_SPEED 10
|
||||
#define MK_COMBINED
|
||||
|
|
|
@ -45,6 +45,23 @@ enum {
|
|||
DOUBLE_TAP
|
||||
};
|
||||
|
||||
enum {
|
||||
ACCEL_0 = 0,
|
||||
ACCEL_1 = 1,
|
||||
ACCEL_2 = 2,
|
||||
};
|
||||
enum {
|
||||
ACCEL = SAFE_RANGE,
|
||||
ACCEL_ADJ,
|
||||
};
|
||||
static uint8_t acceleration_level = ACCEL_0;
|
||||
void change_accel(void) {
|
||||
acceleration_level++;
|
||||
if (acceleration_level > ACCEL_2) {
|
||||
acceleration_level = ACCEL_0;
|
||||
}
|
||||
}
|
||||
|
||||
enum td_keycodes {
|
||||
LAYERS // Our example key: `MOD(1)` when held, `TG(2)` when tapped. Add additional keycodes for each tapdance.
|
||||
};
|
||||
|
@ -73,8 +90,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
[2] = LAYOUT_65_ansi_blocker(KC_ESC, KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, LCTL(LALT(KC_TAB)), KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, KC_NO, KC_NO, KC_MS_WH_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, LGUI(KC_DOWN), KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_NO, KC_NO, KC_MS_WH_LEFT, KC_MS_WH_RIGHT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_LSFT, KC_NO, KC_X, KC_C, KC_V, KC_NO, KC_NO, KC_MS_WH_DOWN, KC_NO, KC_NO, KC_NO, KC_RSFT, KC_NO, KC_NO,
|
||||
KC_LCTL, KC_NO, TG(2), KC_NO, TG(2), KC_NO, KC_NO, KC_NO, KC_NO),
|
||||
ACCEL, KC_NO, KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_WH_DOWN, KC_NO, KC_NO, KC_NO, KC_RSFT, KC_NO, KC_NO,
|
||||
KC_LCTL, KC_NO, KC_LALT, ACCEL_ADJ, TG(2), KC_NO, KC_NO, KC_NO, KC_NO),
|
||||
};
|
||||
|
||||
const uint8_t PROGMEM ledcolors[][DRIVER_LED_TOTAL][3] = {
|
||||
|
@ -94,8 +111,8 @@ const uint8_t PROGMEM ledcolors[][DRIVER_LED_TOTAL][3] = {
|
|||
{RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR},
|
||||
{RGB_KMN_NO_COLOR}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR},
|
||||
{RGB_KMN_NO_COLOR}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR},
|
||||
{RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR},
|
||||
{RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR},
|
||||
{RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR},
|
||||
{RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR},
|
||||
// Underglow == 38 LEDS
|
||||
{RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL},
|
||||
{RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL},
|
||||
|
@ -117,6 +134,46 @@ void matrix_init_user(void) {
|
|||
void matrix_scan_user(void) {
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case ACCEL:
|
||||
if (record->event.pressed) {
|
||||
switch(acceleration_level) {
|
||||
case ACCEL_0:
|
||||
register_code16(KC_ACL0);
|
||||
break;
|
||||
case ACCEL_1:
|
||||
register_code16(KC_ACL1);
|
||||
break;
|
||||
case ACCEL_2:
|
||||
register_code16(KC_ACL2);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
switch(acceleration_level) {
|
||||
case ACCEL_0:
|
||||
unregister_code16(KC_ACL0);
|
||||
break;
|
||||
case ACCEL_1:
|
||||
unregister_code16(KC_ACL1);
|
||||
break;
|
||||
case ACCEL_2:
|
||||
unregister_code16(KC_ACL2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return false; // Skip all further processing of this key
|
||||
case ACCEL_ADJ:
|
||||
if (record->event.pressed) {
|
||||
}
|
||||
else {
|
||||
change_accel();
|
||||
}
|
||||
default:
|
||||
return true; // Process all other keycodes normally
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t cur_dance(qk_tap_dance_state_t *state) {
|
||||
if (state->count == 1) {
|
||||
if (!state->pressed) return SINGLE_TAP;
|
||||
|
@ -207,81 +264,3 @@ void rgb_matrix_indicators_user(void) {
|
|||
rgb_matrix_set_color(CAPS_LED, RGB_KMN_CYAN_HILIGHT);
|
||||
}
|
||||
}
|
||||
|
||||
#define MODS_SHIFT (get_mods() & MOD_BIT(KC_LSHIFT) || get_mods() & MOD_BIT(KC_RSHIFT))
|
||||
#define MODS_CTRL (get_mods() & MOD_BIT(KC_LCTL) || get_mods() & MOD_BIT(KC_RCTRL))
|
||||
#define MODS_ALT (get_mods() & MOD_BIT(KC_LALT) || get_mods() & MOD_BIT(KC_RALT))
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
static uint32_t key_timer;
|
||||
|
||||
switch (keycode) {
|
||||
case U_T_AUTO:
|
||||
if (record->event.pressed && MODS_SHIFT && MODS_CTRL) {
|
||||
TOGGLE_FLAG_AND_PRINT(usb_extra_manual, "USB extra port manual mode");
|
||||
}
|
||||
return false;
|
||||
case U_T_AGCR:
|
||||
if (record->event.pressed && MODS_SHIFT && MODS_CTRL) {
|
||||
TOGGLE_FLAG_AND_PRINT(usb_gcr_auto, "USB GCR auto mode");
|
||||
}
|
||||
return false;
|
||||
case DBG_TOG:
|
||||
if (record->event.pressed) {
|
||||
TOGGLE_FLAG_AND_PRINT(debug_enable, "Debug mode");
|
||||
}
|
||||
return false;
|
||||
case DBG_MTRX:
|
||||
if (record->event.pressed) {
|
||||
TOGGLE_FLAG_AND_PRINT(debug_matrix, "Debug matrix");
|
||||
}
|
||||
return false;
|
||||
case DBG_KBD:
|
||||
if (record->event.pressed) {
|
||||
TOGGLE_FLAG_AND_PRINT(debug_keyboard, "Debug keyboard");
|
||||
}
|
||||
return false;
|
||||
case DBG_MOU:
|
||||
if (record->event.pressed) {
|
||||
TOGGLE_FLAG_AND_PRINT(debug_mouse, "Debug mouse");
|
||||
}
|
||||
return false;
|
||||
case MD_BOOT:
|
||||
if (record->event.pressed) {
|
||||
key_timer = timer_read32();
|
||||
} else {
|
||||
if (timer_elapsed32(key_timer) >= 500) {
|
||||
reset_keyboard();
|
||||
}
|
||||
}
|
||||
return false;
|
||||
case RGB_TOG:
|
||||
if (record->event.pressed) {
|
||||
switch (rgb_matrix_get_flags()) {
|
||||
case LED_FLAG_ALL: {
|
||||
rgb_matrix_set_flags(LED_FLAG_KEYLIGHT);
|
||||
rgb_matrix_set_color_all(0, 0, 0);
|
||||
}
|
||||
break;
|
||||
case LED_FLAG_KEYLIGHT: {
|
||||
rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
|
||||
rgb_matrix_set_color_all(0, 0, 0);
|
||||
}
|
||||
break;
|
||||
case LED_FLAG_UNDERGLOW: {
|
||||
rgb_matrix_set_flags(LED_FLAG_NONE);
|
||||
rgb_matrix_disable_noeeprom();
|
||||
}
|
||||
break;
|
||||
default: {
|
||||
rgb_matrix_set_flags(LED_FLAG_ALL);
|
||||
rgb_matrix_enable_noeeprom();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
default:
|
||||
return true; //Process all other keycodes normally
|
||||
}
|
||||
}
|
||||
|
|
|
@ -67,8 +67,8 @@
|
|||
},
|
||||
"",
|
||||
"",
|
||||
"Left Click",
|
||||
"Right Click",
|
||||
"Wheel Left",
|
||||
"Wheel Right",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
|
@ -80,15 +80,11 @@
|
|||
],
|
||||
[
|
||||
{
|
||||
"a": 6,
|
||||
"w": 2.25
|
||||
},
|
||||
"Shift",
|
||||
{
|
||||
"a": 7
|
||||
},
|
||||
"",
|
||||
"Accel",
|
||||
"",
|
||||
"Esc",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
|
@ -106,7 +102,7 @@
|
|||
{
|
||||
"w": 1.75
|
||||
},
|
||||
"",
|
||||
"Shift",
|
||||
"",
|
||||
""
|
||||
],
|
||||
|
@ -130,11 +126,11 @@
|
|||
"a": 7,
|
||||
"w": 6.25
|
||||
},
|
||||
"",
|
||||
"Accel Mode",
|
||||
{
|
||||
"w": 1.25
|
||||
},
|
||||
"",
|
||||
"TG(2)",
|
||||
{
|
||||
"w": 1.25
|
||||
},
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 23 KiB |
Binary file not shown.
|
@ -12,3 +12,4 @@
|
|||
#define MOUSEKEY_WHEEL_INTERVAL 50
|
||||
#define MOUSEKEY_WHEEL_TIME_TO_MAX 20
|
||||
#define MOUSEKEY_WHEEL_MAX_SPEED 10
|
||||
#define MK_COMBINED
|
||||
|
|
|
@ -21,6 +21,23 @@ enum {
|
|||
DOUBLE_TAP
|
||||
};
|
||||
|
||||
enum {
|
||||
ACCEL_0 = 0,
|
||||
ACCEL_1 = 1,
|
||||
ACCEL_2 = 2,
|
||||
};
|
||||
enum {
|
||||
ACCEL = SAFE_RANGE,
|
||||
ACCEL_ADJ,
|
||||
};
|
||||
static uint8_t acceleration_level = ACCEL_0;
|
||||
void change_accel(void) {
|
||||
acceleration_level++;
|
||||
if (acceleration_level > ACCEL_2) {
|
||||
acceleration_level = ACCEL_0;
|
||||
}
|
||||
}
|
||||
|
||||
enum td_keycodes {
|
||||
LAYERS // Our example key: `MOD(1)` when held, `TG(2)` when tapped. Add additional keycodes for each tapdance.
|
||||
};
|
||||
|
@ -43,8 +60,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
[2] = LAYOUT_65_ansi(KC_ESC, KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, LCTL(LALT(KC_TAB)), KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, KC_NO, KC_NO, KC_MS_WH_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, LGUI(KC_DOWN), KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_NO, KC_NO, KC_MS_WH_LEFT, KC_MS_WH_RIGHT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_LSFT, KC_NO, KC_X, KC_C, KC_V, KC_NO, KC_NO, KC_MS_WH_DOWN, KC_NO, KC_NO, KC_NO, KC_RSFT, KC_NO, KC_NO,
|
||||
KC_LCTL, KC_NO, TG(2), KC_NO, TG(2), KC_RALT, KC_RCTL, KC_NO, KC_NO, KC_NO),
|
||||
ACCEL, KC_NO, KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_WH_DOWN, KC_NO, KC_NO, KC_NO, KC_RSFT, KC_NO, KC_NO,
|
||||
KC_LCTL, KC_NO, KC_LALT, ACCEL_ADJ, TG(2), KC_RALT, KC_RCTL, KC_NO, KC_NO, KC_NO),
|
||||
};
|
||||
|
||||
// Customized HSV values for layer highlights
|
||||
|
@ -93,6 +110,46 @@ void matrix_init_user(void) {
|
|||
void matrix_scan_user(void) {
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case ACCEL:
|
||||
if (record->event.pressed) {
|
||||
switch(acceleration_level) {
|
||||
case ACCEL_0:
|
||||
register_code16(KC_ACL0);
|
||||
break;
|
||||
case ACCEL_1:
|
||||
register_code16(KC_ACL1);
|
||||
break;
|
||||
case ACCEL_2:
|
||||
register_code16(KC_ACL2);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
switch(acceleration_level) {
|
||||
case ACCEL_0:
|
||||
unregister_code16(KC_ACL0);
|
||||
break;
|
||||
case ACCEL_1:
|
||||
unregister_code16(KC_ACL1);
|
||||
break;
|
||||
case ACCEL_2:
|
||||
unregister_code16(KC_ACL2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return false; // Skip all further processing of this key
|
||||
case ACCEL_ADJ:
|
||||
if (record->event.pressed) {
|
||||
}
|
||||
else {
|
||||
change_accel();
|
||||
}
|
||||
default:
|
||||
return true; // Process all other keycodes normally
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t cur_dance(qk_tap_dance_state_t *state) {
|
||||
if (state->count == 1) {
|
||||
if (!state->pressed) return SINGLE_TAP;
|
||||
|
|
|
@ -10,3 +10,4 @@
|
|||
#define MOUSEKEY_WHEEL_INTERVAL 50
|
||||
#define MOUSEKEY_WHEEL_TIME_TO_MAX 20
|
||||
#define MOUSEKEY_WHEEL_MAX_SPEED 10
|
||||
#define MK_COMBINED
|
||||
|
|
|
@ -45,6 +45,23 @@ enum {
|
|||
DOUBLE_TAP
|
||||
};
|
||||
|
||||
enum {
|
||||
ACCEL_0 = 0,
|
||||
ACCEL_1 = 1,
|
||||
ACCEL_2 = 2,
|
||||
};
|
||||
enum {
|
||||
ACCEL = SAFE_RANGE,
|
||||
ACCEL_ADJ,
|
||||
};
|
||||
static uint8_t acceleration_level = ACCEL_0;
|
||||
void change_accel(void) {
|
||||
acceleration_level++;
|
||||
if (acceleration_level > ACCEL_2) {
|
||||
acceleration_level = ACCEL_0;
|
||||
}
|
||||
}
|
||||
|
||||
enum td_keycodes {
|
||||
LAYERS // Our example key: `MOD(1)` when held, `TG(2)` when tapped. Add additional keycodes for each tapdance.
|
||||
};
|
||||
|
@ -73,8 +90,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
[2] = LAYOUT_65_ansi_blocker(KC_ESC, KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, LCTL(LALT(KC_TAB)), KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, KC_NO, KC_NO, KC_MS_WH_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, LGUI(KC_DOWN), KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_NO, KC_NO, KC_MS_WH_LEFT, KC_MS_WH_RIGHT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_LSFT, KC_NO, KC_X, KC_C, KC_V, KC_NO, KC_NO, KC_MS_WH_DOWN, KC_NO, KC_NO, KC_NO, KC_RSFT, KC_NO, KC_NO,
|
||||
KC_LCTL, KC_NO, TG(2), KC_NO, TG(2), KC_NO, KC_NO, KC_NO, KC_NO),
|
||||
ACCEL, KC_NO, KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_WH_DOWN, KC_NO, KC_NO, KC_NO, KC_RSFT, KC_NO, KC_NO,
|
||||
KC_LCTL, KC_NO, KC_LALT, ACCEL_ADJ, TG(2), KC_NO, KC_NO, KC_NO, KC_NO),
|
||||
};
|
||||
|
||||
const uint8_t PROGMEM ledcolors[][DRIVER_LED_TOTAL][3] = {
|
||||
|
@ -94,8 +111,8 @@ const uint8_t PROGMEM ledcolors[][DRIVER_LED_TOTAL][3] = {
|
|||
{RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR},
|
||||
{RGB_KMN_NO_COLOR}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR},
|
||||
{RGB_KMN_NO_COLOR}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR},
|
||||
{RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR},
|
||||
{RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR},
|
||||
{RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR},
|
||||
{RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR}, {RGB_KMN_NO_COLOR},
|
||||
// Underglow == 38 LEDS
|
||||
{RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL},
|
||||
{RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL}, {RGB_KMN_PRPL},
|
||||
|
@ -117,6 +134,46 @@ void matrix_init_user(void) {
|
|||
void matrix_scan_user(void) {
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case ACCEL:
|
||||
if (record->event.pressed) {
|
||||
switch(acceleration_level) {
|
||||
case ACCEL_0:
|
||||
register_code16(KC_ACL0);
|
||||
break;
|
||||
case ACCEL_1:
|
||||
register_code16(KC_ACL1);
|
||||
break;
|
||||
case ACCEL_2:
|
||||
register_code16(KC_ACL2);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
switch(acceleration_level) {
|
||||
case ACCEL_0:
|
||||
unregister_code16(KC_ACL0);
|
||||
break;
|
||||
case ACCEL_1:
|
||||
unregister_code16(KC_ACL1);
|
||||
break;
|
||||
case ACCEL_2:
|
||||
unregister_code16(KC_ACL2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return false; // Skip all further processing of this key
|
||||
case ACCEL_ADJ:
|
||||
if (record->event.pressed) {
|
||||
}
|
||||
else {
|
||||
change_accel();
|
||||
}
|
||||
default:
|
||||
return true; // Process all other keycodes normally
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t cur_dance(qk_tap_dance_state_t *state) {
|
||||
if (state->count == 1) {
|
||||
if (!state->pressed) return SINGLE_TAP;
|
||||
|
@ -207,81 +264,3 @@ void rgb_matrix_indicators_user(void) {
|
|||
rgb_matrix_set_color(CAPS_LED, RGB_KMN_CYAN_HILIGHT);
|
||||
}
|
||||
}
|
||||
|
||||
#define MODS_SHIFT (get_mods() & MOD_BIT(KC_LSHIFT) || get_mods() & MOD_BIT(KC_RSHIFT))
|
||||
#define MODS_CTRL (get_mods() & MOD_BIT(KC_LCTL) || get_mods() & MOD_BIT(KC_RCTRL))
|
||||
#define MODS_ALT (get_mods() & MOD_BIT(KC_LALT) || get_mods() & MOD_BIT(KC_RALT))
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
static uint32_t key_timer;
|
||||
|
||||
switch (keycode) {
|
||||
case U_T_AUTO:
|
||||
if (record->event.pressed && MODS_SHIFT && MODS_CTRL) {
|
||||
TOGGLE_FLAG_AND_PRINT(usb_extra_manual, "USB extra port manual mode");
|
||||
}
|
||||
return false;
|
||||
case U_T_AGCR:
|
||||
if (record->event.pressed && MODS_SHIFT && MODS_CTRL) {
|
||||
TOGGLE_FLAG_AND_PRINT(usb_gcr_auto, "USB GCR auto mode");
|
||||
}
|
||||
return false;
|
||||
case DBG_TOG:
|
||||
if (record->event.pressed) {
|
||||
TOGGLE_FLAG_AND_PRINT(debug_enable, "Debug mode");
|
||||
}
|
||||
return false;
|
||||
case DBG_MTRX:
|
||||
if (record->event.pressed) {
|
||||
TOGGLE_FLAG_AND_PRINT(debug_matrix, "Debug matrix");
|
||||
}
|
||||
return false;
|
||||
case DBG_KBD:
|
||||
if (record->event.pressed) {
|
||||
TOGGLE_FLAG_AND_PRINT(debug_keyboard, "Debug keyboard");
|
||||
}
|
||||
return false;
|
||||
case DBG_MOU:
|
||||
if (record->event.pressed) {
|
||||
TOGGLE_FLAG_AND_PRINT(debug_mouse, "Debug mouse");
|
||||
}
|
||||
return false;
|
||||
case MD_BOOT:
|
||||
if (record->event.pressed) {
|
||||
key_timer = timer_read32();
|
||||
} else {
|
||||
if (timer_elapsed32(key_timer) >= 500) {
|
||||
reset_keyboard();
|
||||
}
|
||||
}
|
||||
return false;
|
||||
case RGB_TOG:
|
||||
if (record->event.pressed) {
|
||||
switch (rgb_matrix_get_flags()) {
|
||||
case LED_FLAG_ALL: {
|
||||
rgb_matrix_set_flags(LED_FLAG_KEYLIGHT);
|
||||
rgb_matrix_set_color_all(0, 0, 0);
|
||||
}
|
||||
break;
|
||||
case LED_FLAG_KEYLIGHT: {
|
||||
rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
|
||||
rgb_matrix_set_color_all(0, 0, 0);
|
||||
}
|
||||
break;
|
||||
case LED_FLAG_UNDERGLOW: {
|
||||
rgb_matrix_set_flags(LED_FLAG_NONE);
|
||||
rgb_matrix_disable_noeeprom();
|
||||
}
|
||||
break;
|
||||
default: {
|
||||
rgb_matrix_set_flags(LED_FLAG_ALL);
|
||||
rgb_matrix_enable_noeeprom();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
default:
|
||||
return true; //Process all other keycodes normally
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue