/purity

Pretty, minimal and fast ZSH prompt

Primary LanguageShell

Purity

Pretty, minimal and fast ZSH prompt

screenshot

Git status indicators will appear before the prompt terminator, view the source for details

Overview

Most prompts are cluttered, ugly and slow. I wanted something visually pleasing that stayed out of my way.

Why?

  • Comes with the perfect prompt character. Author went through the whole Unicode range to find it.
  • Shows git status info.
  • Prompt character turns red if the last command didn't exit with 0.
  • Command execution time will be displayed if it exceeds the set threshold.
  • Username and host only displayed when in an SSH session.
  • Shows the current path in the title and the current directory and command when a process is running.
  • Makes an excellent starting point for your own custom prompt.

Install

Can be installed with npm or manually.

Please note that plain ZSH and some frameworks (such as Zim) do not include the lib for Git prompt details. As such, you may be required to install this lib separately in those cases. More information on manually installing the Git lib will be included when it becomes available. [2]

npm

$ npm install --global purity-prompt

That's it. Skip to Getting started.

Manually

  1. Either…
  • Clone this repo
  • add it as a submodule, or
  • just download purity.zsh
  1. Symlink purity.zsh to somewhere in $fpath with the name prompt_purity_setup.

Example

$ ln -s "$PWD/purity.zsh" /usr/local/share/zsh/site-functions/prompt_purity_setup

Run echo $fpath to see possible locations.

For a user-specific installation (which would not require escalated privileges), simply add a directory to $fpath for that user:

# .zshenv or .zshrc
fpath=( "$HOME/.zfunctions" $fpath )

Then install the theme there:

$ ln -s "$PWD/purity.zsh" "$HOME/.zfunctions/prompt_purity_setup"

Getting started

Initialize the prompt system (if not so already) and choose purity:

# .zshrc
autoload -U promptinit && promptinit
prompt purity

Options

PURITY_CMD_MAX_EXEC_TIME

The max execution time of a process before its run time is shown when it exits. Defaults to 5 seconds.

PURITY_GIT_PULL

Set PURITY_GIT_PULL=0 to prevent Purity from checking whether the current Git remote has been updated.

Example

# .zshrc

autoload -U promptinit && promptinit

# optionally define some options
PURITY_CMD_MAX_EXEC_TIME=10

prompt purity

Tips

Solarized theme with the Source Code Pro font (12pt) is a beautiful combination, as seen in the screenshot above. Just make sure you have anti-aliasing enabled in your Terminal.

Integration

Symlink (or copy) purity.zsh to ~/.oh-my-zsh/custom/purity.zsh-theme and add ZSH_THEME="purity" to your .zshrc file.

Symlink (or copy) purity.zsh to ~/.zprezto/modules/prompt/functions/prompt_purity_setup alongside Prezto's other prompts. Then set zstyle ':prezto:module:prompt' theme 'purity' in ~/.zpreztorc.

Add antigen bundle therealklanni/purity to your .zshrc file (do not use the antigen theme function).

License

MIT © Kevin Lanni