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 RP2040 emulated EEPROM. (#17519) 2022-07-02 15:18:50 +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
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 Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
bitwise.h Migrate some tmk_core files to quantum (#11791) 2021-02-07 23:16:15 +00:00
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 Remove legacy keycode use from command (#18002) 2022-08-12 03:03:36 +01:00
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 Advanced deferred_exec for core-side code. (#15579) 2022-01-10 18:26:46 +00:00
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_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 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_tables.c Remove unused LED_BREATHING_TABLE 2020-03-06 22:29:01 -08:00
led_tables.h Change include guards in quantum/ to pragma once (#11239) 2020-12-26 15:53:12 +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
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 core: allow locking the matrix state (#18852) 2023-02-13 03:38:36 +11: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 [Core] Introduce pointing device specific debug messages (#17663) 2022-08-29 19:16:49 +02:00
programmable_button.c Programmable Button API refactor and improve docs (#18641) 2022-10-15 14:33:24 +11:00
programmable_button.h Update Doxygen comments for some headers (#20194) 2023-03-22 14:32:49 +11:00
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 Fix quantum ring_buffer for ChibiOS (#19683) 2023-01-28 21:07:51 +00:00
secure.c Use a macro to compute the size of arrays at compile time (#18044) 2022-08-30 10:20:04 +02:00
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 Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
sync_timer.h Relocate protocol files within tmk_core/common/ (#14972) 2021-10-28 22:31:59 +01:00
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 clang-format changes 2019-08-30 15:01:52 -07:00
variable_trace.h Change include guards in quantum/ to pragma once (#11239) 2020-12-26 15:53:12 +11:00
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 Relocate protocol files within tmk_core/common/ (#14972) 2021-10-28 22:31:59 +01:00
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