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 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 Normalise MIDI keycodes (#18972) 2022-11-07 02:26:15 +00:00
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.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
action_code.h Relocate various modifier defines (#18638) 2023-03-10 18:27:29 -08:00
action_layer.c Remove use of keymap.h (#20004) 2023-03-27 20:08:17 +01:00
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 [Chore] Remove stray mod tap interrupt defines and per key functions (#20347) 2023-04-06 00:04:23 +01:00
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 Reduce includes for caps_word header (#18948) 2022-11-03 23:42:58 +00:00
caps_word.h Reduce includes for caps_word header (#18948) 2022-11-03 23:42:58 +00:00
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 Reduce includes for crc header (#18947) 2022-11-03 21:36:58 +00:00
crc.h Reduce includes for crc header (#18947) 2022-11-03 21:36:58 +00:00
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 feature improvements (#19034) 2022-11-12 23:28:11 +00:00
digitizer.h Update Doxygen comments for some headers (#20194) 2023-03-22 14:32:49 +11:00
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 VIA V3 - The Custom UI Update (#18222) 2022-11-10 07:46:44 +11:00
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 [Bug] Realign and size check EECONFIG structures (#20541) 2023-05-08 10:56:03 -07: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 Remove use of keymap.h (#20004) 2023-03-27 20:08:17 +01:00
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 Refactor Leader key feature (#19632) 2023-02-13 03:19:02 +11:00
leader.h Update Doxygen comments for some headers (#20194) 2023-03-22 14:32:49 +11:00
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 core: allow locking the matrix state (#18852) 2023-02-13 03:38:36 +11:00
matrix_common.c quantum: remove direct quantum.h includes (#21507) 2023-07-16 23:42:56 +10:00
modifiers.h Relocate various modifier defines (#18638) 2023-03-10 18:27:29 -08:00
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 Update Doxygen comments for some headers (#20194) 2023-03-22 14:32:49 +11: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
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 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 Fix quantum ring_buffer for ChibiOS (#19683) 2023-01-28 21:07:51 +00:00
secure.c
secure.h Update Doxygen comments for some headers (#20194) 2023-03-22 14:32:49 +11:00
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 [Core] Tri Layer Keys (#19795) 2023-02-12 10:23:07 +11:00
tri_layer.h [Core] Tri Layer Keys (#19795) 2023-02-12 10:23:07 +11:00
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 [Bug] Fix compilation issue with WPM (#18965) 2022-11-05 19:05:01 +00:00
wpm.h Reduce includes for wpm header (#18949) 2022-11-04 00:50:59 +00:00