Configuration
Configure ebb from the Settings panel or from a config.toml file.
You can configure ebb in two ways:
- The Settings panel. Open it with Cmd+, / Ctrl+,.
- The
config.tomlfile, on the desktop app only.
The two are the same settings. The desktop app writes each change from the Settings panel to the file. When you edit the file, ebb applies the change immediately. In the browser, ebb keeps your settings in browser storage, and there is no file.
The Settings panel has five categories: Display, Editor, Keyboard, Collaboration, and Updates. The last two are on the desktop app only, because the web build has no updater and no shared editing.
File location
ebb loads config.toml from $XDG_CONFIG_HOME/ebb/config.toml. If
XDG_CONFIG_HOME is not set, the location is:
- Windows:
%APPDATA%\ebb\config.toml - Everywhere else:
~/.config/ebb/config.toml
If the file does not exist, ebb creates it from the current settings. If a value in the file is not valid, ebb uses the default for that key.
Options
Each option below shows its config.toml key, its type, and its default. The
options are grouped by the Settings category that holds their control.
Display
| Key | Type | Default | What it does |
|---|---|---|---|
theme | "light" / "dark" / "system" | "system" | The UI theme. This does not apply to the flow editor. |
flow_font | font name | "Pretendard" | The font of the flow grid. See the list below. |
default_zoom | number | 1 | The zoom that the flow grid opens at, as a factor (1 = 100%). ebb clamps it between 0.5 and 3. |
scroll_zoom | boolean | true | Zoom the flow grid with Cmd/Ctrl + scroll. |
align_speeches | boolean | false | Line each sheet up on the speaking order of the round. See Align speeches. |
tooltips | boolean | true | Show hover hints on buttons and controls. |
rfd_vim | boolean | false | Vim keybindings for the RFD editor. |
aff_color | "#RRGGBB" | theme default | The color of the aff side in the UI, and of a Gov sheet. |
neg_color | "#RRGGBB" | theme default | The color of the neg side in the UI, and of an Opp sheet. |
flow_font is the name of one of these fonts. The name is not case-sensitive.
- Mono: Commit Mono, IBM Plex Mono
- Sans: Pretendard, DM Sans, IBM Plex Sans, Cabin, Lato, Open Sans
To get the theme's default side colors again, remove aff_color and neg_color
from the file, or click Reset in the Settings panel.
Editor
| Key | Type | Default | What it does |
|---|---|---|---|
insert_paste | boolean | false | A paste pushes the text in those columns down. It does not replace the text. |
flows_dir | path | ~/Documents/ebb | The folder that ebb files new flows in. Files that ebb already wrote stay where they are. |
cardmirror_enabled | boolean | true | The CardMirror integration. Off, ebb answers nothing on the bridge and drops the two commands. |
cardmirror_text_type | style | "analytic" | The style CardMirror applies to text that ebb sends it. |
cardmirror_text_type is one of "analytic", "tag", "block", "hat",
"pocket", or "body".
Collaboration
These options are on the desktop app only. See Shared editing for what a session does.
| Key | Type | Default | What it does |
|---|---|---|---|
collab_enabled | boolean | false | Shared editing. Off, ebb reaches no network at all. |
collab_relay | boolean | true | Off, a session holds to direct connections. On, a session can also connect through a relay. |
collab_listen | boolean | false | Hold an endpoint open the whole time ebb runs, so a saved contact can offer you a round. |
collab_show_viewers | boolean | true | Mark the cell that a view-only partner looks at. |
collab_name | string | "" | What a partner sees. Blank sends the name of your machine, which ebb never writes into this file. |
Each saved partner is one table below contacts, keyed by the ID of that
partner:
[contacts.4e6c9f2a1b7d8c3e5f0a9b8c7d6e5f4a3b2c1d0e9f8a7b6c5d4e3f2a1b0c9d8e]
name = "Rin"
relay = "https://relay.example"name is what you call that partner. relay is where ebb found them last, and
ebb writes it for you. A contact that you type in by hand has no relay, and
ebb reaches that contact across your local network only, until a session records
one.
A contact carries no permission of its own. What a partner can do is a property of the round that you invite them to, and you select it at the invitation. See What a partner can do.
The Contacts list in Settings > Collaboration writes this table, and a contact that you remove there leaves the file.
Workspace state
ebb writes these two keys as you work. They have no control in the Settings panel.
| Key | Type | Default | What it does |
|---|---|---|---|
sidebar_collapsed | boolean | false | Hide the sidebar. |
rfd_open | boolean | false | Show the RFD editor when a flow opens. |
Keybindings
To rebind a command from the Settings panel:
Reset puts back the default of a command. ebb marks each command that you rebind.
[keymap]
In config.toml, the [keymap] tables hold the bindings. A command id such as
theme.dark becomes a table and a key:
[keymap.theme]
dark = "Meta+D"The file contains every command, so you can edit it in place. A command with an
empty string ("") has no binding. ebb ignores an unknown command id.
A chord is its modifiers and its key, connected with +. The modifiers are
Meta (Cmd), Ctrl, and Alt. For a letter key, write
Shift as the capital letter: "Meta+Z" is Cmd+Shift+Z.
The defaults use Meta on macOS and Ctrl on Windows and Linux.
The file holds each binding, so an update that moves a default finds your file with the earlier chord in it. A chord that only restates a default that ebb has since moved is read as the leftover it is, and ebb drops it and applies the new default. If you set that same chord by hand, set it again once after the update.
The collaboration commands are not in the file and not in the shortcut list. They run from the Invite and Join buttons in the sidebar, from the command palette, and from Join Round... in the File menu.
For the default chords, push ? in ebb to open the shortcut reference, or see Features.
Updates
[update]
auto_check_enabled = falseWhen true, ebb fetches the GitHub releases page and tells you when a new
version is available. The default is false.