3
Chapter 3
Configuration
Shared app behavior belongs in oro.toml. Local machine choices, staging URLs, signing paths,
and device selections belong in .ororc.
Make shared settings explicit
Put product identity, bundled files, window defaults, and permissions under version control.
oro.toml
[meta]
bundle_identifier = "com.example.field-notes"
title = "Field Notes"
version = "0.2.0"
lang = "en-US"
[build]
name = "field-notes"
copy_map = "copy-map.toml"
output = "build"
[window]
width = "70%"
height = "80%"
resizable = true
[permissions]
allow_notifications = true
allow_clipboard = true
Keep local settings local
Use .ororc for values that should not travel with the source tree.
.ororc
[build]
platform = "ios-simulator"
[ios]
simulator_device = "iPhone 15"
[env]
API_BASE_URL = "https://staging.example.com"
Inspect the merged result
When behavior is surprising, ask the CLI what configuration it actually sees.
Terminal
oroc config --format toml
oroc config --describe permissions.allow_notifications
oroc config --describe window.width
The merge order is deliberate: source config first, local overrides second, one-off CLI flags last. Debug the merged value before changing code.
What changed
- Product behavior stayed in
oro.toml. - Machine-local choices moved to
.ororc. - Permissions became reviewable instead of hidden in runtime code.
- The CLI became the source of truth for effective config.
Chapter complete
Next, create a second window and pass messages between runtime windows.
Continue to windows