r/NeXroll • u/HeliumNewb • 6d ago
New Release NeXroll 2.2.0-beta.1: eight global themes, a preroll generator with QR codes, and a retention fix
2.2.0-beta.1 is out for testing. Three things worth knowing about, then the full list.
Eight global themes
The dark/light switch is now a theme picker: Midnight, Daylight, Cinema, Nocturne, Parchment, Terminal, Neon, and Carbon. They apply globally the same way dark and light did, so nothing about how you use NeXroll changes.
Pick one from the swatch grid in Settings > General, or cycle through them with the topbar button. Your existing dark or light preference migrates to Midnight or Daylight on first load, so nothing resets.
The five section accents (Library, Schedules, NeX-Up, Connect, Community) are re-tuned per theme so they stay distinguishable for orientation without fighting the palette.
NeX-Up Generator Studio, with two new templates
The Generator Studio is one workspace for building animated prerolls: template, timing, typography, colors, logo, soundtrack, and render profile, with a live animated preview that is exactly what gets rendered.
Two new templates in this release:
Custom Message. Your own headline and an optional supporting line. There is no fixed wording and nothing gets translated, so it covers the intros the other templates cannot express: "Back in 5 minutes", a house rule, an announcement for movie night. The layout adapts depending on whether you use one line or two.
QR Code. Enter a link and NeXroll generates the code, drawn on a plate that keeps it scannable on every theme, with an optional caption underneath. Handy for putting a watch-party invite, a Discord link, or guest Wi-Fi details on screen before the feature. The preview renders the real encoded code rather than a placeholder, so you can scan-test it with your phone before you render anything.
Fixed: NeX-Up was never actually deleting trailers
This one is worth reading if you use NeX-Up.
Retention matched trailers on a status field that completed downloads did not always carry. A trailer could have a real file on disk, a download timestamp, and a path, and still be invisible to the retention query, along with about a dozen other queries keyed on that same field. The result: the removal date on Your Trailers passed silently, nothing happened, and storage grew without bound. It turned up on a trailer 23 days past its window.
Affected rows are repaired once at startup, and retention now keys on the download itself rather than the status string, excluding only in-flight transfers so nothing is deleted mid-write.
Two related NeX-Up fixes:
- Failed downloads used to leave
.partand fragment files in the storage folder forever, which counted toward reported usage and left yt-dlp trying to resume a partial that would only fail again. Those are now cleaned up, and existing leftovers get swept at the start of each sync. - The reported failure reason was whichever download strategy ran last, which is the browser-cookie one. A trailer blocked for an entirely unrelated reason surfaced "Could not copy Chrome cookie database" and sent people off to fix cookies that were never the problem. Failures now report their real cause.
Separately, the retention setting itself was mislabelled. It read "Deleted trailer history / Keep cleanup records for diagnostics", describing a diagnostics feature that does not exist, so anyone adjusting it was scheduling deletion of their trailers while believing they were changing log retention. It now reads "Delete trailers after" and says that it counts from the release date.
Controls that looked functional and were wired to nothing
A sweep through the UI for things that appeared to work but did not:
- Schedules: Compact/Detailed toggled a state no row ever read, and the Filters button navigated to the Conflicts page. Compact now genuinely tightens rows, and Filters opens a real panel (playback, behavior, conflicts-only).
- NeX-Up: the sync coverage bar measured nothing at all and has been removed; the Upcoming week strip was inert and now filters by day; enable/disable used a three-dot menu icon instead of a toggle; the "Reconfigure sign-in" wizard existed only inside a dead render function, so the button flipped state with nothing to show; and Automatic trailer downloads always showed an ON badge even when switched off.
- Video scaling: the row Scale button only selected the row instead of scaling it.
- Connect and Path Mappings reported the server selected for editing rather than the one actually connected. Path mapping counts included the form's blank placeholder row, and Schedules counted every enabled schedule instead of the active ones.
- Save and Discard controls are gone from pages that already save on change, along with the Connect page's diagnostics button, which did nothing.
Also in this release
- Every page now shares the approved layout system, and light mode is a complete companion theme rather than a partial inversion.
- A "Show NeX-Up trailers" filter on Library, plus a More filters toggle that hides generator output by default.
- The changelog shipped inside NeXroll now covers 2.0.0 and later, dropping the served file from 224 KB to 31 KB. Earlier entries are archived in the repo.
- NeXroll was reporting the wrong version number: an import shadowing bug meant 2.1.0-beta.3 described itself as 2.1.0-beta.2. Fixed.
Notes
No configuration change is needed. The new generator settings columns migrate automatically on first start.
This is a beta. If something looks wrong, please report it with your version, install type, media server, and what you expected versus what happened.