Skip to content

Releases

Runefin 0.1.36

Choose a tag to compare

@lifk lifk released this 12 Nov 14:39

Runefin 0.1.36 — faster everywhere it is felt, and a screen-reader tree.

  • A launch reaches its first frame in about a tenth of a second. The GPU now starts before anything else in main, so the adapter, device and pipelines overlap the config read and the window (143 → 86–91 ms).
  • Home paints what you last saw. The rails are kept on disk (a day at most, no token, deleted on sign-out) and drawn with the first frame — about 125 ms instead of 600 — then replaced when the server answers.
  • A cold Home holds real content in ~200 ms. Continue Watching is its own request and no longer waits for the library list or one Recently Added query per library; Recently Played moved behind the rails.
  • Play resumes in a third of a second. The resume seek is queued when the pipeline is PLAYING instead of after a first frame at the file's beginning (1.65 s → 0.29–0.53 s after the pipeline, 0.79–1.05 s from process start).
  • Screen readers. Every window and overlay is published to the desktop's accessibility API, the controls that were silent are named, the timeline and volume read as sliders with ranges, and the end-of-episode card is announced once.
  • Big screen. The focused card's halo no longer disappears after a sideways move, and Home's live channel tiles carry it too.
  • Engine. Rune's fork moved 418 upstream commits forward: fallback fonts through fontconfig, colour emoji, bidirectional text, four-thread image decoding, virtual-list and paint fixes.

Install the bundle below, or add the repository once for updates:

flatpak remote-add --if-not-exists --user runefin https://lifk.github.io/Runefin/runefin.flatpakrepo
flatpak install --user runefin io.github.lifk.Runefin

Runefin 0.1.35

Choose a tag to compare

@lifk lifk released this 12 Nov 10:01

Runefin 0.1.35 — resume where you asked, and move without jumps.

  • Resume is applied to the picture, not just the clock. A direct play now seeks and waits for the pipeline to reach the target; a transcode URL is trusted only when it carries a matching StartTimeTicks, otherwise the stream is seeked too. If the seek cannot land, playback starts at zero and tells you instead of showing the first frame under a resume timeline.
  • Home and library moves glide. Rune’s implicit instant scroll was overriding the router’s animation; focus moves now use a quiet focus plus an animated reveal, so moving between rails scrolls the page smoothly. A regression test pins the in-between frames.
  • Detail Back returns to the top. Back sits above the page’s scroll viewport, so focusing it now glides the page to the hero.
  • Cast focus is a circular ring on the portrait, not a blue box over the name and role.

Update with flatpak update --user or the bundle below.

Runefin 0.1.34

Choose a tag to compare

@lifk lifk released this 11 Nov 19:42

Runefin 0.1.34 — the D-pad walk covers every screen.

  • Reachability cases now include Seerr explore, Seerr browse, Seerr requests, Seerr detail, person pages and the remote control.
  • Fixed the dead ends they found:
    • Seerr had no sidebar and no zones for its toolbar, mode/filter rows or result cards; the search field also trapped Up/Down.
    • Person and Seerr detail were missing the sidebar.
    • The remote’s zones listed the wrong session store (cast_sessions) and stopped at the session card, so Pause/+30 s/Stop were unreachable.
  • Every screen, overlay and player layer now appears in tv_reach_tests: 40+ cases, all direction-only, all in the normal test run.

Update with flatpak update --user or the bundle below.

Runefin 0.1.33

Choose a tag to compare

@lifk lifk released this 11 Nov 19:26

Runefin 0.1.33 — the reachability net now covers every overlay.

  • The D-pad reachability test walks these as their own focus surfaces: card menu, pre-play sheet, playlist / collection / cast pickers, new-playlist prompt, still-watching and resume-conflict cards, shortcut sheet, online subtitle search, the shelf (“See all” grid), plus all the player panels from 0.1.32.
  • Every one of them was a dead end on a remote: the first row could be activated and arrows did nothing, because the sheets were not focus groups. They are now, and the interrupt cards and shelf have explicit zones.
  • Also fixed while testing: the resume-conflict card now takes focus when it appears, the new-playlist name field passes Down to Create, and the shelf’s sidebar is reachable.

Update with flatpak update --user or the bundle below.

Runefin 0.1.32

Choose a tag to compare

@lifk lifk released this 11 Nov 18:10

Runefin 0.1.32 — a test that proves the remote can reach every control.

  • New tv_reach_tests: for every main screen and player layer it builds the real view, lists every visible focusable, walks the D-pad graph from the first focus, and fails naming any control no arrow can reach. Panels are scoped to their own layer.
  • The first run found real dead ends, now fixed:
    • Settings opened on a key that was never drawn (setting-ui-mode, not …-value), so nothing could move; text fields trapped Up/Down; the sidebar and the long tail of sections were unreachable.
    • Library header, toolbar, search, sort row and the whole filter sheet were outside the zones; filter sorts also shared keys with the toolbar.
    • Search had no sidebar and no reachable "See all".
    • Live TV toolbar (Guide/window/Favourites/Refresh) and each channel's reminder/favourite were unreachable.
    • Detail version chips, technical-details toggle, IMDb link and Add to collection were missing.
    • Player Back, ±10 s and the queue chip were not in the OSD zones.
    • A sheet opening could have its focus stolen back by the route on the next poll.
  • Pointer-only affordances (card hover × and play puck, sidebar collapse chevron) are no longer drawn on a TV, since a controller cannot use them.

Update with flatpak update --user or the bundle below.

Runefin 0.1.31

Choose a tag to compare

@lifk lifk released this 11 Nov 17:27

Runefin 0.1.31 — remote focus where the eyes are.

  • Player sheets: the gear menu and every panel (subtitles, audio, quality, chapters, queue, sleep, go-to) are now focus groups. The D-pad moves inside them; Back returns to the gear row that opened the panel, not to the page behind the picture. A fresh player starts on the timeline. The online subtitle search takes focus when it opens and gives it back when it closes.
  • Detail: below the actions the router now reaches Next up, seasons, episodes, collections, cast, extras and More like this, in the order the page draws them — no more dead Down on a movie.
  • Settings: a section chip moves the selector into that section (Subtitles lands on the subtitle mode row) and glides the page there; vertical moves use the same glide everywhere instead of jumping.
  • Focus look: the timeline and volume no longer get a translucent band across the picture. The focused seek bar is thicker with a larger ringed, glowing knob, the volume knob grows and takes an accent ring, and the seek knob is placed correctly on the first frame.
  • Bars: a big-screen launch now uses a 16:9 window even when the desk window was 1280×800, so a compositor that keeps the window cannot leave letterbox bars.

Update with flatpak update --user or the bundle below.

Runefin 0.1.30

Choose a tag to compare

@lifk lifk released this 11 Nov 15:33

Runefin 0.1.30 — extras at a glance, and a silent moving poster.

  • Cards now carry an EXTRA badge when the item has special features, read from the server's SpecialFeatureCount. It sits top-left, opposite the capability tray, so a disc's extras are visible before opening the detail page.
  • Settings → Interface → Hover previews (off by default) turns on silent trickplay previews: after 1.1 s resting on a poster, the card cycles that item's own frames through the middle 76 % of its runtime, one every ~750 ms, with a PREVIEW timestamp.
  • No audio track and no second player, so it cannot make sound; only the current sprite tile is kept in memory, and leaving the card frees it.

Update with flatpak update --user or the bundle below.

Runefin 0.1.28

Choose a tag to compare

@lifk lifk released this 11 Nov 15:19

Runefin 0.1.28 — the library filters are complete.

  • The filter sheet adds studio, tag and, for series, Continuing/Ended — verified against Jellyfin 12.4's studioIds, tags and seriesStatus parameters on a live server.
  • Studio and tag lists come from /Studios and /Items/Filters2, fetched once per library.
  • Every active filter is now a removable chip above the grid, with Clear all; the Filters button shows how many are on. The header's "N filter(s)" gave way to those chips.
  • Everything still applies instantly and re-reads the server's first page.

Update with flatpak update --user or the bundle below.

Runefin 0.1.27

Choose a tag to compare

@lifk lifk released this 11 Nov 15:09

Runefin 0.1.27 — the library keeps its place.

  • In name order, the first visible row's letter now sticks to the top-left of the grid or list, so a long library always says where you are.
  • It disappears at the very top and on every other sort, where a letter would group unrelated titles.
  • This closes L6: type-ahead (already shipped), back-to-top and section letters.

Update with flatpak update --user or the bundle below.

Runefin 0.1.26

Choose a tag to compare

@lifk lifk released this 11 Nov 15:02

Runefin 0.1.26 — the library tells you what is in it, and what is wrong with it.

  • Header summary from the server's exact filtered totals: 60 items · 11 unwatched · 2 missing · 4 d 23 h. Runtime appears only when every item is loaded, because a partial sum would be a lie.
  • Attention chip appears only when the library has missing or unaired items. It opens a small panel with Missing 2 / Unaired 1; one click applies that filter (the same toggles stay in the Filters sheet).
  • ↑ Top pill after 720 points of scroll, using the same scroll path as reopening the library.
  • The counts are three limit=1 queries beside the first page, so they are exact without loading the whole library.

Update with flatpak update --user or the bundle below.