ghostline is a minimalist Powerlevel10k prompt theme for Zsh. Where most Powerlevel10k "rainbow" styles fill each prompt segment with a solid background color, ghostline hollows them out: there is no fill, and each segment's color lives only in its text and in the thin chevron separators between segments. The result is a clean, modern, glowing-on-dark prompt that keeps all the information density of a normal p10k prompt without the heavy colored blocks.
ghostline is a style, not a fixed color scheme. It ships with a soft Catppuccin-inspired accent set by default, but the entire palette lives in a single block at the bottom of the config — so you can retheme it in seconds without touching anything else.
- Hollow segments — no background fills; color lives in the text and the powerline separators only.
- Semantic git status — a custom formatter color-codes each part:
- green — branch name, ahead/behind, stash
- peach — staged / unstaged changes
- sky — untracked files
- red — merge conflicts / unusual states
- Accent end-caps — thin chevron glyphs (
/) in distinct colors at each end of the prompt. - Swappable palettes — all colors live in one override block at the bottom of the file. Change them without touching the rest of the config.
- Single-line layout by default (a two-line framed variant is supported via the multiline ornaments).
- Zsh 5.1+
- Oh My Zsh (or a manual Powerlevel10k install)
- Powerlevel10k theme
- A Nerd Font (for the powerline glyphs and icons)
-
Clone this repo:
git clone https://github.com/iamrohithrnair/ghostline.git
-
Copy (or symlink) the theme into place as your p10k config:
# symlink keeps it in sync with the repo ln -sf "$PWD/ghostline/ghostline.zsh" ~/.p10k.zsh # ...or copy cp ghostline/ghostline.zsh ~/.p10k.zsh
-
Make sure your
~/.zshrcloads Powerlevel10k and the config:ZSH_THEME="powerlevel10k/powerlevel10k" [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
-
Restart your shell:
exec zsh
All segment colors are defined in the palette override block near the bottom
of ghostline.zsh (search for palette). Edit the hex values to retheme — the
rest of the config stays untouched. To switch palettes entirely (e.g. to another
Catppuccin variant, or your own), just replace that block.
The custom git formatter defines five color roles at the top of the
my_git_formatter function. These use 256-color codes (%NNF) so they render
reliably across terminals:
local meta='%244F' # separators
local clean='%151F' # green - branch, arrows, stash
local modified='%216F' # peach - staged/unstaged changes
local untracked='%117F' # sky - untracked files
local conflicted='%211F' # red - conflicts/actionsSet by POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL and
POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL. Change the %NNF code
to recolor, or swap the \uE0B1 / \uE0B3 glyphs for a different shape.
- Color values for segment foregrounds use truecolor hex (
'#RRGGBB'); the git formatter and prompt ornaments use 256-color%NNFcodes because that is what Powerlevel10k expands in those contexts. - A true "glassmorphic" or animated effect isn't possible in a terminal prompt; ghostline's glow comes from saturated text/separator colors on a dark background.
