qmk_firmware/quantum
Andre Brait 7f475b590a
Tweak OS detect, add OS_DETECTION_SINGLE_REPORT (#24379)
* Default OS_DETECTION_DEBOUNCE bumped from 200ms to 250ms
* Add OS_DETECTION_SINGLE_REPORT to prevent undesired multiple reports
* Prevents random stability issues on ARM MacBooks after switching via KVM
* Works for every device I could test, including ARM MacBooks
* Disabled by default to keep current behavior
* Add Troubleshooting section on documentation
* Tweak reset logic to prevent a freeze with some KVMs

The USB stack on ARM MacBooks is more similar to that of iOS and,
for some reason, it seems to like sending packets that influence
the OS detection and results in a second OS_MACOS report being sent
at a random period of time after plugging the keyboard back. This
does not always happen and the consequences of this vary based on
what the user is doing in the callback, but since this is not
obvious and it's hard to debug, I've decided to add a flag for
those affected by such issue. The stability issue I had in mine was
a combination of factors and I found the actual cause being my own
bad math when changing the default layer, but this change alone is
also confirmed to fix it. Lastly, soem KVMs seem to leave the USB
controlled in a suspended state when cold-booting Windows, meaning
the keyboard would hang and the reset logic would not work. This
tunes it so that it can get out of such state. Also retested for
compatibility with my old KVM to ensure the logic works for both.
2024-10-06 21:50:39 +13:00
..
audio [Audio] Add support for audio shutdown pin (#22731) 2024-03-06 22:02:37 +11:00
backlight Update GPIO macro usages in core (#23093) 2024-02-18 17:08:27 +11:00
bootmagic Removal of bootmagic lite terminology (#22979) 2024-02-17 12:27:34 +00:00
debounce Update asymmetric debounce code comment (#22981) 2024-01-30 19:34:45 -08:00
encoder/tests Rename encoder pins defines (#24003) 2024-07-03 17:18:27 +10:00
keymap_extras add farsi keymap extras (#23650) 2024-06-20 16:12:16 -07:00
led_matrix WS2812 API rework (#24364) 2024-10-06 21:01:07 +13:00
logging Remove arm_atsam platform (#24337) 2024-09-02 03:48:17 +01:00
midi
os_detection/tests Fix make clean test:os_detection (#23112) 2024-02-19 19:48:59 +00:00
painter Add LD7032 support to QP. (#20828) 2024-09-18 21:44:33 +10:00
pointing_device Normalise mouse keycodes (#23975) 2024-07-03 18:35:54 +10:00
process_keycode Add combo key repress feature (#22858) 2024-09-05 23:27:20 -07:00
rgb_matrix WS2812 API rework (#24364) 2024-10-06 21:01:07 +13:00
rgblight WS2812 API rework (#24364) 2024-10-06 21:01:07 +13:00
send_string Insert delay between shifted chars in send_string_with_delay for AVR (#23673) 2024-05-18 21:37:33 -07:00
sequencer
split_common Merge remote-tracking branch 'origin/master' into develop 2024-05-17 22:00:13 +00:00
unicode
wear_leveling
action.c Normalise mouse keycodes (#23975) 2024-07-03 18:35:54 +10:00
action.h
action_code.h
action_layer.c
action_layer.h
action_tapping.c
action_tapping.h
action_util.c Separate 6KRO and NKRO report structs (#22267) 2023-10-23 15:43:46 +11:00
action_util.h Separate 6KRO and NKRO report structs (#22267) 2023-10-23 15:43:46 +11:00
basic_profiling.h Remove arm_atsam platform (#24337) 2024-09-02 03:48:17 +01:00
bitwise.c
bitwise.h
caps_word.c
caps_word.h
color.c WS2812 API rework (#24364) 2024-10-06 21:01:07 +13:00
color.h WS2812 API rework (#24364) 2024-10-06 21:01:07 +13:00
command.c V-USB: Fix GET_IDLE/SET_IDLE (#22332) 2023-10-27 12:21:13 +11:00
command.h
crc.c
crc.h
debounce.h
deferred_exec.c [Bugfix] Manipulate deferred executor slot only if tokens match (#22722) 2023-12-21 09:32:19 +11:00
deferred_exec.h
digitizer.c
digitizer.h
dip_switch.c Update GPIO macro usages in core (#23093) 2024-02-18 17:08:27 +11:00
dip_switch.h Keymap introspection for Dip Switches (#22543) 2023-12-11 23:06:18 +00:00
dynamic_keymap.c
dynamic_keymap.h
eeconfig.c EEPROM: Don't erase if we don't have to. Adding eeprom_driver_format abstraction. (#18332) 2024-05-28 12:49:55 +01:00
eeconfig.h Infer eeconfig identifiers (#22135) 2024-03-14 21:45:03 +11:00
encoder.c Normalise mouse keycodes (#23975) 2024-07-03 18:35:54 +10:00
encoder.h Rename encoder pins defines (#24003) 2024-07-03 17:18:27 +10:00
haptic.c Update GPIO macro usages in core (#23093) 2024-02-18 17:08:27 +11:00
haptic.h Update GPIO macro usages in core (#23093) 2024-02-18 17:08:27 +11:00
joystick.c Update GPIO macro usages in core (#23093) 2024-02-18 17:08:27 +11:00
joystick.h Fix joystick initialization (#22953) 2024-02-17 01:14:46 +11:00
keyboard.c Rename process_{led,rgb}_matrix() (#23422) 2024-04-05 15:43:52 +01:00
keyboard.h Keymap introspection for Dip Switches (#22543) 2023-12-11 23:06:18 +00:00
keycode.h Normalise mouse keycodes (#23975) 2024-07-03 18:35:54 +10:00
keycode_config.c Begin removal of bootmagic lite terminology (#22970) 2024-01-28 22:51:58 +00:00
keycode_config.h
keycodes.h Add new connection keycodes for Bluetooth, 2.4GHz. (#24251) 2024-08-27 10:52:23 +10:00
keymap_common.c Keymap introspection for Dip Switches (#22543) 2023-12-11 23:06:18 +00:00
keymap_common.h
keymap_introspection.c Add support for key override introspection. (#24120) 2024-07-16 09:22:17 +10:00
keymap_introspection.h Add support for key override introspection. (#24120) 2024-07-16 09:22:17 +10:00
leader.c
leader.h
led.c Remove deprecated led_set_user (#23979) 2024-06-22 09:10:58 +01:00
led.h Remove deprecated led_set_user (#23979) 2024-06-22 09:10:58 +01:00
led_tables.c
led_tables.h
main.c Refactor vusb to protocol use pre/post task (#14944) 2024-03-14 21:45:12 +11:00
matrix.c Update atomic GPIO macros in keyboard custom matrix (#23796) 2024-07-13 18:41:05 +10:00
matrix.h
matrix_common.c
modifiers.h
mousekey.c Enhance overlapping mouse keys control (#23341) 2024-08-19 03:18:28 +01:00
mousekey.h Enhance overlapping mouse keys control (#23341) 2024-08-19 03:18:28 +01:00
os_detection.c Tweak OS detect, add OS_DETECTION_SINGLE_REPORT (#24379) 2024-10-06 21:50:39 +13:00
os_detection.h OS Detection - Entire file should not be wrapped with ifdef (#23108) 2024-02-19 15:37:51 +00:00
pointing_device_internal.h
programmable_button.c
programmable_button.h
quantum.c Add easier way to set default single layer (#24376) 2024-10-06 21:39:21 +13:00
quantum.h Add easier way to set default single layer (#24376) 2024-10-06 21:39:21 +13:00
quantum_keycodes.h Align location of tap dance keycode (#22742) 2023-12-24 06:52:41 +00:00
quantum_keycodes_legacy.h Add new connection keycodes for Bluetooth, 2.4GHz. (#24251) 2024-08-27 10:52:23 +10:00
raw_hid.h
repeat_key.c Normalise mouse keycodes (#23975) 2024-07-03 18:35:54 +10:00
repeat_key.h
ring_buffer.h
secure.c
secure.h
steno_keycodes.h Remove requirement for keymap_steno.h include in keymaps (#22423) 2023-11-12 18:25:46 +11:00
sync_timer.c
sync_timer.h
tri_layer.c
tri_layer.h
util.h Add simpler method for relocating functions to RAM. (#21804) 2023-11-22 12:08:52 +11:00
variable_trace.c
variable_trace.h
via.c refactor: move default RGB/LED matrix #defines (#21938) 2023-09-28 11:51:18 +01:00
via.h
virtser.h
wpm.c
wpm.h