Releases: packerlschupfer/pulsar-mouse-linux
Release list
v0.1.2
What's Changed
- Fix crashes on wired mice, silent setting corruption, and a stale-reply race in the FO1 driver by @harveywuk in #5
New Contributors
- @harveywuk made their first contribution in #5
Full Changelog: v0.1.0...v0.1.2
v0.1.1
Bug fixes
-
Fix Apply destroying DPI stage colours —
Gdk.RGBA()keyword arguments were silently ignored by PyGObject, causing every Apply to write#000000to all stage colour LEDs. If you clicked Apply on v0.1.0, your stage colours were reset to black. Set them again in the GUI or viapulsar-mouse --profile 1 --stage-color <N> <R> <G> <B>. -
Fix Apply failing to write LED and colour settings — the X2A driver raised on the first
0x00response byte instead of polling for the device's ack. Under the burst of commands Apply sends (~10 with no gap), nearly half would fail with "Unexpected response byte: 0x00", potentially leaving settings in a wrong state. Now polls up to 8×20ms for the ack. Inherited by X2H, X2 Wired, Xlite Wired, and Xlite V4. -
Fix LED effect and breath speed clobbering each other —
set_led_effect()zeroed breath speed, andset_breath_speed()forced the effect to "breath". Both now read-modify-write through a shared helper. -
Fix dead Power tab on wired mice — the Power navigation entry appeared on every device but the page was blank unless the driver supports power saving settings (wireless only). Now conditionally hidden.
-
Fix install.sh missing 3 of 7 drivers —
x2_wired,xlite_wired, andfeinmann8kwere not installed byinstall.sh. Users installing via the script could not see those mice. -
Fix driver discovery registering imported parent classes — a latent bug where
_discover_builtin()could register an imported base class under the wrong driver key. Benign today by alphabetical luck, would break on the next driver added.
Improvements
- Logo renders from source checkout — falls back to
data/pulsar-mouse.svgwhen the icon theme entry is not installed - Firmware Version row hidden when the driver does not report one (instead of showing a blank dash)
- Button encoding routed through the device —
describe_button()andparse_button_function()are now overridable methods onPulsarDevice, enabling future non-Sonix drivers - Release workflow race fix — builds now stash artifacts and a single job publishes, preventing incomplete releases from parallel upload collisions
- CI improvements — driver registration check, glob-based syntax check,
actions/checkout@v5 - FlakeHub workflow — triggers on tags only (not main pushes), avoiding version collisions on force-push
- Soak test tool (
tools/protocol-soak.py) — hardware regression tester for driver read/write paths
Credits
Bug fixes from hardware testing by the openperiph project.
Full Changelog: v0.1.0...v0.1.1
Full Changelog: v0.1.0...v0.1.1
Full Changelog: v0.1.0...v0.1.1
Full Changelog: v0.1.0...v0.1.1
Full Changelog: v0.1.0...v0.1.1
Full Changelog: v0.1.0...v0.1.1
Full Changelog: v0.1.0...v0.1.1
Full Changelog: v0.1.0...v0.1.1
Full Changelog: v0.1.0...v0.1.1