Releases: OutersGIT/keyboard-companion
Release list
Keyboard Companion v1.0.3
What's new
- Added full Keychron Q1 HE firmware support in the firmware flasher: ANSI Knob, ISO Knob and JIS Knob cable-mode USB PIDs are now recognized before entering DFU (Bootloader).
- Fixed Q1 HE model naming over USB when the patched firmware reports "model_id = 2", so the Device view shows "Keychron Q1 HE" on USB as well as Bluetooth and 2.4 GHz.
- Added explicit Windows shutdown/logoff handling for the tray app.
- During Windows session end, Keyboard Companion now accepts shutdown immediately and exits through a fast path that skips slow UI, tray, logging, and device-name refresh work.
- Added lightweight shutdown diagnostics in "%APPDATA%\KeyboardCompanion\shutdown_log.txt".
Keyboard Companion v1.0.2
Release Notes
v1.0.2
- Fixed a rare crash when opening the firmware flash wizard from the Firmware tab while the main app window was still open.
- The Firmware tab now closes the main window before launching the dedicated flash wizard, avoiding multiple Tk roots running in separate threads on Windows.
- Added Companion recognition for Q1 HE modified firmware (work in progress), so 2.4 GHz dongle readings can show "Keychron Q1 HE" instead of the generic dongle name when the keyboard firmware reports model id 2.
Keyboard Companion v1.0.1
What's changed
- Converted the app from a mostly tray/settings utility into a main multi-tab window with Device, Firmware, Settings, and About views.
- Improved battery percentage reliability with adaptive charging correction, on-battery anti-spike smoothing, guarded full-charge detection, and post-charge settling.
- Improved the firmware flashing flow with a dedicated worker thread, live DFU/connection detection, progress handling, and safer completion feedback.
- Improved Windows tray behavior with a stable tray identity across builds, tools to clean/promote tray records, and reduced tray icon redraw churn during long sessions.
- Added
--start-in-trayfor autostart so Windows login can start the tray agent without opening the main window.
Full technical changelog:
Keyboard Companion v0.3.0 (firmware flashing + device name)
What's new in v0.3.0
- Flash firmware… wizard (in-app firmware flashing). From the tray menu: pick a
.bin, confirm, and the app guides you through entering the STM32 DFU bootloader
(showing the live currently connected state while it waits), then flashes via
dfu-utilwith a real-time progress bar and returns to the home screen with the
updated firmware info. Needsdfu-util/ the QMK Toolbox WinUSB driver present
on the system (the wizard checks and points you to QMK Toolbox if it's missing). - Connected keyboard name in the tooltip, across all three links: on cable it
reads the keyboard's own USB product string (works for any Keychron board), on the
2.4 GHz dongle it uses the model id reported by the modified firmware
(v0.3.0+), and on
Bluetooth it uses the friendly name Windows shows for the connected device.
Fixes & stability
- Fixed two native crashes that could close the tray with no trace: concurrent HID
access from the tooltip path, and concurrent PIL/FreeType icon rendering across
threads. Icon rendering is now serialized and the device name is resolved off the
UI thread and cached. - Added a diagnostics log at
%APPDATA%\KeyboardCompanion\error_log.txt
(captures uncaught exceptions and native faults). - Fixed Bluetooth device-name detection.
Download (Windows)
Grab KeyboardCompanion-win64.zip below, extract the whole folder, and run
KeyboardCompanion.exe inside it (keep all files together). Right-click the tray
icon for the menu, or double-click it to open Settings.
The battery reading over cable / 2.4 GHz dongle needs the modified QMK firmware
(k10he-battery-firmware); the
Bluetooth reading works out of the box (it mirrors what Windows reports).
Unsigned PyInstaller build — a few AV scanners may flag it. The project is open
source: you can scan the zip, build it yourself, or run from source.
Community project, not affiliated with or endorsed by Keychron.
v0.2.2
Windows download (onedir)
This release ships KeyboardCompanion-win64.zip instead of a single monolithic .exe.
- Download and extract the zip to a folder you keep (e.g.
C:\Tools\KeyboardCompanion\). - Run
KeyboardCompanion.exeinside that folder. - Keep the entire folder together (DLLs and runtime files must stay next to the exe).
There is no one-file self-extraction to %TEMP% anymore (clearer for users and fewer antivirus heuristics than the old packer-style build).
Changes
- Packaging: PyInstaller
--onedir+--noupx; build script also produces the zip for releases. - Autostart: Run registry entry is validated (path must exist and match this install); refreshed on launch when enabled; stale orphans removed when disabled.
- Single instance: A second launch exits quietly (Windows mutex).
Firmware requirement unchanged: modified QMK battery channel for cable/2.4 GHz; Bluetooth mirrors Windows.
Keyboard Companion v0.2.1
Maintenance + accuracy update for Keyboard Companion.
What's new since v0.2.0
- Charging-% correction. While charging, the battery voltage is inflated, so the keyboard's own percentage overestimates the true charge. The app now compensates this host-side so the shown value tracks the resting level (toggleable in Settings).
- Optional battery logging (diagnostics). Opt-in CSV in
%APPDATA%to gather real voltage/charging data (used to refine the charging-% correction). Off by default; never affects what is displayed. - Fix: Bluetooth no longer shows a stale reading. Windows keeps a paired-but-off keyboard present with its last-known battery; the app now mirrors the Bluetooth level only while the keyboard is actively connected. A powered-off keyboard correctly falls back to Undetected.
Install
Download KeyboardCompanion.exe below and double-click it. No Python required.
Notes
- Battery over cable / 2.4 GHz dongle needs the modified QMK firmware (see README Requirements). The Bluetooth reading works out of the box.
- Community project, not affiliated with or endorsed by Keychron.
Keyboard Companion v0.2.0
First public build of Keyboard Companion — a small Windows tray companion for Keychron keyboards (Keychron K10 HE for now).
Install
Download KeyboardCompanion.exe below and double-click it. No Python required. The tray icon appears; right-click for the menu, or double-click the icon to open Settings.
Features
- Battery percentage in the tray (icon color by level) with a multi-line tooltip.
- Works over USB cable, 2.4 GHz dongle (push model) and Bluetooth (mirrors the Windows BLE reading).
- EMA smoothing + hysteresis so the value does not flicker.
- Low-battery notification (configurable threshold).
- Multi-language UI (English / Italiano / 中文).
- Settings window, optional start-with-Windows, and an Open Launcher shortcut.
Notes
- Battery over cable / dongle needs the modified QMK firmware (see the README Requirements). The Bluetooth reading works out of the box.
- Community project, not affiliated with or endorsed by Keychron.