Settings¶
In the app¶
Reach these via ⚙ → All settings…. The dialog has four tabs — General (search roots, the worktree root and the shared folder), Editors, Appearance (theme and window title) and Behaviour (before running, the command line, and closing after opening). Save and Cancel sit below the tabs and cover all four, so switching tabs loses nothing. The dialog can be resized, and the editor list grows with it.
- Search roots — directories to scan for working trees (one per line).
- Editors — the tools Fido can open into. Each row has a name, an optional slug (the
command-line token that selects it, e.g.
rider), a kind (Rider, WebStorm, VS Code, Visual Studio, Zed, Console, File Explorer, or Custom), and an optional path (blank = auto-detect for known kinds; required for Custom). For Console the path is the terminal program and for File Explorer the file manager (blank = the OS default; a full path or a bare command name likewt/pwshboth work), so you can point Fido at the terminal you prefer. Below the path, optional arguments are passed before the target — e.g.-w 0 nt -d .to open a Windows Terminal console as a tab in the current window. The path holds the program alone; arguments typed into it make it unfindable. Tick the ● radio to set the default (the hero button) — or use the ⚙ gear popover on the main screen, which offers the same choice plus No default (equal weight). The rest are reached by their keyboard shortcut — Ctrl+1 … Ctrl+9 unless you assign others (see Keyboard shortcuts below) — or by their slug on the command line. Add appends a new row; ✕ removes one, and its shortcut with it. - Worktree root — leave blank for the sibling
<repo>.worktreesconvention. Setting one also collapses the worktree folders line under the branch box to a single row, answered from the branch name alone with no scan needed (see The branch's worktree folders). - Shared folder — a synced folder that keeps the settings that are the same on every machine; see Sharing settings between machines. Blank keeps everything on this machine.
- Theme — System, Light, or Dark, plus Colour the Console tab to match (default off). Off, the Console tab keeps the terminal emulator's own sixteen ANSI colours, on a plain ground the right way up for the theme; on, the ground and all sixteen come from Fido's palette instead. Either way the console follows the theme, and a change repaints the shell that is already running. This is the saved default; the header's sun/moon toggle flips the screen for the current run without touching it, and saving here takes back over.
- Window title — Show the repo and branch once discovery resolves them (default on). On, a
resolved branch renames the window to
<repo> · <branch>(see The window title); untick it and the title staysFido. - Before running — two switches for what a Console run menu pick does:
- Fast-forward the target onto
originfirst (default on). On, picking a command from either run menu updates the target before the console opens (see Up to date before it runs); untick it to run against the tree exactly as it stands. The Console tab's shell here never triggers it. - Run it in Fido's Console tab (default off). Off, a pick from the Console button's run menu goes to the terminal you have configured. On, it runs in Fido's own Console tab instead — a real shell over a real pseudo-terminal, beside the flight log. It governs that button's menu only: the Console button itself always opens your terminal, and the Console tab's own Run menu always runs in the pane.
- Fast-forward the target onto
- Command line — Switch to a window that already has the branch (default on). On,
fido <branch>brings the Fido window already open on that branch to the front instead of opening a second, and runs anything else the command line asked for — a tool,-s,--folder— there (see A window that already has the branch). Untick it and every launch opens its own window;--new-windowdoes the same for a single launch. Takes effect from the next launch. - Close after opening — when Fido quits after a successful launch: Command line (default — only when started with a branch on the command line), Always (after every launch, including the on-screen buttons), or Never (turns auto-close off).
- Close delay — seconds Fido counts down before it auto-closes (default 10; 0 closes
immediately). The flight log shows a single line that ticks down in place (
Closing in 10…, then9…,8…), and a Keep open bar appears at the bottom with the live countdown. Clicking Keep open — or simply starting another scan or open — cancels the close, so it's never a point of no return.
Keyboard shortcuts¶
Reach these via ⚙ → Keyboard shortcuts…, or press Ctrl+K, Ctrl+S. Every action on the main
screen is listed with its keys — a single press, or a two-press chord such as Ctrl+K, Ctrl+S. Click
one and press the keys to change it; ↺ restores a default, ✕ removes a shortcut, Reset all
restores them all. How recording, chords and clashes work is in
Your own shortcuts.
In the config, a tool's shortcut lives on the tool, and everything else under Shortcuts, keyed by
the action's name. Only what differs from the defaults is written; an empty string means no shortcut
rather than the default; and a chord is two presses with a comma between them:
"Editors": [
{ "Name": "Rider", "Slug": "rider", "Kind": "Rider", "Shortcut": "Ctrl+K, R" },
{ "Name": "WebStorm", "Slug": "ws", "Kind": "WebStorm" }
],
"Shortcuts": {
"ToggleTheme": "Ctrl+K, T",
"CopyPath": "Ctrl+Shift+C",
"Rescan": ""
}
A tool with no Shortcut keeps its number — the first nine answer to Ctrl+1 … Ctrl+9 by their place in
the list. The names under Shortcuts, matched in any case:
| Name | Action | Default |
|---|---|---|
OpenDefault |
Open in the default tool | — |
Rescan |
Scan for the branch again | F5 |
FocusBranch |
Go to the branch box | — |
FocusSolution |
Go to the solution filter | — |
NextLocation / PreviousLocation |
Select the next / previous location card | — |
CopyPath |
Copy the selected path | — |
EditRepoConfig |
Create or edit .fido/cfg.yaml |
— |
OpenPullRequest |
Open the branch's pull request | — |
DeleteWorktree |
Delete the worktree (raises the confirm strip) | — |
ShowFlightLog / ShowConsole |
Show the Flight log / Console tab | — |
CopyFlightLog / SaveFlightLog |
Copy / save the flight log | — |
ToggleTheme |
Flip light / dark for this run | Ctrl+K, Ctrl+T |
Settings |
Settings… | Ctrl+, |
KeyboardShortcuts |
Keyboard shortcuts… | Ctrl+K, Ctrl+S |
Keys are written as on the dialog — modifiers Ctrl, Shift, Alt, Meta (also Cmd / Win), then the
key by the character on it (Ctrl+,, Ctrl+[) or its name (F5, Enter, PageUp); VS Code's
space-separated ctrl+k ctrl+t reads too. A hand edit that clashes is settled the way the dialog would
have it: a shortcut you chose beats a default, and otherwise the first in the dialog's order keeps the keys.
Defaults¶
- Search roots:
%USERPROFILE%\source\repos,%USERPROFILE%\src,%USERPROFILE%\RiderProjects,%USERPROFILE%\Projects. - Default branch names:
main,master(never offered for deletion). - Search depth: 4.
- Command line:
fido <branch>switches to a window already open on the branch. - Keyboard shortcuts: Ctrl+1 … Ctrl+9 open with the tools by position; F5 rescans; Ctrl+, opens Settings; Ctrl+K, Ctrl+S the Keyboard shortcuts; Ctrl+K, Ctrl+T flips light / dark.
- Close after opening: command-line launches only, with a 10-second close delay.
- Window title: shows
<repo> · <branch>once discovery resolves. - Console tab colours: the terminal's own scheme; Fido's palette is opt-in.
- Before running: fast-forwards the target onto
originwhen you pick a run command; a pick from the Console button's run menu goes to your terminal, not Fido's Console tab.
In-repo config (committed to the branch)¶
A repo can also configure Fido for itself, in .fido/cfg.yaml on the branch — prefer main clone
and commands. It's read from the branch every time a scan lands and needs no user
setting to enable; see In-repo config for the file's shape.
Where settings live¶
JSON at %APPDATA%\Fido\config.json. If that doesn't exist, Fido reads a legacy
%APPDATA%\atlantic-opener\config.json (from before the rename) so existing settings survive;
the next save writes to the new location.
Sharing settings between machines¶
Set Shared folder to a folder your sync client keeps in step — say
E:\ProtonDrive\My files\.fido\shared — and Fido keeps a second config.json there, holding the
settings that mean the same on every machine:
| Shared | Kept on this machine |
|---|---|
| The tools — names, slugs, kinds, paths, arguments, shortcuts — and the default | Search roots and search depth |
| The keyboard shortcuts | The worktree root |
| Theme and Console colours | Recent branches and solutions |
| Window title, before running, command line, close after opening | The shared folder itself |
| The default branch names |
The local file still holds everything. It's the copy Fido reads when the shared folder can't be (a drive not mounted), and on load the shared file, when it can be read, wins for its part. A tool's path is shared too, so leave it blank where auto-detect finds the tool on both machines.
The status line under the box says what Save will do:
- in use — the folder this Fido is already reading.
- has a config.json — another machine got there first. Save takes its settings in place of this machine's, which is how a second machine joins rather than overwriting the first.
- no config.json yet / folder not found — Save writes this machine's settings there, creating the folder if need be.
Fido rewrites the shared file only when a shared setting has changed since it last read it. A window that
has been open all day can save a recent branch without putting back the tools another machine changed in
the meantime. When two machines both change shared settings, the later save wins. Environment variables
and a leading ~ are expanded. Nothing is copied or moved when you change the folder, and the old one is
left as it was.
Each open window also leaves an empty marker file in %LOCALAPPDATA%\Fido\instances
(~/.local/share/Fido/instances on Linux, ~/Library/Application Support/Fido/instances on macOS), which
is how fido <branch> finds a window that already has the branch.
A window removes its marker when it closes, and the next launch clears away any left by a Fido that didn't.
Beside them, window.json in the same Fido folder holds where the window was last closed and how big
(see Where the window opens). It's written each time a window
closes — kept out of config.json so a hand edit there is never overwritten — and kept local rather than
roaming, because it describes this machine's screens. Delete it and the next window opens centred.