111 lines
3.5 KiB
Markdown
111 lines
3.5 KiB
Markdown
# middleclick-autoscroll
|
|
|
|
Middle-click autoscroll for Linux. Hold the middle mouse button, move the
|
|
mouse, the page scrolls — like on Windows. Works with browsers, Electron apps,
|
|
Flatpaks, snaps, Steam, and anything else that runs on Chromium under the hood.
|
|
|
|
No app list to maintain. The program looks at what's actually installed, figures
|
|
out what's Chromium-based, and handles it.
|
|
|
|
## Installing
|
|
|
|
**Arch, CachyOS, EndeavourOS, Manjaro**
|
|
|
|
```bash
|
|
paru -S middleclick-autoscroll
|
|
```
|
|
|
|
**Debian, Ubuntu, Linux Mint, Pop!_OS**
|
|
|
|
```bash
|
|
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
|
|
```
|
|
|
|
**Fedora, RHEL, CentOS Stream**
|
|
|
|
```bash
|
|
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
|
|
```
|
|
|
|
**openSUSE**
|
|
|
|
```bash
|
|
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
|
|
```
|
|
|
|
Then run `middleclick-autoscroll enable`. That's it — nothing else to configure.
|
|
|
|
Updates come through your package manager like anything else. Without a package,
|
|
build [from source](#building-from-source) or grab a `.deb`/`.rpm` from the
|
|
[releases page](https://github.com/Felitendo/middleclick-autoscroll/releases).
|
|
|
|
Run `middleclick-autoscroll disable` before removing the package — it undoes
|
|
everything.
|
|
|
|
## How it works
|
|
|
|
Blink (the engine in Chromium, Electron, and CEF) already has autoscroll, but
|
|
it's off on Linux because middle click does primary-selection paste there. One
|
|
flag turns it on:
|
|
|
|
```
|
|
--enable-blink-features=MiddleClickAutoscroll
|
|
```
|
|
|
|
Doing that for one app is a five-minute job. Doing it for *all* of them — across
|
|
flag files, desktop entries, Flatpaks, snaps, autostart entries, Steam — so it
|
|
survives upgrades, is not. That's what this does.
|
|
|
|
New apps are picked up within a second by a systemd path unit that watches the
|
|
relevant directories. Without systemd, `middleclick-autoscroll apply` does the
|
|
same thing manually.
|
|
|
|
## Steam
|
|
|
|
Steam's web UI supports autoscroll but has no way to pass extra arguments to its
|
|
helper. The program patches the helper launch script and adds `-noverifyfiles`
|
|
to Steam's launcher so the patch sticks. That means Steam won't auto-repair
|
|
damaged files on its own — you can turn this off separately in the settings.
|
|
|
|
## 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 |
|
|
|
|
See `man middleclick-autoscroll` for more.
|
|
|
|
## Building from source
|
|
|
|
```bash
|
|
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](packaging/README.md) for release builds and repo
|
|
signing.
|
|
|
|
## License
|
|
|
|
GPL-3.0-or-later.
|