Compare commits

..
4 Commits
Author SHA1 Message Date
Felitendo e5d2481d6d chore: 1.5.4
release / Debian package (push) Failing after 14s
release / RPM package (push) Failing after 22s
release / Release and repositories (push) Skipped
release / Install from the RPM repository (push) Skipped
2026-09-24 09:47:59 +02:00
Felitendo fc9dae95f9 fix: drop the detection cache on every update 2026-09-24 09:47:57 +02:00
Felitendo dd0671440d docs: commit and push only after a local check 2026-09-24 08:42:01 +02:00
Felitendo 0b1b33ea84 docs: reword how it works 2026-09-24 08:38:06 +02:00
5 changed files with 33 additions and 13 deletions

No files matched your search

+6
View File
@@ -2,6 +2,12 @@
What each release brings, newest first. The [GitHub releases](https://github.com/LoonixTools/middleclick-autoscroll/releases) add every commit that went into it. Versions before `v1.1.0` came without notes. What each release brings, newest first. The [GitHub releases](https://github.com/LoonixTools/middleclick-autoscroll/releases) add every commit that went into it. Versions before `v1.1.0` came without notes.
## v1.5.4
_2026-09-24_
A small patch. For some of you Discord was still missing after `v1.5.3`, because an old result from before the update kept it out. Every update now starts with a fresh scan, so Discord shows up again after your next login, or right away with **Re-apply everything**.
## v1.5.3 ## v1.5.3
_2026-09-24_ _2026-09-24_
+3
View File
@@ -14,6 +14,9 @@
- Subject as short as possible. Imperative, lowercase, no trailing period. - Subject as short as possible. Imperative, lowercase, no trailing period.
- Body only when something genuinely cannot be inferred from the diff. - Body only when something genuinely cannot be inferred from the diff.
- Never add `Co-Authored-By`, "Generated with" or any other AI attribution to commits or PR descriptions. - Never add `Co-Authored-By`, "Generated with" or any other AI attribution to commits or PR descriptions.
- Do not commit or push before I have checked the changes locally and said they are fine. Then
commit the result once and push. No commits for attempts that did not work. This also goes for
releases and tags.
## Releases ## Releases
+1 -1
View File
@@ -8,7 +8,7 @@
# Overridable so a packager can pass the version it is actually building # Overridable so a packager can pass the version it is actually building
# (`make VERSION=$pkgver`). The literal below is the fallback for builds # (`make VERSION=$pkgver`). The literal below is the fallback for builds
# straight from a checkout, and is what a release tag has to carry. # straight from a checkout, and is what a release tag has to carry.
VERSION ?= 1.5.3 VERSION ?= 1.5.4
PREFIX ?= /usr PREFIX ?= /usr
DESTDIR ?= DESTDIR ?=
+15 -9
View File
@@ -108,22 +108,28 @@ Press **1**. Autoscroll _✨just works✨_, like on Windows.
<details> <details>
<summary>How it works</summary> <summary>How it works</summary>
Chromium, Electron and CEF all have autoscroll built in, but it is off on Linux. One flag turns it on: Chromium, Electron and CEF all have autoscroll built in. On Linux it is off, because middle click
pastes there. One flag turns it back on:
``` ```
--enable-blink-features=MiddleClickAutoscroll --enable-blink-features=MiddleClickAutoscroll
``` ```
Setting that for every app by hand is a pain and breaks with updates, so this tool does it for you. Adding it to every app by hand is a pain, and updates can undo it. This tool does it for you:
New apps are picked up on their own. AppImages are covered too, without unpacking or starting them.
Some browsers want a different name. Brave and Helium ship the feature under their own, so browsers - It finds every app built on Chromium. AppImages too, without unpacking or starting them.
are handed all of the names at once. A name a browser does not know is ignored. - It puts the flag where the app reads it: the app's flags file, or a copy of its menu entry in
your home folder.
- It watches for new apps and covers them on their own.
- It only writes to your home folder, and `disable` puts everything back.
Steam is its own case. It builds the command line for its interface itself, and repairs every file **Browsers** get a spelling of the flag that shows no warning bar. Brave and Helium also get their
that looks changed. So the flag goes into the script that starts the web helper, written to keep the own name for the feature. A browser ignores names it does not know.
file at the size and date Steam recorded. Steam finds nothing to repair, and autoscroll works in the
store and the library. After a Steam update the patch is put back on its own. **Steam** builds its own command line and repairs any file that looks changed. So the flag goes into
the script that starts its web helper, and the file keeps the size and date Steam expects. Steam
finds nothing to repair, and autoscroll works in the store and the library. After a Steam update,
the patch comes back on its own.
</details> </details>
+8 -3
View File
@@ -336,9 +336,14 @@ _mca_stat_batch() {
# below it are keyed on size and mtime, so an entry for a file that has not # below it are keyed on size and mtime, so an entry for a file that has not
# changed is never looked at again. A cache written when a verdict meant # changed is never looked at again. A cache written when a verdict meant
# something else (before an AppImage could come out as anything but "no") # something else (before an AppImage could come out as anything but "no")
# would therefore keep answering the old way forever. Bumping this is how such # would therefore keep answering the old way forever.
# a cache gets dropped instead. #
MCA_CACHE_FORMAT='# middleclick-autoscroll detect 2' # So the version is part of it, and every update drops the cache. The rules
# change far more often than anyone remembers to bump a number by hand: v1.5.3
# taught the hint scan about Discord's launcher, and Discord stayed out of the
# list anyway, because /usr/bin/discord had not changed and its old "no" was
# still in here.
MCA_CACHE_FORMAT="# middleclick-autoscroll detect 2 $MCA_VERSION"
_mca_cache_load() { _mca_cache_load() {
local path stamp verdict first=1 local path stamp verdict first=1