Conversation
- Remove `|| undefined` from all font.family bindings — empty string already tells Qt to use the system default; `undefined` is not assignable to QString and produces runtime warnings - Make preview background resilient to missing assets/background.jpg - Rewrite preview.sh process management so Ctrl-C exits cleanly instead of segfaulting (background entr + tracked PID + proper trap) - Add scripts/lint-qml.sh: runs qmllint static analysis and a headless runtime check (via xvfb) that catches type-assignment errors - Add GitHub Actions CI workflow that runs on every push and PR 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Ship the JWST Carina Nebula image as the default background so the
preview works out of the box. Fix the mockConfig background path to
use Qt.resolvedUrl("../assets/...") so it resolves relative to the
project root rather than the preview/ subdirectory.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
The qmllint binary lives in qt6-declarative-dev-tools on Ubuntu, not qt6-declarative-dev. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Breeze's ComboBox.qml references T.Overlay which only exists inside a full Plasma session, producing TypeError spam in standalone qml6 runs. Setting QT_QUICK_CONTROLS_STYLE=Basic in both preview.sh and lint-qml.sh avoids loading Breeze entirely. SDDM sets its own style at runtime so this has no effect on the installed theme. Also removes the grep filter that was silently swallowing Breeze errors in lint-qml.sh — now that the root cause is fixed, any TypeError from any source will correctly fail CI. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
On Ubuntu, Qt 6 tools install to /usr/lib/qt6/bin/ (not on PATH) and the QML runtime is named `qml` not `qml6`. The lint script now probes common Qt 6 bin directories and tries both binary name variants, making it work on both Arch and Ubuntu without hard-coded paths. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- Install qml-qt6 which provides the `qml` runtime binary on Ubuntu (qt6-declarative-dev-tools only has qmllint/qmlformat/etc.) - Make qmllint non-fatal on warnings — SDDM context properties (sddm, config, userModel, etc.) are injected at runtime and can't be resolved by static analysis. Only actual errors (syntax, unknown own-code types) will fail the check. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
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.
Summary
Unable to assign [undefined] to QStringruntime errors caused byfont.family: root.fontFamily || undefinedin LoginForm.qml and SessionSelector.qmlassets/background.jpg(falls back to solid color cleanly)preview.shsignal handling so Ctrl-C exits cleanly instead of segfaultingscripts/lint-qml.shcombining qmllint static analysis + headless runtime type-error detection.github/workflows/ci.yml) that runs on every push and PRTest plan
./scripts/lint-qml.shlocally — both static and runtime checks should pass./scripts/preview.sh, verify noUnable to assign [undefined]errors in terminal output🤖 Generated with Claude Code