Copy and self modified from ys.zsh-theme, the one of default themes in master repository

July 2, 2015 · View on GitHub

Clean, simple, compatible and meaningful.

Tested on Linux, Unix and Windows under ANSI colors.

It is recommended to use with a dark background and the font Inconsolata.

Colors: black, red, green, yellow, *blue, magenta, cyan, and white.

http://xiaofan.at

2 Jul 2015 - Xiaofan

Machine name.

function box_name { [ -f ~/.box-name ] && cat ~/.box-name || echo $HOST }

Directory info.

local current_dir='{PWD/#HOME/~}'

VCS

YS_VCS_PROMPT_PREFIX1="%{fg[white]fg[white]%}on%{reset_color%} " YS_VCS_PROMPT_PREFIX2=":%{fg[cyan]YSVCSPROMPTSUFFIX="fg[cyan]%}" YS_VCS_PROMPT_SUFFIX="%{reset_color%} " YS_VCS_PROMPT_DIRTY=" %{fg[red]YSVCSPROMPTCLEAN="fg[red]%}✗" YS_VCS_PROMPT_CLEAN=" %{fg[green]%}✔︎"

Git info.

local git_info='(gitpromptinfo)localgitlastcommit=(git_prompt_info)' local git_last_commit='(git log --pretty=format:"%h "%s"" -1 2> /dev/null)' ZSH_THEME_GIT_PROMPT_PREFIX="YSVCSPROMPTPREFIX1git{YS_VCS_PROMPT_PREFIX1}git{YS_VCS_PROMPT_PREFIX2}" ZSH_THEME_GIT_PROMPT_SUFFIX="YSVCSPROMPTSUFFIX"ZSHTHEMEGITPROMPTDIRTY="YS_VCS_PROMPT_SUFFIX" ZSH_THEME_GIT_PROMPT_DIRTY="YS_VCS_PROMPT_DIRTY" ZSH_THEME_GIT_PROMPT_CLEAN="$YS_VCS_PROMPT_CLEAN"

HG info

local hg_info='(ys_hg_prompt_info)' ys_hg_prompt_info() { # make sure this is a hg dir if [ -d '.hg' ]; then echo -n "{YS_VCS_PROMPT_PREFIX1}hgYSVCSPROMPTPREFIX2"echon{YS_VCS_PROMPT_PREFIX2}" echo -n (hg branch 2>/dev/null) if [ -n "(hgstatus2>/dev/null)"];thenechon"(hg status 2>/dev/null)" ]; then echo -n "YS_VCS_PROMPT_DIRTY" else echo -n "YSVCSPROMPTCLEAN"fiechon"YS_VCS_PROMPT_CLEAN" fi echo -n "YS_VCS_PROMPT_SUFFIX" fi }

Prompt format: \n # TIME USER at MACHINE in [DIRECTORY] on git:BRANCH STATE \n $

PROMPT=" %{fg[cyan]fg[cyan]%}%n \ %{fg[white]%}at
%{fg[green]fg[green]%}(box_name)
%{fg[white]fg[white]%}in \ %{terminfo[bold]fg[yellow]fg[yellow]%}[{current_dir}]%{resetcolorreset_color%} \ {hg_info}
gitinfo {git_info} \ {git_last_commit} %{fg[red]fg[red]%}%* \ %{terminfo[bold]fg[white]fg[white]%}› %{reset_color%}"

if [[ "USER"=="root"]];thenPROMPT="USER" == "root" ]]; then PROMPT=" %{fg[red]%}%*
%{terminfo[bold]terminfo[bold]fg[blue]%}#%{resetcolorreset_color%} \ %{bg[yellow]%}%{fg[cyan]fg[cyan]%}%n%{reset_color%}
%{fg[white]fg[white]%}at \ %{fg[green]%}(boxname) (box_name) \ %{fg[white]%}in
%{terminfo[bold]terminfo[bold]fg[yellow]%}[currentdir]{current_dir}]%{reset_color%}
hginfo {hg_info}\ {git_info} %{terminfo[bold]terminfo[bold]fg[red]%} %{reset_color%}" fi