Commit Graph
886 Commits
Author SHA1 Message Date
jpirnay c273e250f2 Implement sparse css cache plus dynamic banding for AA 2026-05-11 22:27:13 +02:00
jpirnay fb16db2b48 Reduce memory footprint 2026-05-11 21:50:44 +02:00
jpirnay 2b1dbb6737 Add extended TiltModel 2026-05-11 16:29:40 +02:00
jpirnay e035e4584b Apply PR 1783 2026-05-11 13:38:29 +02:00
jpirnay 461a277925 Use upstream variant to get in sync 2026-05-11 13:05:43 +02:00
jpirnay c9c9bf0f93 Merge pull request #194 from jpirnay/fix-opds-oom
feat: Support OPDS image sidecar download and fix OOM for large lists
2026-05-10 21:41:15 +02:00
jpirnay 917219401a Dont create cjk fonts (yet) 2026-05-10 21:28:32 +02:00
jpirnay f48636c2b9 Fix section hash 2026-05-10 21:26:52 +02:00
jpirnay 5304086bcd Fixes 2026-05-10 21:06:55 +02:00
jpirnay 80eb889256 Add opds image download 2026-05-10 20:47:35 +02:00
jpirnay ba30ed029f Update font weights for Bitter font in YAML 2026-05-10 18:10:53 +02:00
jpirnay c4b94737fd Support large opds result listings without an OOM 2026-05-10 18:03:47 +02:00
jpirnay fe60b12d86 Improving KOReader sync 2026-05-10 15:46:33 +02:00
jpirnay b5ea8d3550 Remove duplicate strings 2026-05-10 14:16:06 +02:00
jpirnay a3729348e4 Update Polish 2026-05-10 14:11:37 +02:00
jpirnay ad52abf069 Close source TTFont after instantiateVariableFont rebind
instantiateVariableFont with default inplace=False returns a *new*
TTFont; rebinding `font` strands the source TTFont and its file handle
open until GC. The trailing font.close() then closes only the new
pinned-instance object.

Capture the source as a separate reference and close both with nested
try/finally: inner finally closes the static instance after save (or
on save failure), outer finally closes the source unconditionally.
2026-05-10 10:35:51 +02:00
jpirnay 49b039a775 Fix SMP ligature filter and Extension-wrapped GPOS kern dispatch
Two related bugs in fontconvert_sdcard.py:

1. SMP filter for ligatures was post-pack, which only checked the
   already-masked low half (always ≤ 0xFFFF), didn't check `lc`, and
   couldn't catch SMP cps that already had bits truncated by the
   mask. Filter at source instead — inside extract_ligatures_fonttools
   when building the `filtered` dict — so any seq with an SMP
   component or any lig_cp > 0xFFFF is dropped before packing. The
   chained 3+ char path is naturally covered because
   `intermediate_cp = filtered[prefix].lig_cp` reads from the same
   already-filtered table.

2. GPOS kern dispatch checked `actual.LookupType` after unwrapping an
   Extension subtable. Format-specific subtables (PairPosFormat1/2)
   don't carry `LookupType`, so this fails for any Extension-wrapped
   PairPos lookup — i.e. how every modern font (Inter, Source Serif,
   Bitter, …) ships kern. Use the effective type instead:
       effective_type = getattr(st, "ExtensionLookupType", lookup.LookupType)
   so non-Extension lookups read the outer type and Extension lookups
   read the inner ExtensionLookupType, and Type-2 PairPos lookups
   actually reach _extract_pairpos_subtable in either case.
2026-05-10 10:16:36 +02:00
jpirnay 907fdadf16 Drop unsupported static=True kwarg from instantiateVariableFont
instantiateVariableFont() in current fontTools doesn't accept a
`static` parameter (signature: varfont, axisLimits, inplace=False,
optimize=True, overlap=…, updateFontNames=False, *, downgradeCFF2=False).
Calling it with static=True raises TypeError, breaking
extract_static_instance() for any sd-fonts.yaml entry that uses the
`variable: {wght: …}` form.

Drop the unsupported kwarg; keep updateFontNames=True (name table
accuracy) and optimize=False (skip wasted gvar work when every axis
is fully pinned). The output is still a fully-pinned static instance
because all yaml-declared axes are pinned in `axes`.
2026-05-10 08:28:16 +02:00
jpirnay d870d4f99f Use dash as valid breakpoint between words 2026-05-09 19:59:10 +02:00
jpirnay eee63b2155 Language updates 2026-05-09 01:08:15 +02:00
jpirnay 6059cb8a25 Add firmware update options to submenu 2026-05-09 00:36:54 +02:00
jpirnay 1f1a80581d Merge pull request #185 from jpirnay/feat-pr1775
feat: Add and refactor carousel theme (Upstream 1775 by zgredex)
2026-05-09 00:10:00 +02:00
jpirnay 481309a708 Don't gate thumbnail generation on the href extension 2026-05-08 23:55:45 +02:00
jpirnay b43ba8059b Height-only upscaling still never takes effect 2026-05-08 23:51:46 +02:00
jpirnay db4ef52d22 Remove the destination file on post-create failures 2026-05-08 23:50:27 +02:00
jpirnay 08ddc4e481 Use smaller fit scale 2026-05-08 23:41:43 +02:00
jpirnay 79ef2eea91 Some fixes for cover generation 2026-05-08 18:04:41 +02:00
jpirnay 8a92edcea5 Add and refactor LyraCarouselTheme by zgredex 2026-05-08 09:36:12 +02:00
Joel Goguen 3a612df4b5 feat: Allow OTA update to beta releases 2026-05-07 23:29:15 -04:00
jpirnay 4005bf55e5 Add Lyra Carousel home theme 2026-05-07 23:42:35 +02:00
jpirnay a670012328 Merge pull request #181 from jpirnay/feat-table
feat: Adapt table implementation from crossink
2026-05-07 22:45:10 +02:00
jpirnay 3316d33a4e Review comments 2026-05-07 22:20:10 +02:00
jpirnay e22ec604a6 Fix 2026-05-07 22:02:21 +02:00
jpirnay 609d8eec25 Add progressive jpeg support (idea from broemp) 2026-05-07 21:47:59 +02:00
jpirnay 02bdf3f65d Revert "Adapt table implementation from crossink"
This reverts commit ca9475f0c3.
2026-05-07 21:37:50 +02:00
jpirnay 3ecbf29bd4 Adapt table implementation from crossink 2026-05-07 21:35:14 +02:00
jpirnay ca9475f0c3 Adapt table implementation from crossink 2026-05-07 21:33:35 +02:00
jpirnay 1ca18c4575 Revert to same quantization thresholds as in upstream 2026-05-07 20:25:57 +02:00
jpirnay a0aee0ba1b SD-card firmware update + X3 bootloader compatibility (#1786) 2026-05-07 19:38:12 +02:00
jpirnay 82448e856e Merge pull request #179 from jpirnay/feat-pr1809
feat: Movable status bar and dual-edge progress bars (upstream PR 1809 by LSTAR1900)
2026-05-07 19:19:50 +02:00
jpirnay b7a2a4b243 Use fixed-size integers for BookMetadataCache data (#1844 by znelson) 2026-05-07 19:09:12 +02:00
jpirnay 104af74079 Additional glyphs 2026-05-07 08:31:22 +02:00
jpirnay 3254582a20 Extend script functionality 2026-05-07 08:23:51 +02:00
jpirnay 8f92c50e48 Merge pull request #178 from jpirnay/feat-koreader-metadata
feat: Send optional document metadata with KOSync progress uploads (upstream pr 1820 by nperez0111)
2026-05-06 23:18:38 +02:00
jpirnay 4f140afd10 Movable status bar and dual-edge progress bars 2026-05-06 23:09:26 +02:00
jpirnay 464846fd75 Add builtin as default everywhere 2026-05-06 22:54:02 +02:00
jpirnay dedc5bd4af Send optional document metadata with KOSync progress uploads 2026-05-06 22:44:47 +02:00
jpirnay bd71bf465c Merge pull request #176 from jpirnay/fix-powerbutton
fix: Amend powerbutton logic (less actions on going back to sleep)
2026-05-06 22:09:00 +02:00
jpirnay e13ba3e180 Apply PR 1807 by WuToFu 2026-05-06 21:55:54 +02:00
jpirnay b8f2ecf23d Rework logic 2026-05-06 21:38:00 +02:00