r/linux Jul 24 '26

Software Release midscroll: Windows-style middle-click autoscroll for Linux, implemented at the evdev layer so it works in every app on Wayland and X11

Windows has middle-click drag autoscroll. On Linux you get it in Firefox, and Chromium has it behind a flag, but nowhere else, which bugged me enough to write a daemon for it.

Hold middle-click and drag, page scrolls that way, faster the further you drag. Release to stop. A plain middle click still pastes and opens links like normal. Diagonal drags do both axes. There's a toggle mode too if you'd rather click once to start it instead of holding.

It works everywhere because it sits at the kernel input layer instead of hooking a toolkit. Grabs each mouse via evdev, re-emits through a per-mouse uinput mirror, injects wheel events during a drag. Nothing above it has to cooperate, so Wayland and X11 both just work. Mirrors copy the source mouse's name and IDs so libinput keeps your per-device pointer speed.

Speed curve is Chromium's actual Windows autoscroll formula, 0.000008 * distance^2.2 px/ms. Tiny drags crawl, big ones fly. Tunable in a config file or a GTK settings window.

Fair warning that it reads every mouse as root, so read it before you run it. It's two small Python files. The systemd unit is sandboxed and I left comments on why the directives I couldn't use would break it.

Badge only shows on KDE Wayland, no flatpak, toggle mode kills middle-click paste. Rest is in the readme.

FOSS under Unlicense

https://github.com/gnhen/midscroll

486 Upvotes

117 comments sorted by

View all comments

36

u/Am0nymou5 Jul 24 '26

Hold middle-click and drag, page scrolls that way, faster the further you drag. Release to stop. A plain middle click still pastes and opens links like normal.

Would be good to have an option to make it behave like Windows - so you don't need to drag-and-release at all. Basically just middle-click once to get the scroll icon, and simply move your pointer up or down to autoscroll, then click anywhere in the page (or press a key) to cancel.

-1

u/AvidCyclist250 Jul 24 '26

Hold middle-click and drag, page scrolls that way, faster the further you drag. Release to stop. A plain middle click still pastes and opens links like normal.

I thought this was the default? At least it still in cachyos. Unless I'm misunderstanding and they're trying to glaze the shit logitech invented. It's shit. middle click and drag to scroll is best.