Config files
Run riptide --paths to see where config and data live. All config files are optional and load in this order (later wins):
| File | Purpose |
|---|---|
autoconfig.toml | Written by :set, :bind and :unbind. Don't edit it by hand. |
config.toml | Declarative settings and bindings. See the example below. |
config.lua | The same, as a Lua 5.4 program. See Lua. |
The directories for each platform are listed in Installing.
:settings opens a page with every setting, grouped by section and searchable. Each one has a control for its kind (a checkbox, a list of choices, a number, a color picker, or rows for lists and maps), and a change applies at once and is saved in autoconfig.toml, like :set. The page shows where a changed value came from, marks settings your config.toml or config.lua also sets (those win at the next start), and has a reset button for anything not at its default. Settings that can differ per site list their per-site values under the setting, each editable, with ✕ to forget it and "+ For a site" to add one for a pattern such as *.example.com. In normal mode, j and k move a highlight between settings and Return edits the highlighted one: a switch toggles, a choice steps to the next, and a text field gets the cursor (Escape leaves it). f hints reach every control too.
The page's Keys tab lists each mode's bindings, marking the ones you added or changed. Edit a binding's command in place, remove it with ✕, or put a default back with ↺ (removed defaults are listed at the bottom with a Restore button). To add one, type the keys in riptide's notation (gx, <Ctrl-y>) or press Record and then the keys, enter a command and press Bind. The page warns first when the new keys are the start of another binding, or another binding is the start of them, since riptide then waits to see which you mean. Like :bind, it's saved in autoconfig.toml. Keys riptide itself uses in insert mode, such as Escape, can't be recorded; type them instead.
The Sites tab lists every site with saved values: the answers you gave with A or N when it asked for the camera, microphone, location or notifications, certificate exceptions, and anything set with :set -u. ✕ forgets one value (permissions go back to asking), "Forget all" forgets the site, and "Clear data" deletes its cookies and stored data (local storage, IndexedDB, cache). The field at the top clears any site, e.g. example.com. One-time y answers are kept by Chromium itself and aren't listed.
Every setting is listed in the settings reference, and the completion popup lists them as you type :set , with each one's current value. After a name it offers the values: true/false, a setting's choices, or its current and default values. In the browser:
:set hints.chars asdfchanges a setting;:set hints.uppercase!toggles one;:set hints.charsshows the value.:bind <Ctrl-x> tab-closeadds a binding (--mode insertfor other modes);:bind <Ctrl-x>shows one;:unbind dremoves one.:config-list-addand:config-list-removechange one item of a list setting, and:config-dict-add [--replace]and:config-dict-removeone key of a map setting. For example,:config-dict-add url.searchengines ddg https://duckduckgo.com/?q={}. Like:set, they're saved inautoconfig.toml.:config-difflists the settings that differ from their defaults,:config-clearputs them all back, and:config-write-toml [--force]writes your current settings toconfig.toml.:config-editopensconfig.lua(orconfig.toml) ineditor.commandand reloads it when you close the editor.:config-sourcereloads every file. Errors show in the status bar withfile:line, and the rest of the file still applies.
A few settings, such as content.webgl and input.spatial_navigation, only apply when riptide starts; the reference marks them "after a restart". When you change one, the status bar says so, and :restart restarts riptide with your tabs.
Per-site values use [per_domain."<pattern>"] tables; see Per-site settings.
Example config.toml
# Example config.toml for riptide.
# Copy to the config directory (run `riptide --paths` to find it).
# Every key is a setting name, as listed in `:set` completion and the README.
hints.chars = "asdfghjkl"
hints.uppercase = false
messages.timeout = 3000 # milliseconds; 0 keeps messages up
tabs.last_close = "ignore" # ignore, blank, startpage, default-page, close
tabs.new_position.related = "next" # prev, next, first, last
tabs.new_position.unrelated = "last"
url.default_page = "https://start.duckduckgo.com/"
url.start_pages = ["https://start.duckduckgo.com/"]
# ":open w rust" searches Wikipedia; anything else uses DEFAULT.
[url.searchengines]
DEFAULT = "https://duckduckgo.com/?q={}"
w = "https://en.wikipedia.org/w/index.php?search={}"
gh = "https://github.com/search?q={}"
[aliases]
q = "quit"
qa = "quit"
wq = "quit"
[bindings.normal]
"<Ctrl-x>" = "tab-close"
"gw" = "cmd-set-text -s :open w"
# An empty command removes a default binding:
# "d" = ""
[bindings.insert]
"<Ctrl-[>" = "mode-leave"