v1.0.0-preview.3 (Linux-only)
Pre-releaseThis release improves support for various compositors (tested Niri, Hyprland, Plasma x11, i3 + picom), fixes rendering issues on NVIDIA cards, and includes various other enhancements and fixes.
Feedback always appreciated! 🙏
Enhancements
Features
- Deep link support
- 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.
Invert colorscommand addedMaster opacitysetting addedIncrease/decrease opacitycommands added
UX / Quality-of-life
- Consolidated update-related settings into
Generalconfig sectionSettings...menu item now opens the 'config editor'user_prefs.yamlfile deprecated/removed
- Settings window has buttons on the side for quick scrolling to sections
- Improved config error handling
- On startup, gracefully falls back to individual defaults (instead of entire default config)
- Made comma and period 50% larger for visibility (and semicolon 25% larger)
- Default grid settings now match the
position_based_columnspreset Ctrl+Ssaves 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
Fixes
- Fixed slight misalignment of characters in overlay due to varying character width
- Fixed escape not closing 'find' widget in config editor
- Improved keyboard detection (more tolerant of EBUSY errors) and failure reporting
- More robust JS execution strategy -- hopefully fixes/prevents "unsupported result type" errors
Wayland overlay backend
On Wayland, the overlay now uses wlr-layer-shell by default, if available. To use XWayland instead, either:
- set
debug_options.use_layer_shelltofalsein your config - use cli option
--use-layer-shell false
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
Disabling overlay animations
Wayland compositors that support wlr-layer-shell (e.g. Hyprland, Sway, niri, KDE) may apply fade or other animations to windows by default. For maximal responsiveness, it's recommended to disable this for overlays in your environment config. Target the 'mouseless-overlay' window namespace to do so -- e.g. for hyprland, add layerrule = noanim, mouseless-overlay to your hypr.conf file, then run hyperctl reload.
Known issues / workarounds
Issue: overlay doesn't cover top bar / system tray
- Workaround: Use
--overlay-renderer cairocli arg or{ "overlay_renderer": "cairo" }debug option in config - Will be fixed in next release!
Issue: config editor / app window won't open again after closing it with a system hotkey
- Workaround: Use
escapeinstead of the system hotkey, or click the close button on the config editor - Will be fixed in next release