Skip to content

midscroll v1.11

Choose a tag to compare

@gnhen gnhen released this 20 Jul 20:38

Feature release adding a settings GUI and a click-to-toggle scroll mode, plus
security hardening across the daemon and session helper. Toggle mode was
requested in #1 by @ionburger.

Added

  • Settings GUI (midscroll-settings). A GTK4 window to change every
    tunable - speed, dead zone, event rate, natural scrolling, the app blacklist
    and the new toggle mode - with no terminal or config editing. Changes are
    written by a small privileged helper (midscroll-apply) through pkexec,
    which restarts the daemon so they take effect immediately.
  • Toggle mode (TOGGLE_MODE). Click the middle button once to start
    autoscroll and again - or any click - to stop it (Windows-Explorer / Firefox
    style) instead of holding and dragging. Off by default; enable it in the GUI
    or the config. Requested in #1 by @ionburger.
  • Themed app icon. The scroll-arrows badge artwork now doubles as the
    settings app icon, so the launcher and Wayland window icon match the badge.

Security

  • Sandboxed the daemon and the session helper. The overlay now runs with
    NoNewPrivileges, ProtectSystem, and kernel/clock/namespace
    with a restricted address-family set; the daemon gained a syscall filter
    (@system-service, EPERM) and MemoryDenyWriteExecute.
  • Bounded the one input crossing the pkexec boundary. The blacklist value
    passed to midscroll-apply is now stripped of anything that is
    plausible window-class character and length-capped, so it can't mangle the
    config or carry a malformed payload.
  • Shipped a polkit policy for midscroll-apply (auth_admin_keep), so
    applying settings uses a scoped, briefly-cached authorization i
    generic full-admin auth.
  • Hardened self-recognition. The daemon refuses to grab its o
    mirrors even if the phys marker fails, and warns at startup if the marker
    doesn't round-trip - closing a hotplug window that could feed r
    back on itself.

Fixed

  • Scroll badge and app blacklist under the new sandbox. kdoto
    real, shared, writable /tmp to hand KWin its script; the overlay now uses
    ProtectSystem=full (not strict) and no PrivateTmp, which
    broken the badge and focus reporting.
  • Settings window height. The window now opens tall enough to
    control, capped to the monitor height so it never runs off a small screen.

Notes

  • Middle-drag remains hold-and-drag by default; toggle mode is op
  • You are encouraged to review the source yourself - it runs as root at the
    input layer. See the Security section of the README.
  • Packaging bumped for Fedora (RPM), Debian (deb), and Arch (PKGBUILD).

Full changelog: v1.6...v1.11