Files
dotconfs/.config/zsh/p10k-server.zsh
T
thomas.koppandClaude Opus 5 39f9d11200 feat(server): a deliberate powerlevel10k prompt instead of the wizard's
p10k is now installed on shron, so the red prompt the role split was built
around finally applies to the machine it was meant for. Cloned into
$ZSH_CUSTOM/themes rather than installed as a package: no root, nothing outside
the user's home, and undone by deleting a directory.

Without a configuration p10k runs its setup wizard on the first interactive
shell. Over SSH that is a login that sits there waiting for an answer, so the
server gets a written configuration and the wizard is disabled outright.

It is not a copy of beastix's. That one assumes a Nerd Font and a wide
terminal; a server is reached from whatever is at hand, so this uses ASCII,
one line, and a short segment list. user@host is always shown, on red - which
is the whole point.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 17:21:27 +02:00

46 lines
2.1 KiB
Bash

# powerlevel10k configuration for the server role.
#
# Deliberately not the wizard's output. A server is reached from whatever
# terminal happens to be at hand, so this uses ASCII rather than the icon set
# that assumes a Nerd Font, and keeps the segment list short enough to read at
# a glance during an incident.
#
# Sourced from 50-server.zsh, which runs after oh-my-zsh has loaded
# powerlevel10k - the same point in the sequence at which p10k expects its own
# ~/.p10k.zsh. beastix keeps its own file and is untouched by this.
# No glyphs. The prompt has to be legible from a phone terminal too.
typeset -g POWERLEVEL9K_MODE=ascii
typeset -g POWERLEVEL9K_ICON_PADDING=none
# One line, no frame. Nothing decorative survives being read in a hurry.
typeset -g POWERLEVEL9K_PROMPT_ON_NEWLINE=false
typeset -g POWERLEVEL9K_RPROMPT_ON_NEWLINE=false
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context dir vcs prompt_char)
typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status command_execution_time time)
# The point of the whole exercise: user@host, always, in red. shron carries
# mail, web and cloud, and the prompt should answer "which machine is this"
# before the next command is typed.
typeset -g POWERLEVEL9K_ALWAYS_SHOW_CONTEXT=true
typeset -g POWERLEVEL9K_ALWAYS_SHOW_USER=true
typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE='%n@%m'
typeset -g POWERLEVEL9K_CONTEXT_BACKGROUND=red
typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND=white
typeset -g POWERLEVEL9K_CONTEXT_DEFAULT_BACKGROUND=red
typeset -g POWERLEVEL9K_CONTEXT_DEFAULT_FOREGROUND=white
typeset -g POWERLEVEL9K_CONTEXT_ROOT_BACKGROUND=red
typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=yellow
typeset -g POWERLEVEL9K_DIR_BACKGROUND=blue
typeset -g POWERLEVEL9K_DIR_FOREGROUND=white
typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_unique
# Only mention how long something took when it was long enough to notice.
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3
typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%H:%M}'
# Instant prompt would need a cache file this machine has no reason to carry.
typeset -g POWERLEVEL9K_INSTANT_PROMPT=off
typeset -g POWERLEVEL9K_DISABLE_CONFIGURATION_WIZARD=true