Repository navigation
Keep shell colors after the Qt 6.12 update - #347
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed and why
A normal
omarchy-updateon a 0.5.0 guest upgrades Qt from 6.11.2 to 6.12.0 and Quickshell from 0.3.1 to 0.3.2. Qt 6.12 adds aQtQuick/Colorsingleton. It shadows the shell'sqs.CommonsColorpalette, so everyColor.<role>isundefined. The bar loses its colors, and the Omarchy menu and Super+K open as a black screen. The journal shows about 220 warnings like:This PR ports the upstream workaround from omacom/omarchy#14845 to the pinned 4.0.4 runtime. Each bare
import QtQuickin the 102 affected shell QML files becomesimport QtQuick 6.11. A versioned import does not see types added in 6.12. It also works with the Qt 6.11.2 that guests ship. The upstream commit relies on a newer Quickshell load-patch pragma, so the runtime gets the import edits directly.There are two delivery paths:
shell-qtquick-611factory backport inguest/spec.json. It applies after the existing notification and power-menu backports.shell-qtquickboot-fix component. Existing VMs keep their disk, so a factory backport alone does not reach them. The component repairs only files whose hash matches a known stock, notification, or power-menu state. It preserves user-edited files and unsafe paths. A file already pinned by hand with the same line rewrite reportscurrent. The repair runs again after atry-omarchy-runtimereinstall. It shares one journal entry with the power-menu repair for the same file.guest/scripts/generate-shell-qtquick-backport.pygenerates the patch, hashes, preimages, allowlist, and the compressed QML test fixture from the verified upstream source. A second run produces the same bytes.Qt is not held with
IgnorePkg. A hold cannot downgrade a guest that already upgraded.Testing
158dd30): the new tests inguest/tests/test_shell_qtquick.pyfailed for the intended reason. Examples:Factory shell still imports QtQuick without a version(102 files) andAssertionError: 'current' != None(noshell-qtquickcomponent yet).f6ef2b3): all 7 focused tests pass. They cover the factory chain, the first and repeat boot repair (applied, thencurrent), hand-repaired files, skipped consent, preserved custom files, composition with the power-menu repair, runtime reinstall, and interrupted-recovery rollback.make teston the final commit: exit 0 (426 Swift tests, 393 guest tests).git diff --check: clean.omarchy-update: I applied the same import rewrite by hand. Shell warnings went from 223 to 0, and the bar was themed again.Not verified:
make guestdid not complete. The builder fetched the verified Omarchy source. Then the build stopped because the ALARM mirror has drifted frompackages.lock.json: eight packages, including KDE 6.30 â 6.31 and sqlite 3.53.4 â 3.54. This branch does not change the lock, so I left the refresh to a separate PR.