Skip to content

v1.0.0-preview.3 (Linux-only)

Pre-release
Pre-release

Choose a tag to compare

@cymian cymian released this 15 May 22:56
e873bcb

This 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-overlay
      • toggle-free-mode, enter-free-mode, exit-free-mode
      • toggle-enabled, settings
  • Invert colors command added
  • Master opacity setting added
  • Increase/decrease opacity commands added

UX / Quality-of-life

  • Consolidated update-related settings into General config section
    • Settings... menu item now opens the 'config editor'
    • user_prefs.yaml file 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_columns preset
  • Ctrl+S saves the config when editor open

Debug / logging

  • Added log_level config field
  • A new log file is now created per session (up to 10 stored)
  • Added force overlay resize command
  • Added reset keyboard state command

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_shell to false in 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: cairo or webview
  • use_dmabuf / --use-dmabuf, values: true or false

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 cairo cli 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 escape instead of the system hotkey, or click the close button on the config editor
  • Will be fixed in next release