倉庫指標
- Star
- (20,368 star)
- PR 合併指標
- (平均合併 20天 9小時) (30 天內合併 27 個 PR)
描述
Describe the Bug
everything is compiles and flashes just fine, but after pressing the button - some OS things happen (muting sound and volume up (f13 f14)) but with shift (regular kc in upper layer) it's ok
System Information
Keyboard: dz60
Operating system: Arch Linux Linux 5.17.4-arch1-1 KDE 5.93.0 / Plasma 5.24.4
qmk doctor output:
➜ ~ qmk doctor
Ψ QMK Doctor is checking your environment.
Ψ CLI version: 1.0.0
Ψ QMK home: /home/chibo/qmk_firmware
Ψ Detected Linux.
Ψ Git branch: master
Ψ Repo version: 0.16.9
⚠ Git has unstashed/uncommitted changes.
Ψ All dependencies are installed.
Ψ Found arm-none-eabi-gcc version 11.3.0
Ψ Found avr-gcc version 11.3.0
⚠ We do not recommend avr-gcc newer than 8. Downgrading to 8.x is recommended.
Ψ Found avrdude version 6.4
Ψ Found dfu-util version 0.11
Ψ Found dfu-programmer version 0.7.2
Ψ Submodules are up to date.
Ψ QMK is ready to go, but minor problems were found
➜ ~
Any keyboard related software installed? no
Additional Context
yeah code is tough, that was hard work, mostly of ridingqwerty (https://github.com/qmk/qmk_firmware/issues/7839)
i see some progress, so i revisit it later, but if you help me organize it more simple way (like [declaration, [lower, upper]] w/o that low-level parametric stuff tap_code16(alt_keymap[1][keycode - AKM_1_8]); - i would be much appreciated
enum custom_keycodes {
RUS_LAT = SAFE_RANGE, M_ARROW_RETURN, M_ARROW_FUNC, M_ASSIGN,
AKM_1_8, AKM_1_9, MY_F13, MY_F14, AKM_2_22, AKM_2_23, AKM_3_11, AKM_4_11, M_CYR_ER,
};
// enum shifted_keycodes {AKM_1_8, AKM_1_9, MY_F13, MY_F14, AKM_2_22, AKM_2_23, AKM_3_11, AKM_4_11, M_CYR_ER};
uint16_t alt_keymap[2][10] = {
// AKM_1_8 , AKM_1_9 , MY_F13 , MY_F14 , AKM_2_22 , AKM_2_23 , AKM_3_11 , AKM_4_11 , M_CYR_ER
{KC_ASTERISK , KC_LEFT_PAREN , M_ARROW_FUNC, M_ARROW_RETURN, KC_LBRACKET, KC_LEFT_CURLY_BRACE , KC_COLON , KC_SEMICOLON, KC_M },
{KC_AMPERSAND, KC_RIGHT_PAREN, KC_BSLASH , KC_PIPE , KC_RBRACKET, KC_RIGHT_CURLY_BRACE, KC_SCOLON, KC_BACKSLASH, KC_RBRACKET}
};
uint16_t key_timer;
bool process_record_user(uint16_t keycode, keyrecord_t *record)
{
switch (keycode)
{
case RUS_LAT:
if (record->event.pressed)
{
key_timer = timer_read();
register_mods(MOD_RALT);
}
else
{
unregister_mods(MOD_RALT);
if (timer_elapsed(key_timer) < 500)
{
layer_invert(RUS);
tap_code16(C(G(KC_NO)));
}
}
return false;
break;
uint8_t mod_state = get_mods();
case AKM_1_8 ... M_CYR_ER:
if (record->event.pressed)
{
mod_state = get_mods() & MOD_MASK_SHIFT;
clear_mods();
if(mod_state)
{
tap_code16(alt_keymap[1][keycode - AKM_1_8]);
}
else
{
tap_code16(alt_keymap[0][keycode - AKM_1_8]);
}
set_mods(mod_state);
}
return false;
case M_ARROW_FUNC:
if (record->event.pressed) {
SEND_STRING("=>");
}
break;
case M_ARROW_RETURN:
if (record->event.pressed) {
SEND_STRING("->");
}
break;
case M_ASSIGN:
if (record->event.pressed) {
SEND_STRING(":=");
}
break;
}
return true;
};