Configuration file
You never have to edit these files: everything here can be changed in the app. They are plain YAML so that you can read them, keep them in version control, or move them to another Mac with Export and Import.
Where files are kept
~/Library/Application Support/com.vonng.capslock/
- action_mappings.ymlmappings, actions, profile
- app_config.ymlsettings
- backups/automatic snapshots
Logs/
- Capslock.logdiagnostic log
- ClipboardSlots/encrypted clipboard slots
- usage_stats.jsonStatistics counts
- hidutil-transaction.jsonrecovery record
Settings › Recovery › Show Config Folder opens it in Finder. Your language choice is kept in the app's preferences, and the clipboard key in your Keychain.
action_mappings.yml
The file has three parts: a capslock_profile block that Capslock maintains,
your custom actions, and the mappings. Built-in actions are never written
to the file.
Mappings
bindings- Optional app rules
Actions
A command action loaded from a file you edited or imported is not trusted
until you approve it in the app, even if the file says trusted: true.
app_config.yml
Backups
Before a change that replaces a lot at once, such as an import, reinstalling
the Classic layout, removing an app's rules, or changing profile behaviour,
Capslock saves a copy of action_mappings.yml in backups/. The newest 20
are kept.
Safety rules for the files
- Unknown fields are kept. Keys, fields and whole entries that this version does not understand are written back unchanged, so a configuration from a newer version survives being opened by an older one.
- A broken file is never overwritten. If
action_mappings.ymlcannot be read, Capslock backs it up, shows the configuration as read-only, and does not start until you repair it or import a good one. Diagnostics reports "Configuration needs repair". - Outside edits are detected. Changes made in another editor are reloaded when you switch back to Capslock, and a save never overwrites them.
- Older formats load. A bare list of mappings from earlier versions is read as mappings with inline actions; editing a mapping converts it to the current form.