Mouseless v1.0 is here! This release adds several major enhancements, stability and functionality fixes across all platforms.
Feedback always appreciated! (Mac Windows Linux)
Preview users: Changes are minimal since preview.5, mostly targeted toward Wayland Linux input handling. See ## Preview users section.
Mac users: The user data location has changed. You may see a one-time, temporary permissions prompt to "access data from other apps" so Mouseless can migrate the data. If you prefer to not grant this permission, you can perform the migration manually with a terminal command (see usage notes).
Linux users: The AppImage files are being retired in favor of a single, robust flatpak distribution. See usage notes for installation instructions and additional info. An ARM build is not yet available, but will be added in the near-term.
Windows users:
- This release enables Mouseless to now show above all privileged system elements (e.g. Start menu, task manager) -- see Usage notes for context on installation requirements.
- I recently renewed the code signing certificate. You may see a SmartScreen warning (should still display Sonuscape as the verified publisher) while the ecosystem ingests the new cert. Click More Info > Run Anyway to proceed with the install.
macOS Security Note
Mouseless is no longer sandboxed, to allow for in-place updates. This is standard practice for apps distributed outside the App Store, including those with accessibility permissions. All standard security measures remain in place.
Preview users - changes since v1.0.0-preview.5
- Fixed
move to next/previous monitorhotkey leaking into underlying app - Wayland Linux:
- Added
excluded input devicesfield, prevents mouseless from taking control of specified devices- Use
--list-input-devicesCLI arg to view device names / id's
- Use
- Added fixed vendor id
736efor Mouseless' virtual devices, so you can exclude them from other input-grabbing apps - Fixed
show overlayhotkey leaking into underlying app - Fixed bug where keys can get stuck after executing a command
- Added
Enhancements
Overlay
- Multi-color backgrounds
- Please see the 'background' section in the docs, or this video for info on how to use.
- There are some new built-in
Stylepresets (at the bottom of the list, starting withrgb_position_based), with colors that align with the either theposition_based_16_9or theposition_based_columnsGridpresets
- Added
Char displayfield for hiding the level 1 char, or both chars - Added
invert colorscommand (in the 'overlay' section of the keymap), allows you to invert all the colors on the overlay, which can help with visibility at times. Execute it again to toggle back (and forth). - Made comma and period 50% larger for visibility (and semicolon 25% larger)
- Default grid settings now match the
position_based_columnspreset Increase/decrease opacitycommands now available on platforms- Added
char anchorsetting, to control whether characters are spaced center-to-center (default) or edge-to-edge
Free mode
- Added
hold for free modecommand (marked as 'beta') - macOS: Added subpixel tracking for smoother free mode movement
- macOS 14+: Added
Free mode status displaysetting, allows for a dot indicator at the cursor instead of (or in addition to) the toast window. Default: "both"- Indicator size, color, and offset are customizable (in
Style > HUDsection)
- Indicator size, color, and offset are customizable (in
Mouse
- Modifier+clicks now available on all platforms
- Added modifier clicks for free mode back and forward buttons, and all global mouse buttons
- Added
Mouse value cycle behavior, affectscycle button/action/countcommandsonce- value returns to default after executing an action (default)persist- value remains after executing an action, until cycled again
- Added
Default actionsetting:click,moveordrag- Sets the action that
execute mouse actionperforms
- Sets the action that
- Added explicit
left clickcommand for overlay
Display
- Added
Toast opacitysetting, allows you to prevent toast from overly-obscuring underlying screen content. Default:0.5 - macOS: Status bar icon now shows a lock when macOS' "secure input" mode is active (i.e. a password field is active -- Mouseless hotkeys will be disabled)
Misc
- Linux is now distributed via flatpak for improved cross-distro compatibility and easy updates (see usage notes below)
- macOS: In-place, automatic updates (ARM-only)
- Deep link support, for programmatic invocation from other apps
- e.g.
mouseless://toggle-overlay - 8 commands
toggle-overlay,show-overlay,hide-overlaytoggle-free-mode,enter-free-mode,exit-free-modetoggle-enabled,settings
- e.g.
UX / Quality-of-life
- Consolidated update-related settings into
Generalconfig sectionSettings...menu item now opens consolidated settings windowuser_prefs.yamlfile deprecated/removed
- Settings window has buttons on the side for quick scrolling to sections
Color input modeallows you to show/hide text entry fields (rgb hex) for color values- Improved config error handling
- On startup, gracefully falls back to individual defaults (instead of entire default config)
- Ctrl+S saves the config when editor open
Debug / logging
- Added
log_levelconfig field - A new log file is now created per session (up to 10 stored)
- Added
force overlay resizecommand - Added
reset keyboard statecommand - Added
--print-hid-events-verbose/-Pcli flag (prints mouse move and wheel events) - Added extra state diagnostics (in menu > Debug > Copy state diagnostics)
- macOS: Added
Hud window levelsetting -- may fix issues when using software that captures displays
Fixes
- The
toggle overlay lockfeature is now more robust, which is particularly handy when editing the multi-color background settings. - Fixed conflicts when multiple free mode commands mapped to same key, one with modifier and one without
- Fixed
tapcommands in free mode leaking to underlying app - Fixed modifiers in keybinding affecting mouse action commands (resulting in unintended modifier+click)
Mac
- Fixed issue where simultaneous keypresses can cause hotkeys to stop working (due to internal modifier state de-syncing from OS)
- Fixed overlay not showing over fullscreen apps
- Fixed overlay not showing on first activation after switching spaces
- Fixed escape not closing 'find' widget in config editor
- Fixed free mode default hotkeys (
back mouse buttonnowQ,forward mouse buttonnowW)
Windows
- The overlay now shows above all system elements, but has specific installation requirements. See usage notes below.
- Portable and non-privileged installs: Overlay will show above taskbar in most situations, but not start menu, task manager, etc.
- Fixed overlay resize / reposition when screen changes detected
- Fixed overlay triggering the 'do not disturb' icon in system tray, which shifted click targets
- Fixed
//?key on Brazilian keyboard layout (other non-English keys may be fixed as well)
Linux - Overlay rendering on NVIDIA
Some changes have been made to address rendering issues encountered on NVIDIA cards.
By default, if an NVIDIA GPU is detected, Mouseless will now use a cairo-backed overlay with DMABUF rendering disabled, otherwise, a webview-backed overlay with DMABUF rendering will be used.
Note that the cairo-backed overlay does not yet have the following features: highlight_animation, dots and dashed grid_line_styles, and always_show_subgrid.
The cairo-backed overlay avoids the buffer clearing / opacity buildup issues seen with the prior --no-compositing / WEBKIT_DISABLE_COMPOSITING_MODE workarounds -- these flags are still respected, but likely not needed (the dmabuf option / default should fix the blank windows, but with better performance).
To override the defaults, use the following config debug_options fields, or cli flags (cli takes precedence):
overlay_renderer/--overlay-renderer, values:cairoorwebviewuse_dmabuf/--use-dmabuf, values:trueorfalse
Usage notes
Alternate workflow: Quick select + free mode
There is a built-in quick select + free mode preset in the Behavior > Mouse actions section. It allows you to quickly choose screen location coarsely with the overlay, then use free mode for finer movement before clicking or dragging. It has these settings:
Grid action level:2Default action:moveFree mode after move:true
There's an accompanying standard preset (subgrid, click, false).
A forthcoming release will allow you to switch between presets with a command/hotkey (including grid and style presets) for quick switching between different setups/workflows.
macOS - User data has a new location
The user data location has changed, to prevent disk access permission prompts related to the old sandbox location. Your data (configs, license, presets) now lives at:
~/Library/Application Support/Mouseless/
If you have existing user data, Mouseless will copy it to the new location automatically. You may see a one-time "Mouseless.app would like to access data from other apps" prompt — click Allow (the permission is temporary) and your settings will carry over.
If you'd prefer not to grant that permission, click Don't Allow, then run this command in Terminal to perform the data copy, then restart Mouseless:
mkdir -p ~/Library/Application\ Support/Mouseless
cp -R ~/Library/Containers/net.sonuscape.mouseless/Data/.mouseless/. \
~/Library/Application\ Support/Mouseless/Windows overlay / installation notes
For Mouseless to show the overlay above Start Menu, task manager, etc., you must:
- choose to install for 'all users'
- install to a privileged location like
Program Files(default)
This requires admin privileges during the installation process only, not when actually running Mouseless.
The installer provides an option to uninstall other/prior installations at different locations, checked by default. Your user data is not affected by the uninstallation.
Linux Flatpak distribution
Flatpak allows Mouseless' dependencies to be fully self-contained, for greater compatibility across distros and a more robust, stable application. It also allow for easy updates with flatpak update or through software management apps (GNOME Software, Discover, etc).
Quick start (recommended method):
# Add GPG-signed repo
flatpak remote-add --user --if-not-exists sonuscape \
https://dl.sonuscape.net/flatpak/sonuscape.flatpakrepo
# Install mouseless (stable channel)
flatpak install net.sonuscape.mouseless
# Run
flatpak run net.sonuscape.mouselessTo install the preview channel, use flatpak install net.sonuscape.mouseless//preview.
See updated docs for full context and alternate install methods (including standalone bundle).