Skip to content

Releases: DonGeronimo7/mouse-control

Mouse Control v0.7.11

Choose a tag to compare

@DonGeronimo7 DonGeronimo7 released this 14 Sep 08:59

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

Choose a tag to compare

@DonGeronimo7 DonGeronimo7 released this 14 Sep 08:17

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

Choose a tag to compare

@DonGeronimo7 DonGeronimo7 released this 14 Sep 06:41

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

Choose a tag to compare

@DonGeronimo7 DonGeronimo7 released this 14 Sep 04:51

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

Choose a tag to compare

@DonGeronimo7 DonGeronimo7 released this 14 Sep 04:31

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

Choose a tag to compare

@DonGeronimo7 DonGeronimo7 released this 14 Sep 01:44

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

Choose a tag to compare

@DonGeronimo7 DonGeronimo7 released this 13 Sep 23:17

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.dbusmenu show 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, or ratbagctl.
  • 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

Choose a tag to compare

@DonGeronimo7 DonGeronimo7 released this 13 Sep 10:26

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, or ratbagctl.
  • 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 --help

The 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.rpm
  • mouse-control_0.7.2_all.deb
  • Mouse-Control-0.7.2-x86_64.AppImage
  • mouse_control-0.7.2.tar.gz
  • mouse_control-0.7.2-py3-none-any.whl
  • SHA256SUMS

Mouse Control v0.6.9

Choose a tag to compare

@DonGeronimo7 DonGeronimo7 released this 12 Sep 07:12

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 doctor reports dependency, service,
    permission, backend, and safely obtainable mouse status. doctor --fix only
    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-dpi discovery 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 run startup 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 DPI 0x2201 is
    dynamically discovered at index 0x1a, while the native firmware DPI-cycle
    notification is the Onboard Profiles 0x8100 event at index 0x07, event
    0x01, SWID 0x00. The native button remains resolution-cycle-up.

  • Preserved architecture: Ratbag, optional OpenRazer, and Generic backends,
    keyboard capture, BTN_EXTRA remapping, 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 --help

The 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

Choose a tag to compare

@DonGeronimo7 DonGeronimo7 released this 12 Sep 00:51

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-dpi discovery 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 run startup 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 DPI 0x2201 is
    dynamically discovered at index 0x1a, while the native firmware DPI-cycle
    notification is the Onboard Profiles 0x8100 event at index 0x07, event
    0x01, SWID 0x00. The native button remains resolution-cycle-up.
  • Preserved architecture: Ratbag, optional OpenRazer, and Generic backends,
    keyboard capture, BTN_EXTRA remapping, 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 --help

The 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.