Releases: TomBadash/Mouser
Mouser v3.5.3
What's Changed
Full Changelog: v3.5.2...v3.5.3
Mouser v3.5.2
Full Changelog: v3.5.1...v3.5.2
Mouser v3.5.1
Full Changelog: v3.5.0...v3.5.1
Mouser v3.5.0
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_shiftaction, and scroll mode synced to UI - Multi-language UI -- English, Simplified Chinese (zh_CN), and Traditional Chinese (zh_TW) (thanks @nellwhoami)
switch_scroll_modeaction -- 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
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
- @TheAutomatic made their first contribution in #27
- @durul made their first contribution in #5
- @awkure made their first contribution in #37
- @hieshima made their first contribution in #33
- @pavelzaichyk made their first contribution in #41
Full Changelog: v2.0...v3.0
v2.0 - macOS Support & Multi-Device
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
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)
- Download Mouser.zip below
- Extract to any folder
- 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
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