Chapter 3 Configuration
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