Chaldea is an interactive widget library for Quickshell. Try a design in your browser, adjust its appearance, and export native QML for your Linux desktop.
Download a packaged release for the source and a prebuilt static site snapshot. The live site may include newer changes.
The collection includes quick notes, media players, animated glyphs, interactive art, lockscreen layouts, and sliders. Every current catalog entry has a native QML export. See the inventory for the designs and current counts.
- Search by name, filter by family, and try widgets in live previews.
- Adjust colors, typography, layout, and motion through each widget's available settings.
- Copy generated QML or download individual output files, supporting assets, and licenses.
- Browse and customize without an account or saved customization state.
The hosted site uses Vercel Web Analytics for visitor and page-view counts. Search text and customization values are excluded. See analytics and privacy.
The library offers family filters, search, and previews of each widget.
Open a widget to try it live and adjust its settings. This is the Weave slider's preview and customization panel.
These screenshots show the current production build.
| Family | What it provides |
|---|---|
| Quick notes | Compact note widgets with editing, selection, and in-memory note state. |
| Player | Media controls and artwork, with MPRIS integration in native exports. Browser previews use silent sample tracks. |
| Glyphs | Drawings that respond to dummy input, deletion, and motion controls. |
| Interactive art | Interactive canvases with live controls and collections in the customization panel. |
| Lockscreens | One entry per layout, with native visual components and demo interactions. |
| Sliders | Compact percentage controls with comb, slat, stipple, and woven tracks. |
Lockscreen and Glyph previews do not authenticate or lock the desktop session. Those integrations belong in a separate host. Native requirements are listed in each widget's README; the shared Quickshell and Qt baseline is in chaldea.toml.
- Browse the collection and try a widget in its preview.
- Adjust its available settings to fit your setup.
- Choose an output file, then copy its text or download that file.
Save every file in the output selector: the generated QML, supporting files, the shell.qml preview launcher, README.md, and the applicable license. Preserve the listed file names and subfolders, including any images or audio. Follow the widget's README to try it or integrate it into your Quickshell configuration.
Settings and preview state stay in memory and reset when the preview is left or the page reloads.
The public library runs at chaldea.vercel.app. You can also build and browse it locally.
Local setup requires GNU Make, a C compiler, and the pinned Rust and Bun versions.
git clone https://github.com/Aleph1-9012/Chaldea.git
cd Chaldea
make setup
make devOpen localhost:5175 to browse the library.
make dev runs the Rust content packager, then Vite serves the site with the generated catalog and revision bundles. Frontend edits update through Vite. After editing files under widgets/, run make content and reload to use the new revisions.
Run these from the repository root:
| Command | Purpose |
|---|---|
make setup |
Check pinned tool versions and install frozen frontend dependencies. |
make dev |
Package local widgets and start the development server on port 5175. |
make content |
Rebuild packaged widgets after source changes. |
make check |
Run unit and code checks, build the site, and validate every widget and export. |
make test |
Rerun the Rust and Bun unit tests. |
make build |
Build the production site in dist/, excluding drafts. |
make preview |
Serve the existing production build on port 4173. |
make check already builds the production site. CI runs the same check and saves dist/ as the chaldea-site artifact. Vercel's Git integration builds pushes to main, runs the same checks, and publishes the site while retaining previous widget revisions and application assets. Website updates do not require a version bump or GitHub release. See deployment setup. No browser is installed or launched by the checks.
The library checker discovers new widgets automatically and validates preview script syntax and declared assets, settings, generated files and asset bytes, and the production catalog. Inspect changed layouts and interactions in make dev; inspect changed native exports in an isolated Quickshell configuration.
The frontend uses Svelte 5 and TypeScript, built with Vite and managed with Bun. Rust validates and packages widget content at build time. The browser generates QML locally, so the site needs no separate runtime API server.
| Path | Contents |
|---|---|
backend/ |
Rust source discovery, validation, and content packaging. |
frontend/ |
Svelte 5 and TypeScript site, catalog client, QML generator, authoring scripts, and unit tests. |
widgets/ |
Widget definitions, browser previews, native components, assets, and usage guides. |
schemas/ |
Shared JSON contracts and cross-language fixtures. |
docs/ |
Architecture, development, authoring, publication, and provenance records. |
Rust reads widget sources and packages revisions for the frontend. The browser and export scripts use the same QML generator. Widget folders declare the files they need; byte-identical helpers can resolve from a parent group's _shared/ folder.
Generated content, build output, caches, and dependencies are ignored by Git. Keep build/, dist/, backend/target/, and frontend/node_modules/ out of commits; change their sources and rebuild.
Follow the roadmap for planned work and the widget authoring guide for adding designs or settings. Use the development guide for troubleshooting and manual export commands, and the architecture guide for the packaging and preview contracts.
For production updates, follow the publication requirements, including retaining published revision URLs and verifying rollback.
If Chaldea is useful to you, you can support its development on Ko-fi.
The application is licensed under Apache 2.0. Original widget code and assets use 0BSD. Third-party material retains its own terms. See licensing for details.


