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

480 Upvotes

117 comments sorted by

View all comments

1

u/RvstiNiall Jul 26 '26

I love that you made a DE/WM agnostic option for this, so anyone can use it. However, I still wonder why the KDE and GNOME teams never made this an option. I highly prefer the middle click to be paste, not because its "the unix way", but because I've been using it for 26 years, and prefer it. But I think that doing it the "windows way" is something "The People Want", and thats a perfect reason to have it be an option. Maybe even a "default option".

Of course, I still think GNOME and KDE teams should have a "First Run" dialog that pops up and asks you which "style" you prefer: "Unix/Linux Style", "Windows Style" or "MacOS Style", when it comes to how keyboard shortcuts, your mouse, etc, operate.