aboutsummaryrefslogtreecommitdiffstats
path: root/docs/workspaces.md
diff options
context:
space:
mode:
authoruser <user@clank>2026-08-19 15:25:28 +0200
committeruser <user@clank>2026-08-19 15:25:28 +0200
commit49ac13f70aa3a9224e90699fe68d8463909239db (patch)
tree303c3cee9492e23de6a1f0afc7b2feffeba5c6aa /docs/workspaces.md
parentslosh: the logo flies into place -- a particle engine, statelessly (diff)
downloadslosh-49ac13f70aa3a9224e90699fe68d8463909239db.tar.gz
slosh-49ac13f70aa3a9224e90699fe68d8463909239db.tar.xz
slosh-49ac13f70aa3a9224e90699fe68d8463909239db.zip
slosh: layout files are *.layout, not *.layout.kdl
The old name argued that the extension should say how to read the file. The argument lost to a collision: zellij speaks the same KDL syntax under that same extension with a different schema, and to anyone arriving from there .kdl said *whose* file it is -- naming the wrong owner is worse than not naming the parser. So a layout is x.layout, a project's is slosh.layout, the name says what the file is and --check says how it was read. (It is still KDL underneath; point your editor's highlighting at *.layout.) Nobody's checked-in workspace vanishes on upgrade: the project scan still finds slosh.layout.kdl, never writes it, and where both spellings exist the new one wins, because two files disagreeing needs one answer. The unparseable-file heuristic in --check learned the new suffix -- it matched '.layout.' with a trailing dot, which the new name no longer has. The webdemo overlay moves with it (demo.layout), rebuilt and boot-checked.
Diffstat (limited to 'docs/workspaces.md')
-rw-r--r--docs/workspaces.md12
1 files changed, 6 insertions, 6 deletions
diff --git a/docs/workspaces.md b/docs/workspaces.md
index 4963683..b90c145 100644
--- a/docs/workspaces.md
+++ b/docs/workspaces.md
@@ -17,7 +17,7 @@ A subdirectory of a configured root with one of two markers in it:
| marker | what it is |
|---|---|
-| `slosh.layout.kdl` | a *declared* project — it says what it needs open |
+| `slosh.layout` | a *declared* project — it says what it needs open |
| `.git` | an *inferred* one — you work here, but you have not said how |
Anything else is not a project, and nothing is guessed from what is inside it.
@@ -40,7 +40,7 @@ Two settings, both in your [config](config.md):
```kdl
project_roots "~/dev" "~/work" depth=2
-project_layout "~/.config/slosh/project.layout.kdl"
+project_layout "~/.config/slosh/project.layout"
```
`project_roots` takes more than one directory because people have more than one —
@@ -94,7 +94,7 @@ C-a w picker: ~/work newthing .git · no layout
Enter your project_layout, cwd bound to newthing
C-a Enter, npm run dev arrange it, run things
C-a P service:web Enter tag the pane that matters
-C-a W "wrote slosh.layout.kdl · 4 panes, 2 suspended"
+C-a W "wrote slosh.layout · 4 panes, 2 suspended"
```
Tomorrow, `C-a w Enter` rebuilds that tab with the dev server in the pane you put
@@ -109,9 +109,9 @@ every tab carrying that purpose and says how many.
## Saving one
-`C-a W` writes the focused tab to `slosh.layout.kdl` in the project's directory,
+`C-a W` writes the focused tab to `slosh.layout` in the project's directory,
and the toast says what happened:
-`wrote slosh.layout.kdl · 4 panes, 2 suspended`.
+`wrote slosh.layout · 4 panes, 2 suspended`.
**What each pane is running goes in with it.** That is what makes writing a layout
the same act as arranging one: split the tab, start the dev server, start the log
@@ -155,7 +155,7 @@ the screen — so it says so in the request.
how a hand-arranged tab becomes a project's layout without opening it through the
picker first.
-`slosh --check slosh.layout.kdl` holds the result to the layout schema and
+`slosh --check slosh.layout` holds the result to the layout schema and
prints one `file:line: what` per problem, so a project's layout goes through the
same check as everything else you commit — see
[layouts](layouts.md#what-to-call-them).