From 4c58314c4b1e07414f59c602aeae22b84f0a348b Mon Sep 17 00:00:00 2001 From: Alex Satrapa Date: Thu, 3 Feb 2011 13:30:39 +1100 Subject: [PATCH 1/5] Added my own theme, with Mercurial repo status. --- lib/hg.zsh | 32 ++++++++++++++++++++++++++ themes/alex.zsh-theme | 53 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 lib/hg.zsh create mode 100644 themes/alex.zsh-theme diff --git a/lib/hg.zsh b/lib/hg.zsh new file mode 100644 index 000000000..13bde4e5d --- /dev/null +++ b/lib/hg.zsh @@ -0,0 +1,32 @@ +# get the name of the branch we are on +function hg_prompt_info() { + ref=$(hg branch 2> /dev/null) || return + echo "$ZSH_THEME_HG_PROMPT_PREFIX${ref}$(hg_prompt_status)$ZSH_THEME_HG_PROMPT_SUFFIX" +} + +parse_hg_dirty () { + if [[ -n $(hg status 2> /dev/null) ]]; then + echo "$ZSH_THEME_HG_PROMPT_DIRTY" + else + echo "$ZSH_THEME_HG_PROMPT_CLEAN" + fi +} + +# get the status of the working tree +hg_prompt_status() { + INDEX=$(hg status 2> /dev/null) + STATUS="" + if $(echo "$INDEX" | grep '^? ' &> /dev/null); then + STATUS="$ZSH_THEME_HG_PROMPT_UNTRACKED$STATUS" + fi + if $(echo "$INDEX" | grep '^A ' &> /dev/null); then + STATUS="$ZSH_THEME_HG_PROMPT_ADDED$STATUS" + fi + if $(echo "$INDEX" | grep '^M ' &> /dev/null); then + STATUS="$ZSH_THEME_HG_PROMPT_MODIFIED$STATUS" + fi + if $(echo "$INDEX" | grep '^R ' &> /dev/null); then + STATUS="$ZSH_THEME_HG_PROMPT_DELETED$STATUS" + fi + echo $STATUS +} diff --git a/themes/alex.zsh-theme b/themes/alex.zsh-theme new file mode 100644 index 000000000..496cf00de --- /dev/null +++ b/themes/alex.zsh-theme @@ -0,0 +1,53 @@ +if [ $UID -eq 0 ]; then NCOLOUR="red"; else NCOLOUR="yellow"; fi + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[black]%}±" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY="!" +ZSH_THEME_GIT_PROMPT_MODIFIED="!" +ZSH_THEME_GIT_PROMPT_ADDED="+" +ZSH_THEME_GIT_PROMPT_UNTRACKED="?" +ZSH_THEME_GIT_PROMPT_CLEAN="" + +ZSH_THEME_HG_PROMPT_PREFIX="%{$fg_bold[black]%}☿" +ZSH_THEME_HG_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_HG_PROMPT_DIRTY="!" +ZSH_THEME_HG_PROMPT_ADDED="+" +ZSH_THEME_HG_PROMPT_UNTRACKED="?" +ZSH_THEME_HG_PROMPT_CLEAN="" + +EXIT_CODE_DISPLAY="%(?.%{$fg[green]%}.%{$fg[red]%}%? )" +ZSH_THEME_EXIT_CODE=$EXIT_CODE_DISPLAY +PROMPT_COLOUR=%{$fg[$NCOLOUR]%} + +PROMPT='${PROMPT_COLOUR}%D{%k:%M} %c ➤ %{$reset_color%}' +RPROMPT='${ZSH_THEME_EXIT_CODE}$(git_prompt_info)$(hg_prompt_info)%{$reset_color%}' + +# See http://geoff.greer.fm/lscolors/ +# ddllssppxxbbccuuggwwoo +export LSCOLORS=exgxfxfxcxegedabagaead +export LS_COLORS='di=34;40:ln=36;40:so=35;40:pi=35;40:ex=32;40:bd=34;46:cd=34;43:su=0;41:sg=0;46:tw=0;44:ow=0;43:' + +unfunction precmd +unfunction preexec + +function precmd { + settitle "%n@%m: %5(~:%-1~/.../%3~:%~)" + } + +function preexec { + settitle "%n@%m: %5(~:%-1~/.../%3~:%~) - $1" + } + +function accept-line-and-enable-warning { + if [ -z "$BUFFER" ]; then + ZSH_THEME_EXIT_CODE= + PROMPT_COLOUR=%{$fg[$NCOLOUR]%} + else + ZSH_THEME_EXIT_CODE=$EXIT_CODE_DISPLAY + PROMPT_COLOUR="%(?.%{$fg[$NCOLOUR]%}.%{$fg[red]%})" + fi + zle accept-line + } + +zle -N accept-line-and-enable-warning +bindkey '^M' accept-line-and-enable-warning From a3174fc0b4bbe5988636125cf91b48b3a68592fb Mon Sep 17 00:00:00 2001 From: Alex Satrapa Date: Thu, 3 Feb 2011 14:03:09 +1100 Subject: [PATCH 2/5] I think this is all the SCM variables covered. --- themes/alex.zsh-theme | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/themes/alex.zsh-theme b/themes/alex.zsh-theme index 496cf00de..ea799565b 100644 --- a/themes/alex.zsh-theme +++ b/themes/alex.zsh-theme @@ -2,18 +2,23 @@ if [ $UID -eq 0 ]; then NCOLOUR="red"; else NCOLOUR="yellow"; fi ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[black]%}±" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" -ZSH_THEME_GIT_PROMPT_DIRTY="!" -ZSH_THEME_GIT_PROMPT_MODIFIED="!" -ZSH_THEME_GIT_PROMPT_ADDED="+" -ZSH_THEME_GIT_PROMPT_UNTRACKED="?" -ZSH_THEME_GIT_PROMPT_CLEAN="" +ZSH_THEME_GIT_PROMPT_DIRTY='!' +ZSH_THEME_GIT_PROMPT_CLEAN='' +ZSH_THEME_GIT_PROMPT_MODIFIED='!' +ZSH_THEME_GIT_PROMPT_ADDED='+' +ZSH_THEME_GIT_PROMPT_RENAMED='%' +ZSH_THEME_GIT_PROMPT_DELETED='x' +ZSH_THEME_GIT_PROMPT_UNTRACKED='?' +ZSH_THEME_GIT_PROMPT_UNMERGED='*' ZSH_THEME_HG_PROMPT_PREFIX="%{$fg_bold[black]%}☿" ZSH_THEME_HG_PROMPT_SUFFIX="%{$reset_color%}" -ZSH_THEME_HG_PROMPT_DIRTY="!" -ZSH_THEME_HG_PROMPT_ADDED="+" -ZSH_THEME_HG_PROMPT_UNTRACKED="?" -ZSH_THEME_HG_PROMPT_CLEAN="" +ZSH_THEME_HG_PROMPT_MODIFIED='!' +ZSH_THEME_HG_PROMPT_ADDED='+' +ZSH_THEME_HG_PROMPT_UNTRACKED='?' +ZSH_THEME_HG_PROMPT_DELETED='x' +ZSH_THEME_HG_PROMPT_DIRTY='!' +ZSH_THEME_HG_PROMPT_CLEAN='' EXIT_CODE_DISPLAY="%(?.%{$fg[green]%}.%{$fg[red]%}%? )" ZSH_THEME_EXIT_CODE=$EXIT_CODE_DISPLAY From 2ceae438fe899a2be97f42c98d08c4f3bab8f0c4 Mon Sep 17 00:00:00 2001 From: Alex Satrapa Date: Wed, 16 Feb 2011 12:08:55 +1100 Subject: [PATCH 3/5] Adjusted prompts and colours. --- lib/appearance.zsh | 2 +- lib/misc.zsh | 2 +- themes/alex.zsh-theme | 38 +++++++++++++++++++------------------- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/lib/appearance.zsh b/lib/appearance.zsh index aec67721a..90d316d27 100644 --- a/lib/appearance.zsh +++ b/lib/appearance.zsh @@ -7,7 +7,7 @@ export LSCOLORS="Gxfxcxdxbxegedabagacad" if [ "$DISABLE_LS_COLORS" != "true" ] then # Find the option for using colors in ls, depending on the version: Linux or BSD - ls --color -d . &>/dev/null 2>&1 && alias ls='ls --color=tty' || alias ls='ls -G' + ls --color -d . &>/dev/null 2>&1 && alias ls='ls --color=auto -A' || alias ls='ls -G -A' fi #setopt no_beep diff --git a/lib/misc.zsh b/lib/misc.zsh index 4c1743657..c7cfd93f7 100644 --- a/lib/misc.zsh +++ b/lib/misc.zsh @@ -9,5 +9,5 @@ bindkey "^[m" copy-prev-shell-word setopt long_list_jobs ## pager -export PAGER=less +export PAGER='less -MR' export LC_CTYPE=en_US.UTF-8 diff --git a/themes/alex.zsh-theme b/themes/alex.zsh-theme index ea799565b..5b64657a2 100644 --- a/themes/alex.zsh-theme +++ b/themes/alex.zsh-theme @@ -1,36 +1,36 @@ if [ $UID -eq 0 ]; then NCOLOUR="red"; else NCOLOUR="yellow"; fi -ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[black]%}±" +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[white]%}±" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" -ZSH_THEME_GIT_PROMPT_DIRTY='!' -ZSH_THEME_GIT_PROMPT_CLEAN='' -ZSH_THEME_GIT_PROMPT_MODIFIED='!' -ZSH_THEME_GIT_PROMPT_ADDED='+' -ZSH_THEME_GIT_PROMPT_RENAMED='%' -ZSH_THEME_GIT_PROMPT_DELETED='x' -ZSH_THEME_GIT_PROMPT_UNTRACKED='?' -ZSH_THEME_GIT_PROMPT_UNMERGED='*' +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}!" +ZSH_THEME_GIT_PROMPT_CLEAN="" +ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg[red]%}!" +ZSH_THEME_GIT_PROMPT_ADDED="%{$fg[red]%}+" +ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg[red]%}%" +ZSH_THEME_GIT_PROMPT_DELETED="%{$fg[red]%}x" +ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[red]%}?" +ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg[red]%}*" -ZSH_THEME_HG_PROMPT_PREFIX="%{$fg_bold[black]%}☿" +ZSH_THEME_HG_PROMPT_PREFIX="%{$fg[white]%}☿" ZSH_THEME_HG_PROMPT_SUFFIX="%{$reset_color%}" -ZSH_THEME_HG_PROMPT_MODIFIED='!' -ZSH_THEME_HG_PROMPT_ADDED='+' -ZSH_THEME_HG_PROMPT_UNTRACKED='?' -ZSH_THEME_HG_PROMPT_DELETED='x' -ZSH_THEME_HG_PROMPT_DIRTY='!' +ZSH_THEME_HG_PROMPT_MODIFIED="%{$fg[red]%}!" +ZSH_THEME_HG_PROMPT_ADDED="%{$fg[red]%}+" +ZSH_THEME_HG_PROMPT_UNTRACKED="%{$fg[red]%}?" +ZSH_THEME_HG_PROMPT_DELETED="%{$fg[red]%}x" +ZSH_THEME_HG_PROMPT_DIRTY="%{$fg[red]%}!" ZSH_THEME_HG_PROMPT_CLEAN='' EXIT_CODE_DISPLAY="%(?.%{$fg[green]%}.%{$fg[red]%}%? )" ZSH_THEME_EXIT_CODE=$EXIT_CODE_DISPLAY -PROMPT_COLOUR=%{$fg[$NCOLOUR]%} +PROMPT_COLOUR="$fg[$NCOLOUR]" -PROMPT='${PROMPT_COLOUR}%D{%k:%M} %c ➤ %{$reset_color%}' -RPROMPT='${ZSH_THEME_EXIT_CODE}$(git_prompt_info)$(hg_prompt_info)%{$reset_color%}' +PROMPT='%{${PROMPT_COLOUR}%}%D{%k:%M} %c ➤ %{$reset_color%}' +RPROMPT='%{$fg[grey]%}${ZSH_THEME_EXIT_CODE}$(git_prompt_info)$(hg_prompt_info)%{$reset_color%}' # See http://geoff.greer.fm/lscolors/ # ddllssppxxbbccuuggwwoo export LSCOLORS=exgxfxfxcxegedabagaead -export LS_COLORS='di=34;40:ln=36;40:so=35;40:pi=35;40:ex=32;40:bd=34;46:cd=34;43:su=0;41:sg=0;46:tw=0;44:ow=0;43:' +export LS_COLORS='di=34:ln=35:so=32:pi=33:ex=31:bd=34;46:cd=34;43:su=0;41:sg=0;46:tw=0;42:ow=0;43:' unfunction precmd unfunction preexec From b52a7b74a14f808a93a43524023c78bf73c7a8ca Mon Sep 17 00:00:00 2001 From: Alex Satrapa Date: Thu, 9 Jun 2011 14:04:06 +1000 Subject: [PATCH 4/5] The accept-line-and-enable-warning function breaks continuation lines. --- themes/alex.zsh-theme | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/themes/alex.zsh-theme b/themes/alex.zsh-theme index 5b64657a2..0ec9a2231 100644 --- a/themes/alex.zsh-theme +++ b/themes/alex.zsh-theme @@ -55,4 +55,6 @@ function accept-line-and-enable-warning { } zle -N accept-line-and-enable-warning -bindkey '^M' accept-line-and-enable-warning +# The accept-line-and-enable-warning feature breaks +# when defining functions on the command line. +# bindkey '^M' accept-line-and-enable-warning From 7a416b87d522c67ad21caff2f8846cb4283cb776 Mon Sep 17 00:00:00 2001 From: Alex Satrapa Date: Thu, 3 May 2012 15:29:20 +1000 Subject: [PATCH 5/5] Added Mac OS X hidden metadata directory. --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 2e8db7341..f6f764cc4 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ custom/* !custom/example.zsh cache *.swp +.DS_Store