Settings — Global SET-01
Preferences that apply to every app.
| Who can use it | Self |
|---|---|
| Where it is | /settings · link: https://hub.substratalapps.com/settings or substratal://settings |
| Available on | Web (PWA), iOS / iPadOS, Android, Windows, Linux (GNOME), macOS |
| Phase | MVP |
Appearance
Choose Light, Dark or Match system, then a light theme and a dark theme. The change applies immediately. The defaults are Moss Paper and Forest Floor; all ten are described in Appearance and themes. If the system's high-contrast mode is on, it takes precedence over the theme.
What you can do here
- Change any row — Optimistic; revert + toast on error.
- Choose a light or dark theme — Apply instantly, cache locally, then sync; 409 → refetch and re-apply; 422 → revert + toast "Couldn't save your theme. Try again."
Related guides
- Appearance and themes — Light, dark or system, and the five light and five dark themes.
- Using the Hub on macOS — Install the Mac app, sign in, get around with the keyboard, use several windows, and point it at a local API.
- Substratal on Windows — Install the Windows app, sign in, find your way around, keyboard shortcuts, notifications, and what's in each release.
- Substratal on Linux — Install and run the Hub on GNOME and other Linux desktops, how it signs in, how notifications arrive, and Linux-only tips.
- Set up the Windows app as an administrator — From a fresh install to a secured, signed-in admin workstation, with the shortcuts that make daily work fast.
On your platform
| App | Status | How it's built |
|---|---|---|
| Web (PWA) | — | Grouped settings rows in main pane |
| iOS / iPadOS | — | Inset-grouped List/Form |
| Android | Available in 0.1.0 | Grouped ListItems |
| Windows | — | Page of SettingsCards |
| Linux (GNOME) | — | AdwPreferencesPage |
| macOS | — | Detail column Form(.grouped); per-row save |
Status is reported by each app's repository; — means that app doesn't report it yet.
For developers: API calls
| Method | Path | What it does |
|---|---|---|
| GET | /users/{id}/settings | Fetch global Settings (self, or platform users.list) |
| PATCH | /users/{id}/settings | Update global Settings (self or users.manage) |
| GET | /users/{id}/apps/{appId}/settings | Fetch fully resolved per-app settings (self, the app's own key, or platform users.list) |
| PATCH | /users/{id}/apps/{appId}/settings | Write per-app overrides (validated against settings_schema; null clears) |
Every call sends Substratal-Version: 1. Paths are at the host root, with no /v1.