readest/apps/readest-app
Huang Xin 6f3b401c24
feat(reader): middle mouse button autoscroll in scrolled mode (#4955)
* feat(reader): add middle mouse button autoscroll in scrolled mode

Middle-clicking a book in scrolled mode on desktop apps plants an anchor
indicator and scrolls with a velocity proportional to the pointer's
distance from it, like browser autoscroll (#4951). A quick click sticks
until the next click, wheel, or Escape; press-move-release scrolls only
while held. Vertical-writing books autoscroll along the horizontal axis.

The middle button's default is suppressed while the feature is armed so
WebView2's native autoscroll cannot double-drive on Windows. A new
Middle-Click Autoscroll toggle in the Scroll settings section (desktop
only, default on) turns it off.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* refactor(reader): drop the middle-click autoscroll toggle

Middle-click autoscroll is a common desktop convention and middle click
has no other use in the reader, so it is always enabled on desktop apps
in scrolled mode instead of being a setting.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* chore(i18n): translate missing strings across all locales

Fill in translations for 69 keys that landed on main without an i18n
pass (search modes, cloud sync and Google Drive settings, page turn
animation styles, TTS states, Word Lens hints, file browser sorting,
watched-folder auto-import) in all 33 locales, plus the English plural
variants for the search result count.

Keys the scanner would prune (strings it cannot see statically on this
branch) are left untouched.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 05:01:30 +02:00
..
.agents agent: support cross-agent workspace, now it should work with claude and codex (#4318) 2026-05-27 06:28:39 +02:00
.claude feat(calibre): add Readest calibre plugin to push books and metadata (#4918) 2026-07-04 16:40:16 +02:00
bench fix(db): forward DatabaseOpts to tauri-plugin-turso (#4292) 2026-05-25 18:51:49 +02:00
data/wordlens feat(wordlens): en-en glosses, styling, derivation lemmas, display-time cap (#4744) 2026-06-23 11:15:34 +02:00
docs refactor(wordlens): rename "Word Wise" to "Word Lens" (#4633) 2026-06-17 19:09:29 +02:00
e2e test(e2e): add a Playwright web e2e lane (reading & annotation flows) (#4214) 2026-05-18 08:22:17 +02:00
extensions chore(send-to-readest): add Chrome Web Store screenshot generator (#4664) 2026-06-19 12:58:24 +02:00
public feat(reader): middle mouse button autoscroll in scrolled mode (#4955) 2026-07-06 05:01:30 +02:00
scripts fix(auth): surface OAuth callback errors on desktop deeplink (#4881) (#4894) 2026-07-02 17:03:56 +02:00
src feat(reader): middle mouse button autoscroll in scrolled mode (#4955) 2026-07-06 05:01:30 +02:00
src-tauri feat(sentry): tag events with the WebView engine and version (#4952) 2026-07-05 21:12:21 +02:00
workers feat(payment): observability for store subscription webhooks (#4704) 2026-06-21 18:02:02 +02:00
.env fix: resolve various tracked exceptions in ph (#3584) 2026-03-22 08:16:38 +01:00
.env.local.example feat(discord): support show reading status with Discord Rich Presence, closes #1538 (#2998) 2026-01-19 17:42:19 +01:00
.env.tauri fix(flathub): use custom dbus id for single instance on Linux (#2971) 2026-01-16 05:59:25 +01:00
.env.tauri.example feat(ai): AI reading assistant phase 2 (#3023) 2026-01-24 11:38:48 +01:00
.env.web
.env.web.example feat(ai): AI reading assistant phase 2 (#3023) 2026-01-24 11:38:48 +01:00
.gitignore chore(agent): update agent memories (#4833) 2026-06-28 05:11:46 +02:00
AGENTS.md agent: update implementation scope (#4319) 2026-05-27 07:50:31 +02:00
CLAUDE.md chore(agents): add AGENTS.md for readest-app (#3415) 2026-02-28 15:30:31 +01:00
components.json refactor: rename components/ui to components/primitives (#3064) 2026-01-25 06:41:18 +01:00
DESIGN.md fix(sync): cloud-sync settings polish + temporary premium ungate (#4828) 2026-06-27 19:11:17 +02:00
i18n-langs.json feat(i18n): add Uzbek and Brazilian Portuguese translations (#4061) 2026-05-05 09:20:44 +02:00
i18next-scanner.config.cjs fix(cbz): ComicInfo metadata + CBZ page count + WebDAV i18n (#4282) 2026-05-23 15:59:29 +02:00
next.config.mjs build(web): standalone Docker image + drop Turbopack build cache (#4619) 2026-06-16 21:21:24 +02:00
open-next.config.ts chore(config): add disableIncrementalCache to skip populating remote R2 incremental cache (#4623) 2026-06-17 03:51:17 +02:00
package.json release: version 0.11.17 (hotfix for an Android crash) (#4852) 2026-06-29 04:21:28 +02:00
playwright.config.ts test(e2e): add a Playwright web e2e lane (reading & annotation flows) (#4214) 2026-05-18 08:22:17 +02:00
postcss.config.mjs
raw-loader.d.ts
release-notes.json release: version 0.11.17 (hotfix for an Android crash) (#4852) 2026-06-29 04:21:28 +02:00
skills-lock.json ui/ux: codify design system and migrate settings to shared primitives (#4116) 2026-05-10 17:46:25 +02:00
tailwind.config.ts chore: bump next.js to the latest version (#3106) 2026-01-29 12:29:17 +01:00
TODOS.md feat(tts): gapless Web Audio playback engine for Edge TTS with chapter timeline and seek (#4931) 2026-07-05 10:50:22 +02:00
tsconfig.json fix(db): forward DatabaseOpts to tauri-plugin-turso (#4292) 2026-05-25 18:51:49 +02:00
vite.config.ts chore: experimental vinext build (#3486) 2026-03-06 18:04:28 +01:00
vitest.android.config.mts fix(reader): Android text selection breaks on the first word of hyphenated paragraphs (#4545) 2026-06-12 12:30:56 +08:00
vitest.browser.config.mts chore: bump turso to the latest version (#4086) 2026-05-07 20:11:47 +02:00
vitest.config.mts fix(reader): Android text selection breaks on the first word of hyphenated paragraphs (#4545) 2026-06-12 12:30:56 +08:00
vitest.env.mts feat(node): refactor appService into focused service modules and add app service for Node runtime (#3530) 2026-03-13 17:51:35 +01:00
vitest.setup.ts feat(tts): reuse the speaking session across paragraph & RSVP modes (#4657) 2026-06-19 07:47:29 +02:00
vitest.tauri.config.mts perf(import+open): native Rust EPUB/MOBI parser, OPF prefetch, parallel TOC enrichment (#4369) 2026-06-10 16:58:25 +02:00
vitest.tauri.setup.ts feat(node): refactor appService into focused service modules and add app service for Node runtime (#3530) 2026-03-13 17:51:35 +01:00
wdio.conf.ts chore(testing): add Tauri integration tests and E2E test infrastructure (#3483) 2026-03-05 19:14:01 +01:00
wrangler.toml feat(payment): observability for store subscription webhooks (#4704) 2026-06-21 18:02:02 +02:00