Skip to content

Releases: OutersGIT/keyboard-companion

Keyboard Companion v1.0.3

Choose a tag to compare

@OutersGIT OutersGIT released this 27 Jul 16:47

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

Choose a tag to compare

@OutersGIT OutersGIT released this 22 Jul 14:07

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

Choose a tag to compare

@OutersGIT OutersGIT released this 21 Jul 15:40

What's changed

image
  • 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-tray for 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)

Choose a tag to compare

@OutersGIT OutersGIT released this 01 Jun 14:47

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-util with a real-time progress bar and returns to the home screen with the
    updated firmware info. Needs dfu-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

Choose a tag to compare

@OutersGIT OutersGIT released this 01 Jun 08:49

Windows download (onedir)

This release ships KeyboardCompanion-win64.zip instead of a single monolithic .exe.

  1. Download and extract the zip to a folder you keep (e.g. C:\Tools\KeyboardCompanion\).
  2. Run KeyboardCompanion.exe inside that folder.
  3. 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

Choose a tag to compare

@OutersGIT OutersGIT released this 31 May 08:37

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

Choose a tag to compare

@OutersGIT OutersGIT released this 30 May 20:32

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.