Releases: DonGeronimo7/mouse-control
Release list
Mouse Control v0.7.11
Mouse Control v0.7.11
RPM updater reliability
RPM ownership detection now retains the stable package name. After DNF runs,
Mouse Control verifies the installed RPM version; warnings, noisy output, or a
nonzero DNF result cannot report a false failure when the target version is
installed.
If a native DNF upgrade leaves the old version installed, Mouse Control still
uses the validated GitHub RPM fallback and verifies the final installed version.
mouse-control update --yes now passes DNF --assumeyes for both native and
fallback installs. Updates without --yes keep their normal confirmation flow.
Mouse Control v0.7.10
Mouse Control v0.7.10
Persistent battery tray
The battery tray now remains visible through transient HID++ battery read
timeouts, retaining the last known percentage. It hides only after three
consecutive failed reads, and a successful read resets the failure count.
The tray menu now shows only the battery percentage and, when available, the
battery status; it no longer repeats the mouse/device name.
Terminal branding refresh
The terminal launcher branding and logo have been refreshed.
Mouse Control v0.7.9
Mouse Control v0.7.9
AppImage portability fix
The AppImage now bundles its own portable CPython 3.12 runtime instead of using
the host system Python. This prevents native-extension ABI mismatches on systems
running newer Python versions, including the evdev _input import failure seen
on Fedora with Python 3.14.
The AppImage build installs Mouse Control and its dependencies directly into the
bundled runtime, so the application no longer depends on the host Python ABI.
Updater verification fix
The RPM/DEB updater now verifies the installed Mouse Control version after
DNF/APT runs. A successful package-manager exit no longer counts as an update
when it leaves the installed version behind the requested release.
This fixes direct-GitHub RPM/DEB installations where the distribution package
manager can return success with “nothing to do.” In that case, Mouse Control
downloads the validated GitHub release package through the existing secure
path, installs it through the native package manager, and verifies the version
again. The updater reports success only when the installed version reaches the
requested release.
Note for v0.7.6 and earlier
Users upgrading from Mouse Control v0.7.6 or earlier may see the old updater report success even when DNF does not actually replace a direct-GitHub RPM installation. If mouse-control --version still reports the old version after updating, install the v0.7.9 RPM manually once. Future updates from v0.7.9 use the corrected updater verification logic.
Mouse Control v0.7.7
Mouse Control v0.7.7
Launcher and icon polish
The interactive terminal launcher now opens with a Unicode rendition of the
Mouse Control segmented mouse mark rather than a generic ASCII drawing. The
menu, setup flow, remapping, hardware support, services, and updater behavior
are unchanged.
The desktop icon keeps its cyan, blue, and magenta cyber aesthetic while using
stronger outer contours and clearer central details. Updated 512, 256, 128,
64, 48, and 32 pixel assets are included in the RPM, DEB, and AppImage
packages for improved visibility in launchers, menus, taskbars, and panels.
Mouse Control v0.7.6
Mouse Control v0.7.6
Universal updater
mouse-control update and mouse-control update --check are available in the
published RPM, DEB, AppImage, and Python packages. Mouse Control detects the
running installation and safely delegates to its owner.
This release also includes the terminal-native launcher, Mouse Control icon,
and corrected native package dependencies, including the Arch build fix. It
supersedes the unpublished v0.7.5 tag.
System-package-owned files are never manually overwritten, AppImage replacement
is atomic, release assets are validated by name and architecture, source
checkouts are not automatically modified, and --check is non-mutating.
Mouse Control v0.7.4
Mouse Control v0.7.4
Community hardware testing
mouse-control support adds a built-in, read-only hardware reporting workflow for unsupported mice. Users can select a mouse and generate a deterministic, privacy-safe local report containing device identity, input capabilities, backend status, HID interfaces, and HID report-descriptor topology. Reports remain local until the user chooses to share them.
- Optional guided button capture
- No telemetry or automatic uploads
- No hardware writes during probing
- Partial reports remain useful when some interfaces are inaccessible
The report performs no DPI, polling-rate, profile, HID feature, or HID output writes. It excludes usernames, home paths, hostnames, network information, environment variables, and device serial numbers, and examines only the selected mouse.
Hardware backends
Mouse Control continues to provide native Logitech HID++ functionality while retaining ordinary evdev remapping when advanced vendor-specific control is unavailable. This community-reporting workflow is intended to help expand support for gaming mice the maintainers do not physically own.
Turtle Beach Kone II remains a community-testing target and is not claimed as supported hardware.
Mouse Control v0.7.3
Mouse Control v0.7.3
Mouse Control v0.7.3 adds an optional live battery indicator while retaining
the native Logitech HID++ modernization introduced across the v0.7.x feature
set. Ordinary evdev remapping remains available when vendor-specific hardware
control is unavailable.
Battery tray integration
- A standard StatusNotifierItem tray icon draws a clean monochrome battery
with proportional live fill and no embedded percentage text. - The tooltip and right-click
com.canonical.dbusmenushow the live device
name, exact battery percentage, and battery status when the device provides
it. - Icon, tooltip, and menu update from the same battery state, so their values
remain in agreement. - The integration is desktop-independent and uses standard SNI/DBusMenu
interfaces; desktop-specific menu styling is outside Mouse Control.
Native Logitech HID++
- Native Logitech DPI and report-rate support no longer requires
libratbag,
ratbagd, orratbagctl. - HID++ ROOT feature discovery resolves feature indexes dynamically; no G305
feature indexes are hard-coded. - The backend enumerates DPI, reads and writes DPI with hardware readback,
receives confirmed live DPI notifications, and recognizes physical DPI events. - It enumerates and reads report rates, and enables report-rate writes only
where capability detection determines that they are safe. - It does not force profile-mode switching. OpenRazer remains optional for
supported Razer hardware.
Validated hardware
Physically validated: Logitech G305 Lightspeed Wireless Gaming Mouse.
The validated capabilities are automatic native HID++ detection; 200–12000 DPI
in 50-DPI steps; configured 800/1500/2000/2500/3000 stages; physical DPI event
monitoring and DPI OSD; 1000/500/250/125 Hz report-rate discovery; reconnect
recovery; late receiver insertion; and side-button remapping.
The architecture is generalized, but the G305 is the primary physical
reference. This release does not claim that all Logitech mice have been
physically validated.
Reconnect, lifecycle, and notifications
Evdev reconnect resilience, HID reconnect, fresh backend rediscovery, startup
without a mouse, late receiver insertion, watcher recovery, and monitor
recovery now work without requiring a service restart after reconnect.
Notifications return to a simplified v0.6.9-style Freedesktop path with
asynchronous submission and failure isolation. The first confirmed DPI event
is no longer incorrectly suppressed, and HID reconnect no longer stops
monitoring.
CLI and generic fallback
Service management is available through:
mouse-control start
mouse-control stop
mouse-control restart
mouse-control status
mouse-control run remains foreground/debug execution.
Unknown mice retain evdev remapping. Generic HID discovery is a read-only
fallback and extension point; USB HID itself does not standardize DPI or
report-rate controls. Future vendor protocol drivers can be added without
affecting the Logitech HID++ backend.
Install or upgrade
Packaging artifacts are intentionally not part of this source checkpoint.
The v0.7.3 source is ready for the separate packaging and release workflow.
Mouse Control v0.7.2
Mouse Control v0.7.2
Mouse Control v0.7.2 is a major backend modernization release despite its 0.x
version. It makes native Logitech HID++ 2 control a first-class backend while
preserving the project's central promise: ordinary evdev remapping continues
when vendor-specific hardware control is unavailable.
Native Logitech HID++
- Native Logitech DPI and report-rate support no longer requires
libratbag,
ratbagd, orratbagctl. - HID++ ROOT feature discovery resolves feature indexes dynamically; no G305
feature indexes are hard-coded. - The backend enumerates DPI, reads and writes DPI with hardware readback,
receives confirmed live DPI notifications, and recognizes physical DPI events. - It enumerates and reads report rates, and enables report-rate writes only
where capability detection determines that they are safe. - It does not force profile-mode switching. OpenRazer remains optional for
supported Razer hardware.
Validated hardware
Physically validated: Logitech G305 Lightspeed Wireless Gaming Mouse.
The validated capabilities are automatic native HID++ detection; 200–12000 DPI
in 50-DPI steps; configured 800/1500/2000/2500/3000 stages; physical DPI event
monitoring and DPI OSD; 1000/500/250/125 Hz report-rate discovery; reconnect
recovery; late receiver insertion; and side-button remapping.
The architecture is generalized, but the G305 is the primary physical
reference. This release does not claim that all Logitech mice have been
physically validated.
Reconnect, lifecycle, and notifications
Evdev reconnect resilience, HID reconnect, fresh backend rediscovery, startup
without a mouse, late receiver insertion, watcher recovery, and monitor
recovery now work without requiring a service restart after reconnect.
Notifications return to a simplified v0.6.9-style Freedesktop path with
asynchronous submission and failure isolation. The first confirmed DPI event
is no longer incorrectly suppressed, and HID reconnect no longer stops
monitoring.
CLI and generic fallback
Service management is available through:
mouse-control start
mouse-control stop
mouse-control restart
mouse-control status
mouse-control run remains foreground/debug execution.
Unknown mice retain evdev remapping. Generic HID discovery is a read-only
fallback and extension point; USB HID itself does not standardize DPI or
report-rate controls. Future vendor protocol drivers can be added without
affecting the Logitech HID++ backend.
Install or upgrade
sudo dnf install ./mouse-control-0.7.2-1.fc44.noarch.rpm
/usr/bin/mouse-control --helpThe RPM is unsigned and does not enable remapping or start the user service.
For installation and device-access diagnostics, use mouse-control check-permissions followed by mouse-control setup as your logged-in desktop
user.
Release assets
mouse-control-0.7.2-1.fc44.noarch.rpmmouse-control_0.7.2_all.debMouse-Control-0.7.2-x86_64.AppImagemouse_control-0.7.2.tar.gzmouse_control-0.7.2-py3-none-any.whlSHA256SUMS
Mouse Control v0.6.9
Mouse Control v0.6.9
This release prepares the physically validated implementation for broad Linux
community hardware testing while preserving existing remapping, service, and
hardware-backend behavior.
-
Community testing infrastructure: adds a compatibility matrix and GitHub
hardware/bug report templates, with a privacy-safe report suitable for issues. -
Read-only diagnostics:
mouse-control doctorreports dependency, service,
permission, backend, and safely obtainable mouse status.doctor --fixonly
proposes a native package command and never executes privileged operations. -
Linux packaging preparation: adds Debian metadata, Arch/AUR PKGBUILD, and
AppImage build preparation. Host udev, systemd, ratbagd, and OpenRazer remain
host-managed rather than bundled. -
Controlled Logitech HID++ discovery: explicit
debug-dpidiscovery uses
dynamic ROOT feature lookup, discovers Device Name and Adjustable DPI metadata,
temporarily coordinates with ratbagd, persists selected schema-versioned
capability data, and restores ratbagd afterward. -
Passive normal runtime: ordinary
mouse-control runstartup loads cached
metadata and performs no direct active HID++ discovery traffic. Missing,
ambiguous, stale, or conflicting notification metadata fails safely without
disabling remapping or Libratbag configuration. -
Validated G305 notifications: the physically validated Logitech G305
(046d:4074, HID++ 4.2) uses independent routes: Adjustable DPI0x2201is
dynamically discovered at index0x1a, while the native firmware DPI-cycle
notification is the Onboard Profiles0x8100event at index0x07, event
0x01, SWID0x00. The native button remainsresolution-cycle-up. -
Preserved architecture: Ratbag, optional OpenRazer, and Generic backends,
keyboard capture,BTN_EXTRAremapping, polling, setup/service recovery, and
clean shutdown behavior remain supported. Solaar is not a dependency.
Only Logitech G305 046d:4074 HID++ DPI notifications are physically validated
for this release. Other compatible Logitech devices may be discoverable, but
their notification behavior is not claimed as physically validated.
Install or upgrade
sudo dnf install ./mouse-control-0.6.9-1.fc44.noarch.rpm
/usr/bin/mouse-control --helpThe RPM is unsigned. Installing it does not activate remapping or enable the
user service. OpenRazer remains optional.
Proposed release assets
mouse-control-0.6.9-1.fc44.noarch.rpm— installable Fedora package.mouse-control_0.6.9_all.deb— installable Debian package.mouse_control-0.6.9.tar.gz— Python source distribution.mouse_control-0.6.9-py3-none-any.whl— Python wheel.SHA256SUMS— checksums for the published artifacts above.
Any source RPM built during validation is internal and is not included in the
public checksum manifest unless publication is requested separately.
Mouse Control v0.6.3
Mouse Control v0.6.3
This release synchronizes the current physically validated implementation while
preserving the existing input-remapping, service, and hardware-backend behavior.
- Controlled Logitech HID++ discovery: explicit
debug-dpidiscovery uses
dynamic ROOT feature lookup, discovers Device Name and Adjustable DPI metadata,
temporarily coordinates with ratbagd, persists selected schema-versioned
capability data, and restores ratbagd afterward. - Passive normal runtime: ordinary
mouse-control runstartup loads cached
metadata and performs no direct active HID++ discovery traffic. Missing,
ambiguous, stale, or conflicting notification metadata fails safely without
disabling remapping or Libratbag configuration. - Validated G305 notifications: the physically validated Logitech G305
(046d:4074, HID++ 4.2) uses independent routes: Adjustable DPI0x2201is
dynamically discovered at index0x1a, while the native firmware DPI-cycle
notification is the Onboard Profiles0x8100event at index0x07, event
0x01, SWID0x00. The native button remainsresolution-cycle-up. - Preserved architecture: Ratbag, optional OpenRazer, and Generic backends,
keyboard capture,BTN_EXTRAremapping, polling, setup/service recovery, and
clean shutdown behavior remain supported. Solaar is not a dependency.
Only Logitech G305 046d:4074 HID++ DPI notifications are physically validated
for this release. Other compatible Logitech devices may be discoverable, but
their notification behavior is not claimed as physically validated.
Install or upgrade
sudo dnf install ./mouse-control-0.6.3-1.fc44.noarch.rpm
/usr/bin/mouse-control --helpThe RPM is unsigned. Installing it does not activate remapping or enable the
user service. OpenRazer remains optional.
Proposed release assets
mouse-control-0.6.3-1.fc44.noarch.rpm— installable Fedora package.mouse_control-0.6.3.tar.gz— Python source distribution.mouse_control-0.6.3-py3-none-any.whl— Python wheel.SHA256SUMS— checksums for the published artifacts above.
Any source RPM built during validation is internal and is not included in the
public checksum manifest unless publication is requested separately.