Skip to content

v4.0.0

Choose a tag to compare

@AndyHazz AndyHazz released this 19 Apr 21:13

Bookends v4.0.0

A major release focused on two big ideas: a unified Preset Library for managing your overlays, and a community Gallery for discovering and sharing presets. The plugin's menus have been reorganised around the new concept of a named, editable "active preset", and a handful of new tokens round out status-bar parity with stock KOReader.

New: Preset Library

A single modal (opened from the Bookends menu, via the Open preset library gesture, or via the new Bottom-centre tap option) with two tabs:

  • My presets — your local presets. Tap to preview live on your overlay, tap Apply to keep, long-press or Manage… for rename / duplicate / delete / submit-to-gallery.
  • Gallery — community-shared presets, fetched on Refresh (never automatically). Preview the same way as local presets, tap Install to save a copy into My presets.

Every tweak you make to the active preset (fonts, colours, margins, bars, per-position tokens…) now autosaves to the preset file within 2 seconds. No more "I edited the preset and my changes vanished."

New: Community Gallery

Submit your presets to the gallery directly from the Preset Library via Manage → Submit to gallery…. A pull request is opened on AndyHazz/bookends-presets for review. Device-specific fonts are detected and stripped automatically so your preset works for everyone.

After Refresh, the status strip shows "N presets in the approval queue" so you can see what's pending review.

New: Gestures

  • Bottom-centre tap gesture — now configurable under Bookends settings. Choose from:
    • Toggle bookends visibility
    • Cycle starred presets (star your favourites in the Preset Library)
    • Open preset library
  • Open preset library is also registered as a KOReader dispatcher action, so you can bind it to any gesture via Settings → Taps and gestures → Gesture manager.
  • Long-press any full-width progress bar to open the skim-to dialog (replaces stock status bar's long-press-to-skim).
  • All four Bookends gestures now share a consistent "Bookends:" title prefix in the Gesture Manager so they're easy to find.

New: Status bar parity tokens

Bookends can now fully replace KOReader's built-in status bar. Added tokens:

  • %V — page-turn direction arrow (shows when inverted)
  • %X — total annotations count
  • %M — memory used (MiB)
  • An invert-condition token for styling when page-turn direction is flipped

Plus extra glyphs in the token picker for the frontlight, battery warning, charging, wifi, and page-turn states — making stock-bar lookalikes quick to assemble.

New: Font-family fonts

Top of the font picker now has a Font-family fonts section with Serif, Sans-serif, Monospace, Cursive, Fantasy entries. Picking one binds the preset to the user's own family choice rather than a specific TTF — so your preset stays readable when installed on someone else's device.

New: Progress bar enhancements

  • %bar{v10} and %bar{100v10} — inline width/height modifiers for per-line bars
  • Configurable border thickness (global setting, per-bar override)
  • Border thickness now grouped next to Border colour in the menus

Menu reorganisation

The Bookends menu now reads top-down as:

Bookends settings               ← global prefs (never saved with presets)
────
Preset (<Active preset name>)   ← styling tweaks that ARE saved with the preset
Top / Bottom × left / centre / right — with inline previews
Full width progress bars
────
Save as new preset…

The split between Bookends settings (always global) and Preset (per-preset) makes it unambiguous which changes follow your preset around vs. which stay put when you switch.

Smaller improvements

  • Autosave — 2-second debounced flush on any edit; no more lost work at book close / suspend
  • Manual-refresh-only gallery — no automatic network requests
  • Offline handling — clear messaging in the gallery when disconnected
  • Font-family scripts/fantasy fonts — family picker now keeps script and fantasy fonts that only have one weight variant
  • French, German, Spanish, Italian, Brazilian Portuguese translations refreshed with ~190 new strings
  • British EnglishBottom centre, Border colour, Symbol colour and friends now render correctly

Under the hood

  • Debounced autosave, settings flush on manager close — your edits are on disk within seconds
  • Menu builders split into menu/ subfolder; pure utility helpers in utils.lua; central defaults/schema in config.lua
  • Token condition-state cache across a single paint pass — faster repaint on busy overlays
  • Crash-proof submit flow with full xpcall wrapping around the gallery submission path
  • Cloudflare Worker handles gallery submissions; GitHub Actions auto-regenerate index.json on the presets repo