blob: f5a87b40a0c572998ef695e1b239903c09f642f9 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# config/ — the opinionated default environment
These files are the **source of truth** for sl0ppij's shipped configuration.
Until this snapshot they existed only as live dotfiles in `~/.config/zellij`,
versioned by hand-rolled `config.kdl.pre-<thing>` backups.
| file | what it is |
|---|---|
| `config.kdl` | "unlock-first" keybinds (`Ctrl g` leader), pane frames, plugin bindings, sl0p fork options |
| `layouts/default.kdl` | the default tab layout |
| `layouts/default.swap.kdl` | responsive swap layouts (stacked-pane behaviour) |
| `themes/gruber-darker-pop.kdl` | the default theme |
| — | the layouts require **both** shipped wasm plugins: `zjstatus.wasm` (built from `sl0pstatus/`) *is* the status bar, and `pane-finder.wasm` is bound in `config.kdl` |
| `themes/templeos.kdl` | alternate 16-color VGA theme |
| `answers.example.md` | seed for a project's `.pi-answers.md` (answer-picker buttons) |
## Editing workflow
Edit **here**, then `make install-config` to sync into your live config dir.
Do not edit the live dotfiles directly any more — they are now a build output.
## `plugins/` is a trusted directory
A wasm plugin in `<config dir>/plugins/` (or the data dir's `plugins/`) gets the
permissions it asks for **without the consent prompt** — that is how the shipped
`pane-finder.wasm` and `zjstatus.wasm` start silently on a fresh machine
instead of opening with a three-item "Allow? (y/n)" screen the first time you
press their keybinding.
The boundary is that directory, nothing wider: the same wasm loaded from
anywhere else still prompts, and remote (`http(s):`) plugins are never trusted.
The reasoning is that anything able to write into your config dir can already
bind arbitrary commands to a key in `config.kdl`, so a consent screen for the
wasm sitting next to it protects nothing. **Do not use `plugins/` as a download
folder** — put a plugin you are evaluating anywhere else, and it will ask.
Rule and rationale: `plugin_is_shipped_with_sl0ppi` in
`zellij-utils/src/input/permission.rs`. Checked end to end, both halves, by
`packaging/checks/plugin-permissions-live.py`.
## Rename status
Repointed at sl0ppij's own dirs now that the rename has landed (docs/rename.md):
- `file:~/.config/sl0ppij/plugins/pane-finder.wasm` (config.kdl)
- `file:~/.config/sl0ppij/plugins/zjstatus.wasm` (layouts/default.kdl)
- builtin plugins use the `sl0ppij:` URL scheme (`zellij:` still parses)
- comments no longer reference `~/.config/zellij` or the old `~/lol/zellij` checkout
Verified with `sl0ppij setup --check` against a staged config dir: *CONFIG FILE:
Well defined*.
Still assumed: `theme "gruber-darker-pop"` requires `themes/` installed alongside.
|