Skip to content
Copied!
published on 2026-06-08

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.

HostMain use
macOSmacOS builds, plus Windows cross-compilation with mingw-w64 and the GNU target
LinuxNative Linux builds. Recipes for Windows GNU cross-compilation are also available
WindowsNative 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 ​

PrioritySelection when using just
1SETTINGS_SCHEMA environment variable
2SCHEMA environment variable
3Default ../schema.toml, one directory above the repository root

Examples for a macOS or Linux shell. Quote paths containing spaces.

sh
just init
SETTINGS_SCHEMA="/path/with spaces/schema.toml" just binary
SCHEMA="/path/to/schema.toml" just check-schema

In Windows PowerShell, set the variable before running the command.

powershell
$env:SETTINGS_SCHEMA = "C:\work\schema.toml"
just binary

When 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.

RecipeOutput or purpose
just initPrepare or refresh derived assets, including the icon font
just binaryHost binary for bundling: target/release/settings, or settings.exe on Windows
just check-schemaValidate the selected schema without building the GUI
just settings-darwin-build-arm64dist/settings/darwin-arm64/Settings.app
just settings-darwin-build-x86_64dist/settings/darwin-x86_64/Settings.app
just settings-win-builddist/settings/windows-x86_64/Settings.exe
just settings-linux-builddist/settings/linux-x86_64/settings
just checker-darwin-build-arm64dist/settings-schema-checker/darwin-arm64/
just checker-win-builddist/settings-schema-checker/windows-x86_64/
just checker-linux-builddist/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.

RecipeOutput or purpose
just initPrepare demo assets; on macOS, also refresh the ICNS icon
just devDevelopment build for the current platform
just darwin-build-arm64demo/dist/darwin-arm64/Settings.app
just darwin-build-x86_64demo/dist/darwin-x86_64/Settings.app
just win-buildExecutable and configuration under demo/dist/windows-x86_64/
just linux-buildExecutable and configuration under demo/dist/linux-x86_64/
sh
cd demo
just init
just dev

The 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.

sh
settings-schema-checker "/path/to/schema.toml"

You can also run validation directly from source.

sh
cargo run -p settings-schema --bin settings-schema-checker -- "/path/to/schema.toml"
Exit codeMeaning
0Validation succeeded
1Validation failed, or an error such as failure to read the file
2Required 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.