A build with a prefix of its own put them in $(PREFIX)/lib/systemd/user, which is right for /usr/local and wrong for the one prefix an install without root can use: systemd searches $XDG_DATA_HOME/systemd/user and never ~/.local/lib/systemd/user. An install into ~/.local came out with a working program whose watcher could not be enabled at all. They go under share now, which both a system prefix and a home one are searched for. Nothing changes for the packages - the deb and the rpm pass USERUNITDIR in themselves. That prefix is what an atomic distribution leaves a user, so the readme says how to install on Bazzite: layer the rpm and reboot, or put the whole thing in $HOME, which is where everything it writes ends up anyway.
4.8 KiB
middleclick-autoscroll
middleclick-autoscroll (what a great name, wow) is a CLI for linux that enables autoscroll in every application that supports it. Works with browsers, electron apps like discord and spotify, steam, and anything else that runs on chromium.
This tool looks at which of your apps run chromium under the hood and applies the necessary steps to get autoscrolling working (often just a feature flag). One install, one command and autoscroll ✨just works✨ (like on windows).
How to use
Just run middleclick-autoscroll. This will open the configuration TUI that looks like this:
Middle-Click Autoscroll
Autoscroll ON
Applications covered 11 of 13
Not identified 1 - see the applications list
Steam ON
New applications ON
Middle-click paste off
Last applied 2 minutes ago
Applications pick this up the next time they are started.
[1] Turn autoscroll on or off
[2] Re-apply everything
[3] Applications
[4] Settings
[q] Quit
>
Normally you just need to press [1] and the magic is done.
Pressing [3] lets you see every app that was found and toggle each one individually.
Applications
▸ Steam on (Steam)
Chromium on (launcher)
Discord on (flag file)
Obsidian on (launcher)
Spotify on (launcher)
Slack off
Cursor cannot tell
Up/Down select - Space turns one on or off - q goes back
You can also press [4] for more settings.
How to install
Arch (for the cachyos enjoyers)
yay -S middleclick-autoscroll
Fedora (for the mentally stable)
sudo curl -fsSL -o /etc/yum.repos.d/middleclick-autoscroll.repo \
https://felitendo.github.io/middleclick-autoscroll/middleclick-autoscroll.repo
sudo dnf install middleclick-autoscroll
Bazzite and friends (for the ones who reboot to install things)
sudo curl -fsSL -o /etc/yum.repos.d/middleclick-autoscroll.repo \
https://felitendo.github.io/middleclick-autoscroll/middleclick-autoscroll.repo
sudo rpm-ostree install middleclick-autoscroll
systemctl reboot
Don't want to layer a shell script into your image? Everything this thing does
happens in $HOME anyway, so it can just live there too - no root, no reboot
(needs make, otherwise grab it in a distrobox):
git clone https://github.com/Felitendo/middleclick-autoscroll
cd middleclick-autoscroll && make install PREFIX=~/.local
Debian (for the elderly)
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://felitendo.github.io/middleclick-autoscroll/KEY.gpg \
| sudo gpg --dearmor -o /etc/apt/keyrings/middleclick-autoscroll.gpg
echo "deb [signed-by=/etc/apt/keyrings/middleclick-autoscroll.gpg] https://felitendo.github.io/middleclick-autoscroll/deb ./" \
| sudo tee /etc/apt/sources.list.d/middleclick-autoscroll.list
sudo apt update && sudo apt install middleclick-autoscroll
openSUSE (for both of you)
sudo rpm --import https://felitendo.github.io/middleclick-autoscroll/KEY.gpg
sudo zypper addrepo --gpgcheck --refresh \
https://felitendo.github.io/middleclick-autoscroll/rpm middleclick-autoscroll
sudo zypper install middleclick-autoscroll
How it works
Blink (the engine in Chromium, Electron, and CEF) already has autoscroll, but it's off on Linux by default because middle click normally pastes the clipboard (??). This flag turns it on:
--enable-blink-features=MiddleClickAutoscroll
But doing that for every app is kinda bothersome and it also might break with updates. That's why I created this small tool to automate that.
Browsers get the same thing but this time without "blink":
--enable-features=MiddleClickAutoscroll
But both do the same ¯_(ツ)_/¯
New apps are picked up by a systemd path unit that watches the
relevant directories. If you hate systemd; middleclick-autoscroll apply does the
same thing manually.
Commands
| Command | |
|---|---|
middleclick-autoscroll |
Interactive menu |
… enable |
Turn on, apply, start watching |
… disable |
Undo everything |
… apply |
Apply to new apps |
… apply --rebuild |
Redo from scratch |
… status |
What's covered |
… list |
All apps and how they're handled |
Building from source
make
sudo make install
Optionally needs msgfmt (gettext) for translations and scdoc for the man
page. Supports PREFIX and DESTDIR. make check runs syntax checks and
shellcheck.
See packaging/README.md for release builds and repo signing.
License
GPL-3.0-or-later.