Repository navigation
feat(wallpaper): ship original looping movie for Hidamari - #1207
Conversation
8f87ce1 to
0a16485
Compare
|
Rebased onto current main (resolving tremor-runtime Homebrew validation failure), fixed end-of-file newline in |
|
The movie itself checks out. On 0a16485:
The problem: Hidamari can't open the file where it gets installed. The Flathub build of Hidamari only has You could close the gap with a small step that copies it into Some small fixes while you're in there:
|
hanthor
left a comment
There was a problem hiding this comment.
The generator and tests are well built (loop invariant, determinism, size budget). However, the Hidamari Flatpak only has --filesystem=xdg-videos/Hidamari:create, so /usr/share/backgrounds/bluefin/bluefin-hidamari.webm isn't visible to it, and nothing points Hidamari at the file. As shipped, the asset is unused. It needs a first-run copy/symlink into ~/Videos/Hidamari, a Flatpak override, or to wait until the wiring from #1185 lands. There's also a textual conflict with #1249 in unit-tests.yml, and this adds numpy to the unit-test CI deps.
|
Status update on Hidamari video wallpaper:
Awaiting author updates for file visibility and generator default. |
c4f2b06 to
dae994e
Compare
Dismissing prior approval: The branch was rebased to dae994e and updated with default crf 24 and corrected doc claims; an independent re-review is needed at current head.
Adds the Bluefin video-wallpaper movie for Hidamari (io.github.jeffshee.Hidamari), tracked by projectbluefin#1158: - `system_files/bluefin/usr/share/backgrounds/bluefin/bluefin-hidamari.webm` — 1920x1080, 12 s, 24 fps VP9 loop, 360 KiB, no audio. - `scripts/render-hidamari-movie.py` — the deterministic generator that produced it (numpy + an ffmpeg with libvpx-vp9; FFMPEG env var supported). Every temporal term is an integer number of cycles per loop, so the wrap is seamless by construction. - `tests/test_render_hidamari_movie.py` — pins the loop-wrap invariant, determinism, palette shape, size budget (< 4 MiB), and ffmpeg wiring; registered in `just test` and the unit-tests workflow. - Skill doc `docs/skills/hidamari-wallpaper.md` + regenerated skill index and docs/SKILL.md task-table row. The issue's suggested source (Wallpaper Engine workshop item 3770275543) carries no redistribution license, so it cannot be vendored into the OCI layer. The animation is fully original (layered deep-ocean gradient waves with rising glow specks in the Bluefin palette), keeping the asset reproducible from source. If a licensed render is donated later, the skill doc records how to swap it. Closes projectbluefin#1158 Hive-Run: projectbluefin#1158 Hive-Plan: Make a movie for Hidamari (issue projectbluefin#1158 summary) Hive-Spec: hidamari-wallpaper#seamless-loop Signed-off-by: mendezr <mendezr@users.noreply.github.com>
dae994e to
0ede1e3
Compare
castrojo
left a comment
There was a problem hiding this comment.
Approved at head 0ede1e3: clean rebase over main resolving skill index conflicts; render script default tuned to crf 24; all CI checks pass (test 1m38s, validate 5m20s, both multi-arch image builds pass: aarch64 2m12s, x86_64 7m13s).
|
Re-checked at 0ede1e3. The webm and the test file are byte-identical to 0a16485, so my earlier checks on the movie still hold.
|
castrojo
left a comment
There was a problem hiding this comment.
Status at head 0ede1e3. Danathar's last open point (Hidamari can't reach the movie) offered two fixes: add a copy step, or drop Closes #1158. I took the second one. The PR body now says Refs #1158, and GitHub no longer lists #1158 as a closing issue, so #1158 stays open for the ~/Videos/Hidamari wiring. The other four points (crf default, byte-identical wording, test claim, bundle-conventions pointer) were already confirmed fixed at 0ede1e3.
Approval status: common main needs 2 approvals. castrojo pushed dd60a41 and 0ede1e3 to this branch, so castrojo's approvals are not independent and don't count. That leaves 0 independent approvals, and this PR needs 2 from reviewers who are not castrojo or the author. @Danathar, please re-review now that the Closes is gone.
Danathar
left a comment
There was a problem hiding this comment.
Re-checked at 0ede1e3, the same head as my last pass. The one point I held on is resolved: the body now says Refs #1158, GitHub lists no closing issues, and #1158 is still open for the ~/Videos/Hidamari wiring.
Checked: the doc and workflow diff read at 0ede1e3; a local merge with current main (a9ec454) is clean; generate_skill_index.py --check is up to date (45 skills); pytest tests/test_render_hidamari_movie.py tests/test_skill_docs.py gives 39 passed, with ffmpeg and Pillow present. CI on 0ede1e3: test, both validate jobs, both image builds, Compose PR test image and Trivy pass; E2E and the manifest job were skipped.
## What does this change? Adds a README-linked Hidamari setup guide explaining how to copy the shipped Bluefin movie into the user's XDG Videos/Hidamari folder and select it in Local Video. The command respects localized paths and asks before replacing an existing file. Updates the maintainer skill with the same sandbox constraint. ## Why? PR projectbluefin#1207 shipped the movie but deliberately left projectbluefin#1158 open because Hidamari cannot discover the system copy. Its review explicitly offered documented copy instructions as a resolution. This supplies that manual setup path, including troubleshooting and removal instructions. Closes projectbluefin#1158. ## Validation - `just check` passed. - `pre-commit run --all-files` passed, including the new guide. - Executed the documented copy snippet with the repository movie as its source and a temporary localized Videos path containing spaces; verified byte-for-byte copying and that declining replacement preserves existing contents. - Checked the Flathub manifest's `xdg-videos/Hidamari:create` permission. - Hidamari GUI playback was not tested in this environment. This is documentation only; no automatic first-run behavior is added. ## Checklist - [x] Conventional Commits title - [x] Local lint and pre-commit checks pass - [x] Relevant skill updated and internal links validated - [ ] CI results pending after PR creation — hive: backend=codex model=gpt-6-astra effort=medium --- 🐝 **Hive Agent**: `contributor` | **SHA:** `6364878` Signed-off-by: arteeh <arteeh@users.noreply.github.com> Co-authored-by: arteeh <arteeh@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
## What does this change? Adds a README-linked Hidamari setup guide explaining how to copy the shipped Bluefin movie into the user's XDG Videos/Hidamari folder and select it in Local Video. The command respects localized paths and asks before replacing an existing file. Updates the maintainer skill with the same sandbox constraint. ## Why? PR projectbluefin#1207 shipped the movie but deliberately left projectbluefin#1158 open because Hidamari cannot discover the system copy. Its review explicitly offered documented copy instructions as a resolution. This supplies that manual setup path, including troubleshooting and removal instructions. Closes projectbluefin#1158. ## Validation - `just check` passed. - `pre-commit run --all-files` passed, including the new guide. - Executed the documented copy snippet with the repository movie as its source and a temporary localized Videos path containing spaces; verified byte-for-byte copying and that declining replacement preserves existing contents. - Checked the Flathub manifest's `xdg-videos/Hidamari:create` permission. - Hidamari GUI playback was not tested in this environment. This is documentation only; no automatic first-run behavior is added. ## Checklist - [x] Conventional Commits title - [x] Local lint and pre-commit checks pass - [x] Relevant skill updated and internal links validated - [ ] CI results pending after PR creation — hive: backend=codex model=gpt-6-astra effort=medium --- 🐝 **Hive Agent**: `contributor` | **SHA:** `6364878` Signed-off-by: arteeh <arteeh@users.noreply.github.com> Co-authored-by: arteeh <arteeh@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
bluefin-common PR
What does this change?
Ships the Bluefin looping movie for the Hidamari video-wallpaper engine (
io.github.jeffshee.Hidamari), tracked by #1158:system_files/bluefin/usr/share/backgrounds/bluefin/bluefin-hidamari.webm— 1920x1080, 12 s, 24 fps VP9 (yuv420p, no audio) seamless loop, 360 KiB.scripts/render-hidamari-movie.py— the deterministic generator that produced it. Needsnumpy+ an ffmpeg withlibvpx-vp9(honorsFFMPEG=; a static build works).--preview-frame Trenders a single PNG for quick review. Every temporal term (waves, rays, bubbles, breathing) is an integer number of cycles per loop, so frame(t=1) == frame(t=0) and the loop wraps invisibly.tests/test_render_hidamari_movie.py(25 tests) — pins the loop-wrap invariant, render determinism, palette properties, the < 4 MiB size budget, and ffmpeg CLI wiring; registered injust testand the Unit Tests workflow.docs/skills/hidamari-wallpaper.md— skill doc with the regeneration recipe and invariants, plus regeneratedindex.json/index.mdand adocs/SKILL.mdtask-table row.Why an original render?
The issue suggested sourcing Wallpaper Engine workshop item 3770275543 ("Bluefin 5th Anniversary Wallpaper"), but that item carries no redistribution license, so it cannot be vendored into the OCI layer (also flagged in a prior comment on the issue). The shipped animation is fully original — layered deep-ocean gradient waves with rising glow specks in the Bluefin blue/teal palette — keeping the asset reproducible from source under our control.
Why check the video into git?
A render-time fetch would add a network dependency to the build for a 360 KiB asset that changes rarely; checked-in binaries are already part of this repo's pattern (vendored artwork, JXL wallpapers). The generator is checked in alongside it so the asset is auditable and rebuildable, and the skill doc records the exact recipe.
Out of scope here
The Hidamari flatpak itself lands via the
video-wallpaper.BrewfileChairLift bundle (#1159), and the Damask work is #1160/#1161 — this PR ships only the movie asset, its generator, and its tests.Testing done
python3 -m pytest tests/test_render_hidamari_movie.py— 25 passedjust check,pre-commit run --all-files— all greenffprobe: duration exactly 12.000 s, 1920x1080 VP9;ffmpeg -v error -i ... -f null -decodes cleanRefs #1158 (not closing: copying the movie into
~/Videos/Hidamariso the Flatpak can reach it is still open)— hive: backend=pi model=openrouter/z-ai/glm-5.3-flash
🐝 Hive Agent:
contributor| SHA:8f87ce1