Building Settings
Use the root Justfile for application binaries and the checker, and demo/Justfile for the demo. If this is your first window, begin with the minimal example in Getting started.
Build hosts
Install Rust / Cargo and just. On Windows, the recipes use sh from Git for Windows.
| Host | Main use |
|---|---|
| macOS | macOS builds, plus Windows cross-compilation with mingw-w64 and the GNU target |
| Linux | Native Linux builds. Recipes for Windows GNU cross-compilation are also available |
| Windows | Native Windows builds with the MSVC toolchain |
Windows GNU cross-compilation uses x86_64-pc-windows-gnu. Build the Linux GUI on a Linux host. Icon generation also needs ImageMagick; packaging needs tools such as dmgbuild or nfpm for the relevant platform. Building an executable for bundling and producing signed distribution packages are separate tasks.
Select a schema
| Priority | Selection when using just |
|---|---|
| 1 | SETTINGS_SCHEMA environment variable |
| 2 | SCHEMA environment variable |
| 3 | Default ../schema.toml, one directory above the repository root |
Examples for a macOS or Linux shell. Quote paths containing spaces.
just init
SETTINGS_SCHEMA="/path/with spaces/schema.toml" just binary
SCHEMA="/path/to/schema.toml" just check-schemaIn Windows PowerShell, set the variable before running the command.
$env:SETTINGS_SCHEMA = "C:\work\schema.toml"
just binaryWhen using cargo build directly without SETTINGS_SCHEMA, the fallback is demo/schema.toml. This differs from the default used through just. Environment variable settings are inherited by commands in the shell or build environment where you set them.
Production builds with the root Justfile
Run these recipes from the repository root.
| Recipe | Output or purpose |
|---|---|
just init | Prepare or refresh derived assets, including the icon font |
just binary | Host binary for bundling: target/release/settings, or settings.exe on Windows |
just check-schema | Validate the selected schema without building the GUI |
just settings-darwin-build-arm64 | dist/settings/darwin-arm64/Settings.app |
just settings-darwin-build-x86_64 | dist/settings/darwin-x86_64/Settings.app |
just settings-win-build | dist/settings/windows-x86_64/Settings.exe |
just settings-linux-build | dist/settings/linux-x86_64/settings |
just checker-darwin-build-arm64 | dist/settings-schema-checker/darwin-arm64/ |
just checker-win-build | dist/settings-schema-checker/windows-x86_64/ |
just checker-linux-build | dist/settings-schema-checker/linux-x86_64/ |
Use just init on the first build or after icon changes. Normal build recipes also prepare missing assets. Choose an icon style with a value such as ICON_STYLE=outlined.
just binary embeds the schema at build time. The runtime argument is the configuration file to edit, not a schema path.
The legacy Makefile remains for migration compatibility. Use just for new instructions and workflows.
Build the demo with demo/Justfile
Run these recipes inside demo/. The build embeds its schema.toml and bundles a config.toml to edit. The checker is not part of the demo build.
| Recipe | Output or purpose |
|---|---|
just init | Prepare demo assets; on macOS, also refresh the ICNS icon |
just dev | Development build for the current platform |
just darwin-build-arm64 | demo/dist/darwin-arm64/Settings.app |
just darwin-build-x86_64 | demo/dist/darwin-x86_64/Settings.app |
just win-build | Executable and configuration under demo/dist/windows-x86_64/ |
just linux-build | Executable and configuration under demo/dist/linux-x86_64/ |
cd demo
just init
just devThe macOS demo keeps its configuration in Contents/Resources/config.toml. Windows and Linux put it beside the executable. See Embedding for runtime path resolution.
settings-schema-checker
This CLI is for schema authors and CI. It embeds no schema and takes a path at runtime. It checks TOML syntax, constraint references, CEL expressions, option controls, migration definitions, and related schema rules.
settings-schema-checker "/path/to/schema.toml"You can also run validation directly from source.
cargo run -p settings-schema --bin settings-schema-checker -- "/path/to/schema.toml"| Exit code | Meaning |
|---|---|
0 | Validation succeeded |
1 | Validation failed, or an error such as failure to read the file |
2 | Required path argument is missing |
Check available downloads
GitHub Releases provides checker and demo packages. Build your production GUI with its own schema as part of your parent app's build.
The published v0.2.6 assets include macOS DMGs and checker ZIPs, Windows ZIPs, and Linux ZIP and deb packages. Files were checked for macOS arm64 and x86_64 and Windows and Linux x86_64. A recipe also exists for the Linux demo AppImage, but that release does not include it as an asset. An available build recipe does not necessarily mean a package has been published.