Home

Awesome

Prompt

A lightweight prompt consistent across sh/dash/ash, zsh, and pwsh.

prompt

Installing and Using

I don't use any shell plugin frameworks (zgen/zplug/etc) to manage my prompt. My dotfiles are set up to include this repo as a submodule. When sourcing the shell profile, if this repo path does not exist, the shell profile runs git submodule init --recursive to clone in my shell plugins.

Then its just a matter of sourcing the relevant prompt file from the shell profile.

For an example see my dotfiles and perhaps as a more specific example, my zshrc.

Section Explanations

Last Exit Status

If the last command exit code was not 0, shows the last exit code value.

Host

If SSH_CLIENT is defined, will show the host name.

Not defined for pwsh yet

Current Context

Directory

If not in a version-controlled directory, this section will show the current shortened path (accounting for ~ substitution).

Version Control

NOTE Only git has been implemented so far; no svn or hg support (yet).

If the current path is a version-controlled directory, this section will show the dirname of the path (suggesting the repository name) followed by the current branch.

  1. New entry Added
  2. Renamed
  3. Modified
  4. Deleted
  5. Modified
  6. ?? New file
  7. Deleted

There is a section for contextually showing the status of the git stash.

Will show number of commits ahead and/or behind the remote tracking branch when applicable.

Prompt

Shows the prompt character (>)

Right Prompt

Shows last command execution time in seconds if duration was longer than 1 second.