summaryrefslogtreecommitdiff
path: root/docs/config.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/config.md')
-rw-r--r--docs/config.md50
1 files changed, 45 insertions, 5 deletions
diff --git a/docs/config.md b/docs/config.md
index 7b35586c..30962ddb 100644
--- a/docs/config.md
+++ b/docs/config.md
@@ -8,6 +8,14 @@ Native pardes builds read a per-user `pardes` file before the first frame:
- Windows: `%LOCALAPPDATA%\pardes`, with `%USERPROFILE%\AppData\Local\pardes`
as the fallback.
+On the two unixes `XDG_CONFIG_HOME` counts only when it is ABSOLUTE, as the
+XDG base-directory specification requires; an empty or relative value falls
+back to the home-directory form. Windows never consults it. A file of 1 MiB or
+more, or one that cannot be read, is treated as no file at all — the path
+still resolves, because "nothing is there yet" is the answer `Config` exists
+to give. There is one case with no path at all: a native launch with no `HOME`
+set, which `Config` reports as such.
+
`Config` (`SPC f c`, or the word executed anywhere) prints the resolved path
into a `+Config` output pane, so the machine answers this rather than the list
above. The path is printed whether or not a file is there — that is the case
@@ -15,6 +23,8 @@ you ask in — and the row is ordinary text, so a right click on it opens the
file.
The browser build has no local user-config path and does not load this file.
+(Nor does it have the `Font` builtin, or a language backend, or ptys of its
+own — see `docs/web.md`.)
The format is one existing builtin command per line, using the same spelling
and argument parsing as commands executed inside pardes:
@@ -22,14 +32,44 @@ and argument parsing as commands executed inside pardes:
```text
Theme acme
Font DejaVuSansMono-Regular
+Shell zsh
+Wrap
```
-On the SDL GUI, a selected face falls back to embedded Adwaita Mono, then to
-installed `NotoSansMono-Regular`, `DejaVuSansMono`,
+A line matches a builtin whose name takes NO argument only as that whole word:
+`Kill` runs, `Kill something` does not. Builtins that take one (`Theme`,
+`Font`, `Shell`, `Restore`, `Find`, `Grep`, `Rename`, `WsSymbols`, `Look`,
+`Exec`) take everything after the name as the argument.
+
+`Theme <name>` wants one of the 228 names in the ring. Do not derive the
+spelling — read it off `ThemeSel` (`SPC t t`), which lists every one as the
+exact `Theme <name>` line that selects it. The generator lowercases, folds
+punctuation runs to a single `_` and then TRIMS leading and trailing ones
+(`penumbra+.toml` is `penumbra`, not `penumbra_`), and it suffixes every theme
+that came from zed with `_zed` so it cannot collide with a helix theme of the
+same name (zed's "Ayu Mirage" is `ayu_mirage_zed`; `ayu_mirage` is helix's).
+A name that is not in the ring is ignored.
+
+`Shell <name>` sets the binary that the NEXT terminal pane execs; panes
+already open keep the shell they are running. A bare name is resolved against
+the handful of directories a shell actually lives in, not `$PATH`.
+
+`Font` and `FontSel` exist ONLY in the SDL GUI and native macOS builds — a
+terminal's font belongs to its emulator and a browser's to the page — so a
+`Font` line is one of the silently-ignored ones everywhere else. Both builds
+resolve the name by walking the font directories on every lookup, so a face
+installed a moment ago is findable.
+
+What happens to a codepoint the chosen face has no glyph for differs by shell.
+The SDL GUI falls back through a chain it builds itself: embedded Adwaita
+Mono, then installed `NotoSansMono-Regular`, `DejaVuSansMono`,
`SymbolsNerdFont-Regular`, `NotoSansSymbols2-Regular`,
-`NotoSansSymbols-Regular`, and `DejaVuSans`, in that order. Missing entries are
-skipped. Faces are discovered and opened once at startup, and each resolved
-glyph is retained in the GPU atlas cache.
+`NotoSansSymbols-Regular`, and `DejaVuSans`, in that order, missing entries
+skipped; the rasterized glyphs are retained in its GPU atlas. The macOS shell
+has none of that and needs none: it embeds no font, substitutes the system
+monospaced face (else Menlo) when the NAME you asked for will not load, and
+leaves per-codepoint fallback to CoreText's own cascade when it draws. What it
+caches is glyph ids, not pixels.
Blank, unknown, malformed, or unsuccessful lines are ignored silently, and a
bad line does not prevent later lines from running. Top-level text that is not