The distribution does not package the theme, and the predecessor cloned whatever upstream's default branch held the day a hook ran (novox/hq ADR 0205). So upstream's v1.20.0 release is vendored verbatim, with its licence, and shipped as an archive the host unpacks under the account's home and checks by digest. The prompt's configuration is today's ~/.p10k.zsh byte for byte, as a second archive. Inline, its 86 KB would ride in every declaration and be unreviewable JSON. The zsh code that loads both is a contribution to the normal slot (ADR 0204). Instant prompt stays off, as it is today.
47 lines
2.7 KiB
Markdown
47 lines
2.7 KiB
Markdown
# powerlevel10k
|
|
|
|
The zsh prompt as a module (novox/hq ADR 0204, ADR 0205, to-be 41).
|
|
|
|
- **Upstream:** https://github.com/romkatv/powerlevel10k
|
|
- **Version:** v1.20.0, vendored verbatim from the release archive
|
|
(`archive/refs/tags/v1.20.0.tar.gz`, sha256
|
|
`d8187d44b697b3a37a8c4896678b4380e717cbf2850179529358348780a2d3d7`) into `theme/`. It is 86
|
|
files and 1,427,736 bytes.
|
|
- **Licence:** MIT, in `theme/LICENSE`, which travels in the archive. gitstatus's own licence is
|
|
`theme/gitstatus/LICENSE`.
|
|
|
|
The distribution does not package the theme, so the module carries a pinned release (ADR 0205). An
|
|
upgrade is a change to this directory, reviewed like any other: replace `theme/` with the new
|
|
release's contents, and update the version here and in the shell code's comment.
|
|
|
|
## What it places
|
|
|
|
| path under the account's home | what | class (ADR 0182) |
|
|
|---|---|---|
|
|
| `~/.local/share/powerlevel10k/` | the theme, unpacked from the `theme` archive | owned, whole |
|
|
| `~/.config/powerlevel10k/p10k.zsh` | the prompt's configuration, unpacked from the `configuration` archive | owned, whole |
|
|
|
|
The configuration is today's `~/.p10k.zsh`, byte for byte. It is the predecessor's file, and was
|
|
identical on every machine. It ships as an archive of one file rather than as an inline file. At
|
|
86 KB, inline content would ride in every declaration the node receives, and would be unreadable
|
|
JSON in review. As its own file it is reviewed as a diff, and pinned by digest like the theme. The
|
|
directory is the module's, so `p10k configure` writing `~/.p10k.zsh` does not touch it: to change
|
|
the prompt, change `config/p10k.zsh` here.
|
|
|
|
The module contributes zsh code to the `normal` slot of the login shell's block. That code sources
|
|
the theme, then the configuration, each only if present. Instant prompt is not turned on: the
|
|
operator's `.zshrc` has its cache line commented out today, and the configuration's own
|
|
`POWERLEVEL9K_INSTANT_PROMPT` setting does nothing without that line.
|
|
|
|
## What it does not do
|
|
|
|
- **gitstatus downloads its binary on first use.** The theme's git status helper fetches
|
|
`gitstatusd` from upstream's releases into `~/.cache/gitstatus` the first time a prompt runs in a
|
|
git repository. ADR 0205 pins what the mesh ships, not what the software fetches for itself. A
|
|
machine without a route to upstream shows the prompt without git status.
|
|
- **Fonts are not this module's.** The configuration uses Nerd Font icons. The terminal's font is the
|
|
desktop's concern.
|
|
- **Moving from the predecessor:** once this module is assigned, `~/.zsh/themes/powerlevel10k` and
|
|
`~/.p10k.zsh` are no longer read, and the operator removes them, once (ADR 0182; the zsh module's
|
|
README lists the lines to delete from `.zshrc`).
|