Pista - a simple {bash, zsh} prompt written in rust
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
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
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK