Skip to content

Fix GTK icon cache generation - #105

Open
Fail-Safe wants to merge 1 commit into
omacom:mainfrom
Fail-Safe:fix/hicolor-icon-cache
Open

Fix GTK icon cache generation#105
Fail-Safe wants to merge 1 commit into
omacom:mainfrom
Fail-Safe:fix/hicolor-icon-cache

Conversation

@Fail-Safe

Copy link
Copy Markdown

Summary

  • normalize copied Omarchy application artwork to the lowercase, hyphenated icon identifiers used by the corresponding desktop entries
  • fail the guest build if two upstream artwork names normalize to the same target
  • materialize the exact pinned Omarchy source in regression coverage and verify the resulting hicolor names and GTK cache-safety contract

Problem

Omarchy 4.0.2 includes display-style artwork names such as Google Messages.png, Disk Usage.png, and Retro Gaming.png. Try Omarchy copied those basenames verbatim into /usr/share/icons/hicolor/256x256/apps, while the desktop entries reference google-messages, disk-usage, and retro-gaming.

Besides preventing those icon lookups from matching, the embedded spaces make gtk-update-icon-cache reject the generated cache. This surfaces during omarchy-update as:

gtk-update-icon-cache: The generated cache was invalid.
error: command failed to execute correctly

The materializer now performs the same ASCII lowercase-and-hyphen normalization already reflected in the desktop icon identifiers.

Validation

  • Live v0.3.0 guest: reproduced the invalid cache with the six whitespace-bearing names; after applying the normalized mappings, gtk-update-icon-cache -f -t /usr/share/icons/hicolor reported Cache file created successfully, with no remaining cache-unsafe paths
  • guest/test --source <clean pinned Omarchy 4.0.2 checkout>: 64 tests plus all guest/materialization contracts pass
  • make test: build-cache tests, guest tests, macOS compatibility and relocation checks, 181 Swift tests across 42 suites, and QEMU networking/power/storage suites pass
  • git diff --check, shell syntax, and Python compilation pass

make build was also attempted, but the guest build stops before materialization because the current Arch Linux ARM repository transaction has advanced beyond packages.lock.json. This PR deliberately does not mix an unrelated 24-package lock refresh into the icon fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant