Skip to content

Move theme files into themes/ directory with multi-theme support#3

Merged
derryl merged 1 commit intomainfrom
feature/themes-directory
Feb 27, 2026
Merged

Move theme files into themes/ directory with multi-theme support#3
derryl merged 1 commit intomainfrom
feature/themes-directory

Conversation

@derryl
Copy link
Owner

@derryl derryl commented Feb 27, 2026

Summary

  • Theme files (Main.qml, metadata.desktop, theme.conf, assets/, components/, faces/) moved from project root into themes/default/
  • All scripts (preview.sh, test-sddm.sh, lint-qml.sh) now accept an optional -theme <name> flag, defaulting to "default"
  • Enables a multi-theme workflow: copy themes/default/ to themes/foobar/, then run ./scripts/preview.sh -theme foobar to develop it

Test plan

  • ./scripts/preview.sh launches the default theme with background image
  • ./scripts/preview.sh -theme default behaves identically
  • ./scripts/preview.sh -theme nonexistent prints error and lists available themes
  • ./scripts/lint-qml.sh passes static and runtime checks
  • Copy themes/default to themes/test, run ./scripts/preview.sh -theme test
  • CI passes on the branch

🤖 Generated with Claude Code

Theme files (Main.qml, metadata.desktop, theme.conf, assets/, components/,
faces/) now live under themes/default/ instead of the project root. This
enables a multi-theme workflow where users copy themes/default/ to create
new themes and preview them independently.

Scripts accept an optional -theme flag (defaulting to "default"):
  ./scripts/preview.sh -theme foobar
  ./scripts/test-sddm.sh -theme foobar
  ./scripts/lint-qml.sh -theme foobar

Preview and lint scripts create temporary symlinks (preview/components,
preview/assets) pointing to the selected theme so QML relative imports
resolve correctly. Symlinks are cleaned up on exit and gitignored.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@derryl derryl merged commit cfbca4a into main Feb 27, 2026
2 checks passed
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