qmk/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 Unify MIDI note calculation with the audio feature's algorithm (#21588) 2023-07-27 16:14:34 -07:00
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 Unicode, Unicodemap and UCIS refactor (#21659) 2023-08-27 13:30:19 +10:00
wear_leveling
action_code.h
action_layer.c
action_layer.h process_keycode: remove direct quantum.h includes (#21486) 2023-07-11 17:07:24 +10:00
action_tapping.c Improve test invocation, fix Retro Shift bugs, and add Auto+Retro Shift test cases (#15889) 2023-09-25 12:45:49 +10:00
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
action.c Normalise mouse keycodes (#23975) 2024-07-03 18:35:54 +10:00
action.h [Core] Add Repeat Key ("repeat last key") as a core feature. (#19700) 2023-05-20 22:35:06 +10: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 debounce: remove direct quantum.h includes (#21480) 2023-07-09 02:05:20 +01:00
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 Fix compilation of dynamic_keymap.c without VIA (#21858) 2023-08-29 14:28:09 +01:00
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_config.c Begin removal of bootmagic lite terminology (#22970) 2024-01-28 22:51:58 +00:00
keycode_config.h [Bug] Realign and size check EECONFIG structures (#20541) 2023-05-08 10:56:03 -07:00
keycode.h Normalise mouse keycodes (#23975) 2024-07-03 18:35:54 +10:00
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_tables.c
led_tables.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
main.c Refactor vusb to protocol use pre/post task (#14944) 2024-03-14 21:45:12 +11:00
matrix_common.c quantum: remove direct quantum.h includes (#21507) 2023-07-16 23:42:56 +10:00
matrix.c Update atomic GPIO macros in keyboard custom matrix (#23796) 2024-07-13 18:41:05 +10:00
matrix.h
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_keycodes_legacy.h Add new connection keycodes for Bluetooth, 2.4GHz. (#24251) 2024-08-27 10:52:23 +10:00
quantum_keycodes.h Align location of tap dance keycode (#22742) 2023-12-24 06:52:41 +00:00
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
raw_hid.h Raw HID: documentation improvements (#21596) 2023-07-25 09:20:41 +10:00
repeat_key.c Normalise mouse keycodes (#23975) 2024-07-03 18:35:54 +10:00
repeat_key.h quantum: remove direct quantum.h includes (#21507) 2023-07-16 23:42:56 +10:00
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 quantum: remove direct quantum.h includes (#21507) 2023-07-16 23:42:56 +10:00
virtser.h
wpm.c
wpm.h