Skip to content

Releases: TomBadash/Mouser

Mouser v3.6.0

Choose a tag to compare

@github-actions github-actions released this 29 Apr 22:25

Mouser v3.6.0

This one is a pretty practical release: better Linux support, fewer macOS headaches, smaller downloads, and more useful diagnostics when something goes wrong.

The big things: Linux Bluetooth Logitech mice should work much better now, macOS no longer leaks memory during long sessions, custom shortcuts are more reliable, and release packages are smaller and cleaner.

Highlights

  • Fixed Linux Bluetooth Logitech detection, including MX Master devices over Bluetooth.
  • Added a Linux permissions setup helper with bundled udev rules.
  • Fixed a large macOS memory leak in long-running sessions.
  • Fixed macOS custom shortcut capture, including Command/Control handling.
  • Added an Ignore Trackpad setting for macOS.
  • Added full macOS Logi Bolt receiver support.
  • Added an About dialog and build/version diagnostics.
  • Reduced macOS and Linux release bundle sizes.

Linux

  • Fixed Bluetooth Logitech HID++ detection by preferring the Linux hidraw backend where needed.
  • Added support for known Logitech HID devices even when Linux does not report vendor usage metadata.
  • Added detailed diagnostics for blocked access to /dev/hidraw*, /dev/input/event*, and /dev/uinput.
  • Added a bundled udev rule and install-linux-permissions.sh helper so users can set up device permissions without running Mouser as root.
  • Added warnings when Logitech devices are visible but blocked by Linux device permissions.
  • Improved selection when multiple Logitech evdev devices are present.
  • Preserved required PySide/Qt runtime libraries in Linux builds.
  • Improved Linux release workflow smoke-test handling and runtime dependency setup.
  • Reduced Linux release artifact size by preserving symlinks and trimming unused Qt payload.

macOS

  • Added an Ignore Trackpad setting, enabled by default, so trackpad and Magic Mouse scrolling pass through normally while Mouser keeps handling discrete mouse wheel events.
  • Fixed custom shortcut capture on macOS so Command and Control shortcuts are stored and displayed correctly.
  • Fixed Enter and Escape capture in the custom shortcut dialog.
  • Fixed circular mouse remapping cases, such as mapping middle -> mode_shift and mode_shift -> middle.
  • Fixed a macOS memory leak caused by PyObjC temporary objects in CGEventTap callbacks and foreground app polling.
  • Added full Logi Bolt receiver support on macOS, including better receiver slot scanning and Bluetooth-first device selection.
  • Improved receiver labeling so only confirmed Bolt receivers show as "Logi Bolt".
  • Added a separate Intel macOS release build.
  • Reduced macOS app bundle size by trimming unused Qt files while keeping required dependencies.

Shortcuts And Input

  • Added support for digit shortcuts like cmd+shift+3 and cmd+shift+4.
  • Added shortcut aliases like cmd, command, control, and option.
  • Improved shortcut labels so captured and configured actions display more consistently.
  • Preserved Smart Shift fallback scroll mode across restarts when Smart Shift is enabled.

Packaging And Builds

  • Fixed packaged asset resolution for frozen Windows and Linux builds, including install paths with spaces.
  • Added Windows build checks and docs for hidapi packaging.
  • Added shared build support helpers for packaging.
  • Updated release workflow actions for Node 24 compatibility.
  • Included the Linux permissions helper in release artifacts.

App Diagnostics

  • Added version information to the app window title.
  • Added an About dialog with app version, build mode, commit, and launch path.
  • Added startup logging for version and build metadata.
  • Improved the bug report template so reports include better install and build details.

Tests

  • Added and expanded regression coverage for Linux HID discovery, Linux permission diagnostics, Linux build support, macOS Logi Bolt behavior, Smart Shift persistence, shortcut parsing and capture, packaged asset paths, config migration, and macOS trackpad filtering.

Contributors

Thanks to @thisislvca, @farfromrefug, @vcanuel, @oraluben, @matthewcorven, @iljabauer, and @JFly02 for the fixes and improvements in this release.

Also thanks to everyone who opened issues, tested builds, and helped make the Linux and macOS support better.

Mouser v3.5.3

Choose a tag to compare

@github-actions github-actions released this 11 Apr 16:15

What's Changed

  • Fix reconnect replay and recover from HID transport failures by @hieshima in #82

Full Changelog: v3.5.2...v3.5.3

Mouser v3.5.2

Choose a tag to compare

@github-actions github-actions released this 08 Apr 22:22

Full Changelog: v3.5.1...v3.5.2

Mouser v3.5.1

Choose a tag to compare

@github-actions github-actions released this 08 Apr 18:14

Full Changelog: v3.5.0...v3.5.1

Mouser v3.5.0

Choose a tag to compare

@github-actions github-actions released this 07 Apr 00:02

What's New in v3.5

New Features

  • Mouse-to-mouse button remapping -- map any button to left, right, middle, back, or forward click, including hold behaviors (PR #65, thanks @guilamu)
  • Multi-device support + DPI preset cycling -- support for additional Logitech devices, cycle through DPI presets, and MX Vertical DPI switching
  • SmartShift enhanced support -- full HID++ 0x2111 control: toggle SmartShift on/off, adjust sensitivity threshold, physical SmartShift button handled via toggle_smart_shift action, and scroll mode synced to UI
  • Multi-language UI -- English, Simplified Chinese (zh_CN), and Traditional Chinese (zh_TW) (thanks @nellwhoami)
  • switch_scroll_mode action -- remap any button to toggle between ratchet and freespin scroll modes
  • Persistent rotating log storage -- logs are now saved across sessions for easier debugging

Bug Fixes

  • Gesture swipe up never triggered -- swipe up actions now fire correctly when no swipe down counterpart is assigned
  • Linux: connection state and HID settings replay -- DPI and SmartShift are now correctly re-applied after reconnect/wake on Linux (PR #55, thanks @hieshima)
  • macOS: CGEventTap reliability -- tap is automatically re-enabled after system timeout or user-input suspension; trackpad scroll events are now correctly filtered out (PR #64, thanks @hieshima)
  • HID++ stability -- consecutive request timeout detection triggers auto-reconnect; stale button holds are force-released on reconnect (PR #65)
  • SmartShift re-applied on every reconnect/wake -- settings are replayed reliably after wake-from-sleep or fast user-switch
  • Mode-shift button restored after wake -- SmartShift mode-shift button is reinstated correctly after wake and fast user-switch
  • Non-matching HID++ reports forwarded -- reports that don't match an in-flight command are no longer silently dropped

Build

  • All platform spec files updated to version 3.5.0 (Windows, macOS, Linux)

New Contributors

Full Changelog: v3.0...v3.5.0

Mouser v3.0

Choose a tag to compare

@github-actions github-actions released this 25 Mar 11:07

What's Changed

  • fix(pyinstaller): include QtSvg in packaged build to prevent Windows startup crash by @TheAutomatic in #27
  • Add macOS .app bundle and resource handling and packaging instructions by @durul in #5
  • fix: make browser back/forward reliable with phased Alt + arrow keys by @awkure in #37
  • feat: add Linux support (evdev + HID++ + uinput) by @hieshima in #33
  • fix: add MX Master 4 device to known logi devices by @awkure in #38
  • feat: add Next Tab and Previous Tab browser actions by @pavelzaichyk in #41
  • feat: add mode shift button mapping, Smart Shift toggle & custom shortcuts by @hieshima in #44
  • feat: Add "Start minimized", "Start at login" options. Use single instance of application. by @awkure in #39

New Contributors

Full Changelog: v2.0...v3.0

v2.0 - macOS Support & Multi-Device

Choose a tag to compare

@TomBadash TomBadash released this 17 Mar 19:46

What's New in v2.0

This is a major release. The biggest addition is full macOS support, bringing Mouser to Mac users for the first time.

macOS Support

Mouser now runs on macOS 12 (Monterey) and later. Button remapping, gesture detection, scroll inversion, and per-app profiles all work on Mac. No Logitech software required, just like on Windows.

Multi-Device Support

Mouser can now detect which Logitech mouse is connected and adapt accordingly. This release adds support for the MX Master 2, MX Master 3, and MX Master 3S. More devices are coming.

Battery Monitoring

The app now displays the battery level of your connected mouse in real time, so you always know when it's time to charge.

Gesture Button Swipe Actions

You can now assign actions to swipe gestures on the gesture button. Hold the gesture button and move the mouse left, right, up, or down to trigger a mapped action. This gives you up to 5 actions on a single button.

Improved App Profile Support

More button types are now supported in per-app profiles. Profiles are more reliable and cover more remapping scenarios than before.


Important: Logi Options+ Conflict

Mouser communicates directly with your mouse over HID++. If Logi Options+ (or Logi Options) is running at the same time, the two apps will fight over the connection and Mouser will not work correctly, or may crash. Before using Mouser, make sure Logi Options+ is fully closed and not running in the background. You can disable it from starting automatically in its settings.


Thanks to everyone who tested and gave feedback. More improvements are on the way.

Mouser v1.1.0

Choose a tag to compare

@TomBadash TomBadash released this 14 Mar 19:20

Mouser v1.1.0

Download → Extract → Run. No Python or installation required.

What's new

  • macOS support — full compatibility via CGEventTap, Quartz CGEvent, and NSWorkspace (thanks @andrew-sz). See macOS Setup Guide for details.
  • Auto-reconnection — automatically restores full functionality when the mouse is turned off/on or reconnected, no restart needed
  • Live connection status — real-time "Connected / Not Connected" badge in the UI

How to run (Windows)

  1. Download Mouser.zip below
  2. Extract to any folder
  3. Run Mouser.exe

How to run (macOS)

Build from source — see the README for instructions.

Requirements (Windows)

  • Windows 10 or 11
  • Logitech MX Master 3S (Bluetooth recommended)
  • Logitech Options+ must NOT be running

Requirements (macOS)

  • macOS 12+ (Monterey)
  • Accessibility permission (System Settings → Privacy & Security → Accessibility)
  • Python 3.10+

LogiControl v1.0.0

Choose a tag to compare

@TomBadash TomBadash released this 02 Mar 07:51

LogiControl Portable Release

Download LogiControl.zip, extract anywhere, and run LogiControl.exe.

No Python or installation required.

What's included

  • Full button remapping for Logitech MX Master 3S
  • Per-application profiles
  • DPI / scroll control via HID++
  • Modern dark Material UI
  • System tray with background operation

Requirements

  • Windows 10 or 11
  • Logitech MX Master 3S (Bluetooth or USB receiver)
  • Logitech Options+ must NOT be running