Configuration¶
condash reads two JSON files. Both are optional — sensible defaults apply when keys are missing — and the two have disjoint schemas, so every setting key lives in exactly one of them.
| File | Where | Lifecycle |
|---|---|---|
settings.json |
~/.config/condash/settings.json (Linux) |
Per-machine. Holds everything personal — appearance, terminal, launchers, open-with, the dashboard — plus lastConceptionPath + recentConceptionPaths (cap 5). |
.condash/settings.json |
<conception>/.condash/settings.json (legacy fallbacks condash.json, configuration.json) |
Per-conception, per-host (gitignored by default). Holds only this tree's workspace_path, worktrees_path, repositories, retired_apps, taskConfig. |
Key ownership: every setting has exactly one home — there is no
override, inheritance, or merge. A key written to the wrong file is
rejected by the strict schema; on conception open, condash's
scope-partition migrator relocates any mis-homed key to its owning file.
A conception cannot describe its own location, so lastConceptionPath
and recentConceptionPaths are global-only.
Read precedence for the per-conception file: .condash/settings.json
(canonical) → condash.json (legacy) → configuration.json (legacy²).
Both legacy filenames are read indefinitely with no deprecation date;
writes always target .condash/settings.json.
.condash/settings.json — minimal example¶
{
"workspace_path": "/home/you/src",
"worktrees_path": "/home/you/src/worktrees",
"repositories": [
"condash",
{ "name": "myapp", "run": "make dev" },
"conception"
]
}
Only the tree-shape keys (workspace_path, worktrees_path, long_lived_branches, repositories, retired_apps, taskConfig) are valid here — personal keys like open_with, pdf_viewer, and terminal belong to the global settings.json.
| Key | Meaning |
|---|---|
workspace_path |
Where condash scans for git repos. |
worktrees_path |
Sandbox for the "Open in IDE" buttons. |
long_lived_branches |
Branch patterns (* / ? globs) that condash worktrees remove never deletes. Defaults to main + master. |
repositories |
Ordered list of repos to surface on the Code pane. Each entry is a string, a {name, …} object (optional submodules, run, force_stop, label, install, env, pinned_branch), or a {"section": "<heading>"} marker that groups every following repo under a header. Full table: https://condash.vcoeur.com/reference/config/#repositories |
The Skills pane (<conception>/.agents/skills/) and Resources pane
(<conception>/resources/) read hard-coded folders — no override is
available since the reframe.
A repo entry's run wires up an inline dev-server runner; force_stop
gives a kill button that frees a stuck port (e.g. fuser -k 8200/tcp).
settings.json — minimal example¶
{
"lastConceptionPath": "/home/you/conception",
"recentConceptionPaths": [
"/home/you/conception",
"/home/you/work/conception"
],
"theme": "system",
"terminal": {
"shell": "/bin/zsh",
"shortcut": "Ctrl+T",
"screenshot_dir": "/home/you/Pictures/Screenshots"
},
"cardMinWidth": {
"projects": 650,
"code": 650,
"knowledge": 520,
"resources": 280,
"skills": 280,
"logs": 400,
"tasks": 340,
"deliverables": 340
}
}
The first-launch folder picker writes lastConceptionPath for you and
prepends the path to recentConceptionPaths. Theme follows the OS
unless you set it explicitly via the toolbar toggle.
Personal keys (terminal, theme, uiFonts, cardMinWidth, open_with,
pdf_viewer, dashboard, autoSync, agents, …) live only in settings.json;
the tree-shape keys (workspace_path, worktrees_path, long_lived_branches,
repositories, retired_apps, taskConfig) live only in .condash/settings.json.
A key in the wrong file is rejected (and relocated on the next conception
open).
Editing in the app¶
File → Settings (Ctrl+,) opens a full-viewport modal — one
scrolling surface, no tabs, no in-modal JSON editor (each preference has
its own form control). The left rail groups the sections under two scope
headers, one per file, and each section carries a scope chip naming
the file it writes.
For the section-by-section breakdown — which section sits under which scope header and which keys it edits — see The Settings modal guide: https://condash.vcoeur.com/guides/settings-modal/
In short: Personal · this machine (writes settings.json) holds
Appearance, Terminal, Launchers, Open with, Dashboard, and Auto-commit;
This conception (writes .condash/settings.json; the legacy
condash.json and configuration.json are read but never written to)
holds Workspace & paths and Repositories.
Because every setting has exactly one home, there are no inheritance badges, no override state, and no Reset to global buttons — that machinery was removed with the scope-partition revamp. A small dirty pip next to a section flags unsaved edits; Save flushes every staged draft and Discard drops them. Each draft round-trips through the same atomic save + schema-validation path the CLI uses.
File → Open Recent¶
The application menu shows up to 5 recently-opened conception paths (newest first) under File → Open Recent. Picking an entry switches the active conception immediately (no folder dialog) and promotes the path to the head of the list. The Settings modal's Recent conception paths section lets you remove individual entries or clear all.
CLI¶
The condash config verbs read and write the same files:
condash config path # show both file paths
condash config list # show .condash/settings.json
condash config list --global # show settings.json
condash config list --effective # combined read view (both files)
condash config get repositories[0] # query the conception file
condash config get theme --effective # theme is a personal key — read the combined view
condash config get theme --global # query settings.json
condash config set workspace_path /src # auto-routed to .condash/settings.json (tree key)
condash config set theme dark # auto-routed to settings.json (personal key)
When changes apply¶
| Change | Effect |
|---|---|
open_with, terminal, repo run / force_stop, cardMinWidth, theme |
Live, no restart |
workspace_path, worktrees_path, repository list |
Restart required |
More¶
The full key-by-key reference lives at https://condash.vcoeur.com/reference/config/.