38

Pista - a simple {bash, zsh} prompt written in rust

 4 years ago
source link: https://www.tuicool.com/articles/JNRN733
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

pista

a simple {bash, zsh} prompt for programmers

uaArMnN.png!web

features

  • shortened current working directory
  • git info (branch/commit, ahead/behind status, repo status)
  • superuser indicator
  • fully configurable
  • m̶̛̩̬͎̲͚͙͇͂͌̏͒̎͗̆̚i̡̛̬̩͙̣̤͈̥̟͔͆̈͑̑͠͝ņ̵̛̟̥̹͍̻͍̐͛̑͋ì̴̛̗̫͍̯͈̖̝͍͊̏͗̍̈́̾m̨̼̦͈͍͕͊̀̾̽̿̅͋͆͜a̵͔̥̫̲͙͒̎͋͌̑͘̚͜͡l̵̨̧̛̪̭̣͚͇͌̇͋̌͘͢

installation

$ cargo install pista

cargo is rust's package manager. if you dont have cargo installed, head over to http://rustup.rs and follow the instructions.

make sure to add $HOME/.cargo/bin to your $PATH !

  • bash users, set your PS1 :
PS1="$(pista)"    # regular variant
PS1="$(pista -m)" # minimal variant
  • zsh users, add this to your .zshrc :
autoinit -Uz add-zsh-hook
_pista_prompt() {
	PROMPT=$("pista -z")   # `pista -zm` for the miminal variant
}
add-zsh-hook precmd _pista_prompt

pista handles prompt modifications when you enter virtual environments. make sure to disable virtualenv 's changes.

export VIRTUAL_ENV_DISABLE_PROMPT=1

thats it! read on if you aren't happy with the defaults.

configuration

this is the default configuration. drop this in your .bashrc (or .zshrc ) to get started. remember to source ~/.bashrc (or source ~/.zshrc ) to observe the changes!

# prompt string to display, for regular users
export PROMPT_CHAR="$"
export PROMPT_CHAR_COLOR="green"

# prompt string to display, for the root user
export PROMPT_CHAR_ROOT="#"
export PROMPT_CHAR_ROOT_COLOR="red"

# if SHORTEN_CWD is set to 1, `/home/nerdypepper/code` is shortened to
# `/h/n/code`
export SHORTEN_CWD=1
export CWD_COLOR="white"

# if EXPAND_TILDE is set to 0, `/home/nerdypepper` is shortened to `~`
export EXPAND_TILDE=0

# there are three possible states for a git repo
# - unstaged (working tree has been modified) 
# - staged (staging area has been modified)
# - clean (all staged changes have committed)

# symbol to represent clean repo state
export GIT_CLEAN="·"
export GIT_CLEAN_COLOR="green"

# symbol to represent unstaged repo state
export GIT_WT_MODIFIED="×"
export GIT_WT_MODIFIED_COLOR="red"

# symbol to represent staged repo state
export GIT_INDEX_MODIFIED="±"
export GIT_INDEX_MODIFIED_COLOR="yellow"

# if HEAD ref peels to branch
export BRANCH_COLOR="green"

# if HEAD ref peels to a commit (detached state)
export COMMIT_COLOR="green"

all 16 colors are available:

black
red
green
yellow
blue
magenta (or purple)
cyan
white

bright black
bright red
bright green
bright yellow
bright blue
bright magenta (or purple)
bright cyan
bright white

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK