feat(q5_max): add speculative hold for caps_mod key #23

Merged
rootiest merged 5 commits from feat/speculative-hold into main 2026-04-23 02:59:38 +00:00

5 Commits

Author SHA1 Message Date
rootiest 73de490e53 feat(q5_max): Add speculative hold for caps_mod key 2026-04-22 22:36:16 -04:00
Pascal Getreuer 363b43cafd [Bug][Core] Fix Speculative Hold to enable also right-handed RSFT, RCTL by default. (#25797) 2026-04-15 03:48:33 -04:00
Pascal Getreuer 848972b7be [Core] Speculative Hold option for mod-taps: hold mods instantly while unsettled. (#25572) 2026-04-15 03:48:26 -04:00
rootiest 20a605ce1f chore(claude): Adds voice output rules to CLAUDE.md 2026-04-15 03:39:41 -04:00
rootiest 0fa528b3dd feat(q5_max): add CMD_BATTERY HID push and query for wireless battery level
Adds a new HID_CMD_BATTERY (0x44) command to the shared qmk-host protocol.
When the keyboard is in wireless transport mode (BT or 2.4G) the firmware
now pushes the current battery percentage to the host:

- Periodic push every 5 minutes via timer_read32()/timer_elapsed32(); fires
  immediately on the first matrix_scan_user() call after boot so qmk-host
  gets a reading as soon as the keyboard connects over USB in wireless mode.
- Redundant sends are suppressed: g_last_sent_bat tracks the last value
  transmitted and the packet is skipped when the level has not changed.
- Query-response path: qmk-host can send CMD_BATTERY with HID_FLAG_QUERY at
  any time; the keyboard replies with the current percentage or
  HID_BATT_UNAVAILABLE (0xFF) when in USB transport mode.
- All battery and transport code is guarded by #ifdef LK_WIRELESS_ENABLE so
  the keymap compiles cleanly on any wired-only build.

Firmware size delta: +160 bytes (well within flash budget).
2026-04-15 03:37:18 -04:00