diff options
| author | user <user@clank> | 2026-08-27 16:04:37 +0200 |
|---|---|---|
| committer | user <user@clank> | 2026-08-27 16:04:37 +0200 |
| commit | c76159dd380bf5a37d1a24e5295c42c626090c5c (patch) | |
| tree | cdc4ce82662f9e75d13095da73d8e0e319f640e0 /docs | |
| parent | docs: drop the ascii mockup from the landing page too (diff) | |
| download | slosh-c76159dd380bf5a37d1a24e5295c42c626090c5c.tar.gz slosh-c76159dd380bf5a37d1a24e5295c42c626090c5c.tar.xz slosh-c76159dd380bf5a37d1a24e5295c42c626090c5c.zip | |
docs: the landing page stops arguing
The 'Why another one' section was two paragraphs of case-making against
other multiplexers, and a landing page that defends its existence reads
as unsure of it. What the section said truthfully -- the vendored core,
recompute-not-remember, scriptable to its depth -- design.md already
says where it belongs. The one-line closer stays: 15k lines of C and no
dependencies is a fact, not a defence.
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/index.md | 38 |
1 files changed, 11 insertions, 27 deletions
diff --git a/docs/index.md b/docs/index.md index 52f9183..3ebd5eb 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,11 +1,11 @@ # slosh -A terminal multiplexer — panes, tabs, sessions you can detach from — written in +A terminal multiplexer -- panes, tabs, sessions you can detach from -- written in C on top of [libghostty-vt](https://github.com/ghostty-org/ghostty). ## Install -Needs [zig](https://ziglang.org) 0.16 and nothing else — no cmake, no +Needs [zig](https://ziglang.org) 0.16 and nothing else -- no cmake, no autotools, no libraries. The result is one static binary. ```bash @@ -30,30 +30,14 @@ by name. ## Where to go -- **[Keys](keys.md)** — the leader, the defaults, rebinding, the palette. -- **[Panes and tabs](panes.md)** — splitting, moving, zooming, the mouse. -- **[Configuration](config.md)** — one file, live reload, themes, `include`. -- **[Shaders](shaders.md)** — colour passes over a pane's contents. -- **[Chrome shaders](chrome.md)** — the same passes over a pane's frame. -- **[Layouts](layouts.md)** — a session as a file you check in. -- **[Workspaces](workspaces.md)** — projects on disk, opened by name. -- **[Scripting](scripting.md)** — the control socket, and what a pane can draw. -- **[How it works](design.md)** — the two decisions that shape the rest. - -## Why another one - -The multiplexers we have are crusty, and the things that make them awkward are -not features somebody forgot to add — they follow from how the programs are -built. Layout state that is stored and edited rather than recomputed, so it -drifts out of sync with itself. Mouse handling written as a second -implementation of the drawing code, so the two disagree about where a button -is. Extension models bolted onto a core that never expected one. - -So: start over, and stand on the shoulders of the person who already solved the -genuinely hard part. The terminal emulation core from -[ghostty](https://ghostty.org) is vendored as a library and does the VT -parsing, scrollback, selection, images and key encoding. What sits on top is -small, recomputes rather than remembers, and is scriptable to the same depth it -is usable. +- **[Keys](keys.md)** -- the leader, the defaults, rebinding, the palette. +- **[Panes and tabs](panes.md)** -- splitting, moving, zooming, the mouse. +- **[Configuration](config.md)** -- one file, live reload, themes, `include`. +- **[Shaders](shaders.md)** -- colour passes over a pane's contents. +- **[Chrome shaders](chrome.md)** -- the same passes over a pane's frame. +- **[Layouts](layouts.md)** -- a session as a file you check in. +- **[Workspaces](workspaces.md)** -- projects on disk, opened by name. +- **[Scripting](scripting.md)** -- the control socket, and what a pane can draw. +- **[How it works](design.md)** -- the two decisions that shape the rest. About 15k lines of C, no dependencies beyond libc and the vendored core. |
