Skip to content

Config

If you want to configure rim as a user, start with the user guide instead:

Configuration is owned by rim-application, not by rim-app and not by the domain.

The active config files are:

  • keymaps.toml
  • commands.toml
  • editor.toml

They live under rim_paths::user_config_root().

On Unix-like systems that is typically:

  • $XDG_CONFIG_HOME/rim
  • or ~/.config/rim
flowchart TD
Start["App startup or reload"] --> Reset["reset_config_state_to_defaults()"]
Reset --> Editor["load editor.toml"]
Editor --> Keymaps["load keymaps.toml"]
Keymaps --> Commands["load commands.toml"]
Commands --> Apply["apply to WorkbenchState / CommandRegistry"]

Missing files are not created at startup. If a config file is absent, rim keeps the embedded preset defaults for that slice.

  • file paths and parsing policy: rim-application::config
  • resulting command registry and workbench settings: WorkbenchState
  • editor core: unaffected except through later actions

editor.toml currently controls:

  • leader_key
  • cursor_scroll_threshold
  • key_hints_width
  • key_hints_max_height
  • putting config-derived registry state into rim-domain
  • having adapters parse config on their own
  • duplicating config path logic outside rim-application
  • adding startup-time config file creation or migration side effects back into the runtime path