/prezto-prompt-contrib

Additional popular prompt themes for Prezto

Primary LanguageShellMIT LicenseMIT

prezto-prompt-contrib

Additional prompts for Prezto

What's included

Installation

Clone the repo:

git clone --recurse-submodules \
  https://github.com/mattmc3/prezto-prompt-contrib \
  ${ZDOTDIR:-$HOME}/.zprezto-prompt-contrib

Add this project to the list of Prezto contrib locations. You also need to allow module overrides in .zpreztorc:

# Add additional directories to load prezto modules from
zstyle ':prezto:load' pmodule-dirs ${ZDOTDIR:-$HOME}/.zprezto-prompt-contrib

# Allow module overrides when pmodule-dirs causes module name collisions
zstyle ':prezto:load' pmodule-allow-overrides 'yes'

Now, you can have access to new prompts like starship:

zstyle ':prezto:module:prompt' theme 'starship'

Oh-My-Zsh themes

This project also supports using Oh-My-Zsh style themes for your prompt. Oh-My-Zsh stores its themes in *.zsh-theme files, however many of these themes have names that collide with Prezto theme names (ex: sorin, agnoster). Due to this, using zsh-theme files works a little differently than typical prompts that provide proper prompt functions like (ie: prompt_robbyrussell_setup).

In order to support Oh-My-Zsh themes, you will need to first set the OMZ $ZSH_THEME variable to your preferred OMZ theme. Then, set the Prezto prompt value to 'omz' in your .zpreztorc like this:

ZSH_THEME=robbyrussell
zstyle ':prezto:module:prompt' theme 'omz'

If you prefer to see all the Oh-My-Zsh themes when you run prompt -l, you can acheive this by creating prompt_${name}_setup function files. This project provides a handy utility to do that for you in the 'bin' directory called make_omz_prompts. We don't do this for you by default because, well, frankly OMZ has a lot of themes and most of them you probably won't ever want or use.

3rd party zsh-themes

There are a lot of 3rd party prompts that use the Oh-My-Zsh *.zsh-theme file convention rather than the prompt_${name}_setup standard. That's okay, you can still use those themes the same way OMZ instructs you to.

Simply, set the $ZSH_CUSTOM variable to a location of your choosing, and place the *.zsh-theme files in that directory. Then, set your theme with the $ZSH_THEME variable and set the Prezto prompt style to 'omz'.

For example, here is how you would use the dracula theme:

Per the Dracula theme instructions, first clone the repository, and then symlink the zsh-theme file to your OMZ custom themes location:

git clone https://github.com/dracula/zsh ${ZDOTDIR:-$HOME}/.zplugins/dracula
mkdir -p ${ZDOTDIR:-$HOME}/.zsh_custom/themes
ln -s ${ZDOTDIR:-$HOME}/.zplugins/dracula/dracula.zsh-theme ${ZDOTDIR:-$HOME}/.zsh_custom/themes

Then add the following to you .zpreztorc:

ZSH_CUSTOM=${ZDOTDIR:-$HOME}/.zsh_custom
ZSH_THEME=dracula
zstyle ':prezto:module:prompt' theme 'omz'

Other prompts

The goal of this project is not to include every prompt available for Prezto, but if there's an active, popular prompt project out there you'd like to see included, feel free to open an issue or submit a PR.