Operator shell inventory (2026-07-22)¶
Sanitized snapshot of zsh / powerlevel10k / companion tooling across
operator-facing hosts. Raw dumps stay local under gitignored
artifacts/zsh-p10k-inventory/ and are not committed.
Related: operator/dotfiles/README.md, Atuin sync notes in that README.
TL;DR¶
Five systems already run Oh My Zsh + powerlevel10k for someone. Configs
diverged (plugin lists, p10k size/mode, login shell). Prox and Proxmox LXCs
had no zsh. Goal: one golden chezmoi source + Ansible operator-shell role.
Hosts with zsh (pre-golden)¶
| Host | zsh | Login shell | OMZ (short) | p10k (short) | p10k size | Mode / notes |
|---|---|---|---|---|---|---|
| infra-services | 5.9 | bash | df34d2b | 604f19a | ~9.5 KB | Lean / Pure-style; MesloLGS NF fonts; eza aliases; atuin |
| saltierpoop | 5.8.1 | zsh | 677a4592 | 8fa10f43 | ~96 KB | Full nerdfont-v3; docker/ansible aliases; Saltbox managed blocks in .zshrc |
| ubuncap | 5.9 | zsh | 98fe9b8 | 8fa10f4 | ~91 KB | nerdfont-complete |
| recordurbate | 5.9 | zsh | 677a459 | 8fa10f43 | ~9.9 KB | Lean p10k (like infra) |
| WSL CaptainKangapoo | 5.9 | zsh | 677a459 | 36f3045 | ~91 KB | nerdfont-complete; fzf + zsh-autocomplete; bat/lsd aliases |
.zshenv was byte-identical on saltierpoop / ubuncap / recordurbate / WSL
(cargo env source). Not treated as a secret; still host-optional under golden
(guarded source).
Plugin / theme matrix (pre-golden)¶
| Host | Theme | Notable plugins |
|---|---|---|
| infra-services | powerlevel10k | git, sudo, systemd, ubuntu, autosuggestions, syntax-highlighting |
| saltierpoop | powerlevel10k | git, docker, docker-compose, ansible (+ syntax sourced after OMZ) |
| ubuncap | powerlevel10k | git, autosuggestions, syntax-highlighting |
| recordurbate | powerlevel10k | git, syntax-highlighting, autosuggestions |
| WSL | powerlevel10k | git, dirhistory, history, colored-man-pages, jsontools, autocomplete, autosuggestions, syntax-highlighting, fzf-zsh-plugin |
Companion tools already present on some hosts: atuin (all five), tmux (WSL binary, no config), fzf / bat / eza (partial).
Reachable without zsh¶
| Host | Access used | Result |
|---|---|---|
| prox | patch-controller via infra-services | bash only |
| graylog, pulse, harbor-registry, octoprint, phoenix | patch-controller as root | no zsh / no configs |
| mysql (CT 113) | stopped | skipped |
Out of scope / unreachable¶
| Target | Notes |
|---|---|
| Synology DSM (whrrr) | SSH on :65222; agent keys need whrrr-cursor pattern — see runbook |
| UniFi / HAOS | Closed appliances; not operator-shell targets |
| SSH-config ghosts (unmatic, ubuntee, paperless, …) | Torn down / TCP timeout |
| MacBook | Same golden later (brew manifest); majority-rules |
Atuin (sync)¶
Login-based sync (atuin register / atuin account login) with E2E encryption
key. WSL had a session but sync returned HTTP 404 (stale/broken account).
infra-services had a local key and no session (not sharing history).
Desired UX: local DB per host; filter_mode=global for cross-host search;
Up-key binding filtered to host. Never commit key or session.
Golden direction¶
- Full nerdfont p10k (WSL/ubuncap/saltierpoop majority), not lean Pure configs
- Unified plugin set + guarded aliases (eza/bat/fzf/tmux OSC52)
- Login shell zsh for managed
someone(and root on prox) - Packages + chezmoi apply via Ansible; WSL via
bootstrap.sh
flowchart TB
subgraph before [Before]
WSL[WSL full p10k]
SP[saltierpoop full]
Infra[infra lean + bash login]
LXC[LXCs no zsh]
end
subgraph after [After]
Golden[operator/dotfiles chezmoi]
Role[operator-shell role]
Golden --> Role
Role --> Fleet[someone homes + prox root]
end
before --> Golden