- Three-level prompt — top line separates previous output, middle shows key information (working directory, SSH, VCS), bottom is for command input.
- Unified prompt symbol (
›) — used consistently across all input lines (PS1,PS2,PS3).
- Working directory — shows the current path with Path Annotation: recognizes XDG Base Directory paths and
ZDOTDIR, annotating them with their purpose (e.g.,~/.config/nvim as XDG_CONFIG_HOME). - VCS status — displayed only inside a repository: current action (e.g.,
rebaseormerge), short commit hash, file changes (A— added,M— modified,U— untracked), and branch. - SSH indicator — shown only during remote sessions.
- Exit status indicator (RPROMPT) — displayed on the right side of the prompt:
- green
•— last command exited successfully (0) - red
• <code>— last command failed, showing its exit status code
- green
Ultima Zsh theme can be installed in three ways: with full module management via Veil, manually for a lightweight setup, or through popular Zsh frameworks and plugin managers.
Features like
less,ls, completion, and other shell behavior are now part of Veil. Installing Veil automatically includes Ultima.
# Clone Veil repository
git clone https://github.com/egorlem/veil.zsh "$HOME/.zsh/veil"
# Source Veil in your .zshrc (includes Ultima theme)
echo 'source "$HOME/.zsh/veil/veil.zsh"' >> "${ZDOTDIR:-$HOME}/.zshrc"For advanced module configuration, see Veil Documentation.
Clone only the theme, without Veil. Ultima works as a standard Zsh prompt theme. Two ways to load it: direct source or promptinit.
# Clone Ultima repository
git clone https://github.com/egorlem/ultima.zsh-theme "$HOME/.zsh/ultima"Direct source (run in terminal)
echo 'source "$HOME/.zsh/ultima/ultima.zsh-theme"' >> "${ZDOTDIR:-$HOME}/.zshrc"Promptinit (add to .zshrc)
fpath+=("$HOME/.zsh/ultima")
autoload -Uz promptinit && promptinit
prompt ultima# Add Ultima to your .zimrc
echo 'zmodule egorlem/ultima.zsh-theme -n ultima' >> ~/.zimrc# Load Ultima via zcomet
zcomet load egorlem/ultima.zsh-theme
# Ensure `zcomet compinit` is called after loading# Clone repository
git clone https://github.com/egorlem/ultima.zsh-theme ~/ultima-shell
# Move theme to Oh My Zsh theme folder
mv ~/ultima-shell/ultima.zsh-theme $ZSH/themes/ultima.zsh-theme
# Set theme in your .zshrc
ZSH_THEME="ultima"Add these variables to your .zshrc before sourcing the theme:
# Theme Configuration
ULTIMA_VCS="git" # only git is supported
ULTIMA_VCS_NO_UNTRACKED=1 # 1 = show untracked (U), 0 = hide
ULTIMA_PATH_ANNOTATION=0 # 1 = enable XDG/ZDOTDIR annotationAnnotation only appears if the corresponding variables (e.g., XDG_CONFIG_HOME, ZDOTDIR) are actually set in your environment.
For the best experience, use the Ghostty terminal together with the Guezwhoz color scheme.
Guezwhoz is a balanced dark color scheme designed with a focus on visual comfort and readability.
The theme meets the WCAG 2.1 AA accessibility standard and is based on the principles of analogous color harmony, providing a pleasant, cohesive color experience during long terminal sessions.
For Ghostty and Wezterm users:
Set the color scheme to guezwhoz in your terminal configuration. Guezwhoz is bundled by default with Ghostty and Wezterm—no additional installation required.
For other terminals:
You can install the Guezwhoz theme from the @mbadolato/iTerm2-Color-Schemes repository.
These recommendations ensure optimal appearance and compatibility for this project. Using other terminals or color schemes may result in a different visual experience.
Not all fonts include the U+203A Unicode character (Single Right-Pointing Angle Quotation Mark). Unless your system font supports this character, install one of the standard fonts, such as Arial, Consolas, or Impact.
For comfortable work, I recommend JetBrains Mono.
This font already includes all the characters used in the theme and is ideal for full compatibility.
This theme is developed and tested using Ghostty, JetBrains Mono, Veil, the Guezwhoz color scheme, and the standard zsh-users plugin set.
Do What The F*ck You Want To Public License Version III. See LICENSE for details.
Maintained by Egor Lem
