fix: restore Bluefin dinosaur avatars in GNOME user-account picker - #1241
Conversation
|
This PR targets |
gnome-control-center's avatar chooser (cc-avatar-chooser.c) and gnome-initial-setup's account page only enumerate files directly inside <datadir>/pixmaps/faces/ - they never recurse into subdirectories. bluefin-common ships its dinosaur-themed avatars in a bluefin/ category subdirectory (/usr/share/pixmaps/faces/bluefin/*.jpg), so both UIs silently fall back to Fedora/GNOME's near-empty stock faces dir and Bluefin's avatars never appear on Dakota. Set org.gnome.desktop.interface avatar-directories via a distro dconf override to point both UIs at the bluefin/ subdirectory, matching the existing dconf-override pattern used elsewhere in this repo. Closes #353 Assisted-by: Claude Sonnet 5 via GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
f964f4d to
96da78b
Compare
|
This PR targets |
hanthor
left a comment
There was a problem hiding this comment.
Approving. Correct diagnosis — cc-avatar-chooser.c and gnome-initial-setup only enumerate files directly in <datadir>/pixmaps/faces/ and never recurse, so avatars under a bluefin/ subdirectory were invisible. Pointing avatar-directories at the subdirectory explicitly is the supported fix, and shipping it as a dconf distro.d keyfile keeps it overridable.
The comment block in the keyfile explaining why is exactly right for something that would otherwise look like an arbitrary path.
Generated by Claude Code
…rojectbluefin#1241) (projectbluefin#1302) gnome-control-center's avatar chooser (cc-avatar-chooser.c) and gnome-initial-setup's account page only enumerate files directly inside <datadir>/pixmaps/faces/ - they never recurse into subdirectories. bluefin-common ships its dinosaur-themed avatars in a bluefin/ category subdirectory (/usr/share/pixmaps/faces/bluefin/*.jpg), so both UIs silently fall back to Fedora/GNOME's near-empty stock faces dir and Bluefin's avatars never appear on Dakota. Set org.gnome.desktop.interface avatar-directories via a distro dconf override to point both UIs at the bluefin/ subdirectory, matching the existing dconf-override pattern used elsewhere in this repo. This is a re-application of the already-reviewed fix from projectbluefin#1241 onto testing. That PR was merged directly into main, which is a release bookmark only (fast-forwarded from testing by execute-release.yml) and is never used as a PR base per docs/workflow.md. The fix therefore never reached the testing branch or any built image, which is why projectbluefin#353 remained open. Closes projectbluefin#353 Assisted-by: Claude Sonnet 5 via GitHub Copilot Co-authored-by: Jorge O. Castro <jorge.castro@gmail.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: mrbobbytables <mrbobbytables@users.noreply.github.com>
…tar regressions (projectbluefin#1308) * fix: restore Bluefin dinosaur avatars in GNOME user-account picker (projectbluefin#1241) gnome-control-center's avatar chooser (cc-avatar-chooser.c) and gnome-initial-setup's account page only enumerate files directly inside <datadir>/pixmaps/faces/ - they never recurse into subdirectories. bluefin-common ships its dinosaur-themed avatars in a bluefin/ category subdirectory (/usr/share/pixmaps/faces/bluefin/*.jpg), so both UIs silently fall back to Fedora/GNOME's near-empty stock faces dir and Bluefin's avatars never appear on Dakota. Set org.gnome.desktop.interface avatar-directories via a distro dconf override to point both UIs at the bluefin/ subdirectory, matching the existing dconf-override pattern used elsewhere in this repo. Closes projectbluefin#353 Assisted-by: Claude Sonnet 5 via GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * test: add avatar-audit to catch projectbluefin#353-class dinosaur-avatar regressions Cherry-picks the already-reviewed avatar fix from projectbluefin#1241 (which merged into main, the release bookmark, instead of testing, so it never shipped) onto testing where content PRs actually belong. Adds `just avatar-audit`, wired into publish.yml next to swap-audit, to verify the fix actually holds in the built image: the Bluefin avatar art is present, the avatar-directories dconf override reaches the compiled distro db, and every directory it lists exists and has faces. avatar-directories replaces GNOME's default faces dirs rather than falling back to them, so a stale or dropped override silently empties the picker instead of degrading to stock icons — this catches that class of regression before it ships. Closes projectbluefin#353 --------- Co-authored-by: Jorge O. Castro <jorge.castro@gmail.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Danathar <Danathar@users.noreply.github.com>
Summary
Fixes #353 — Bluefin's custom dinosaur-themed avatars (drawn by Jacob Schnurr,
see docs/dinosaurs.md in projectbluefin/documentation) never showed up in the
GNOME Users account-picture picker on Dakota, even though the image files are
correctly ingested from projectbluefin/common.
Root cause
bluefin-common ships these avatars under a
bluefin/category subdirectory:/usr/share/pixmaps/faces/bluefin/*.jpg(named after GNOME's old stock facefilenames — bicycle.jpg, cat.jpg, etc. — but the artwork itself is Bluefin's
own).
GNOME's avatar pickers only look directly inside
<datadir>/pixmaps/faces/:Neither recurses into subdirectories, so the
bluefin/folder is silentlyskipped and both UIs fall back to Fedora/GNOME's near-empty stock
pixmaps/faces dir. This isn't a file-ingestion bug — bluefin/common.bst
already copies the files correctly — it's that nothing tells GNOME to look in
the bluefin/ subdirectory.
Fix
org.gnome.desktop.interface has an avatar-directories GSetting (as)
specifically for this: both pickers check it first and, if set, scan every
listed directory in full. This adds a new bluefin/user-avatars.bst element
that installs a distro dconf override
(/etc/dconf/db/distro.d/07-dakota-avatar-directories) setting
avatar-directories=['/usr/share/pixmaps/faces/bluefin'], following the same
pattern already used by files/dconf/05-dakota-custom-command-menu and
06-dakota-keybindings.
Testing
bluefin/user-avatars.bst is wired into elements/bluefin/deps.bst.
podman/BuildStream available); requesting a maintainer/CI build to confirm
the avatars appear in Settings → Users → account picture.
Closes #353
Assisted-by: Claude Sonnet 5 via GitHub Copilot
Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com