commit
f974fa31dc
1 changed files with 120 additions and 25 deletions
@ -1,26 +1,121 @@ |
|||||||
#!/usr/bin/env zsh |
#!/usr/bin/env zsh |
||||||
local USER_HOST='%{$terminfo[bold]$fg[yellow]%}%n@%m%{$reset_color%}' |
# # |
||||||
local RETURN_CODE="%(?..%{$fg[red]%}%? ↵%{$reset_color%})" |
# # #README |
||||||
local GIT_BRANCH='%{$terminfo[bold]$fg[red]%}$(git_prompt_info)%{$reset_color%}' |
# # |
||||||
local CURRENT_DIR='%{$terminfo[bold]$fg[green]%} %~%{$reset_color%}' |
# # This theme provides two customizable header functionalities : |
||||||
local RUBY_RVM='%{$fg[gray]%}‹$(rvm-prompt i v g)›%{$reset_color%}' |
# # a) displaying a pseudo-random message from a database of quotations |
||||||
local COMMAND_TIP='%{$terminfo[bold]$fg[blue]%}$(wget -qO - http://www.commandlinefu.com/commands/random/plaintext | sed 1d | sed '/^$/d' | sed 's/^/║/g')%{$reset_color%}' |
# # (https://en.wikipedia.org/wiki/Fortune_%28Unix%29) |
||||||
######### PROMPT ######### |
# # b) displaying randomly command line tips from The command line fu |
||||||
PROMPT="%{$terminfo[bold]$fg[blue]%}╔═ %{$reset_color%}${USER_HOST} ${CURRENT_DIR} ${RUBY_RVM} ${GIT_BRANCH} |
# # (http://www.commandlinefu.com) community: in order to make use of this functionality |
||||||
${COMMAND_TIP} |
# # you will need Internet connection. |
||||||
%{$terminfo[bold]$fg[blue]%}╚═ %{$reset_color%}%B%{$terminfo[bold]$fg[white]%}$%b%{$reset_color%} " |
# # This theme provides as well information for the current user's context, like; |
||||||
RPS1='${RETURN_CODE}' |
# # branch and status for the current version control system (git and svn currently |
||||||
RPROMPT='%{$fg[green]%}[%*]%{$reset_color%}' |
# # supported) and time, presented to the user in a non invasive volatile way. |
||||||
######### PROMPT ######### |
# # |
||||||
########## GIT ########### |
# # #REQUIREMENTS |
||||||
ZSH_THEME_GIT_PROMPT_PREFIX="‹" |
# # This theme requires wget:: |
||||||
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$GIT_PROMPT_INFO%}›" |
# # -Homebrew-osx- brew install wget |
||||||
ZSH_THEME_GIT_PROMPT_DIRTY=" %{$GIT_DIRTY_COLOR%}✘" |
# # -Debian/Ubuntu- apt-get install wget |
||||||
ZSH_THEME_GIT_PROMPT_CLEAN=" %{$GIT_CLEAN_COLOR%}✔" |
# # and fortune :: |
||||||
ZSH_THEME_GIT_PROMPT_ADDED="%{$FG[082]%}✚%{$reset_color%}" |
# # -Homebrew-osx- brew install fortune |
||||||
ZSH_THEME_GIT_PROMPT_MODIFIED="%{$FG[166]%}✹%{$reset_color%}" |
# # -Debian/Ubuntu- apt-get install fortune |
||||||
ZSH_THEME_GIT_PROMPT_DELETED="%{$FG[160]%}✖%{$reset_color%}" |
# # |
||||||
ZSH_THEME_GIT_PROMPT_RENAMED="%{$FG[220]%}➜%{$reset_color%}" |
# # optionally: |
||||||
ZSH_THEME_GIT_PROMPT_UNMERGED="%{$FG[082]%}═%{$reset_color%}" |
# # -Oh-myzsh vcs plug-ins git and svn. |
||||||
ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$FG[190]%}✭%{$reset_color%}" |
# # -Solarized theme (https://github.com/altercation/solarized/) |
||||||
########## GIT ########### |
# # -OS X: iTerm 2 (http://www.iterm2.com/) |
||||||
|
# # -font Source code pro (https://github.com/adobe/source-code-pro) |
||||||
|
# # |
||||||
|
# # Author: Adolfo Benedetti |
||||||
|
# # email: adolfo.benedetti@gmail.com |
||||||
|
# # License: Public Domain |
||||||
|
# # This theme's look and feel is based on the Aaron Toponce's zsh theme , more info: |
||||||
|
# # http://pthree.org/2008/11/23/727/ |
||||||
|
# # enjoy! |
||||||
|
########## COLOR ########### |
||||||
|
for COLOR in CYAN WHITE YELLOW MAGENTA BLACK BLUE RED DEFAULT GREEN GREY; do |
||||||
|
eval PR_$COLOR='%{$fg[${(L)COLOR}]%}' |
||||||
|
eval PR_BRIGHT_$COLOR='%{$fg_bold[${(L)COLOR}]%}' |
||||||
|
done |
||||||
|
PR_RESET="%{$reset_color%}" |
||||||
|
RED_START="${PR_RESET}${PR_GREY}<${PR_RESET}${PR_RED}<${PR_BRIGHT_RED}<${PR_RESET} " |
||||||
|
RED_END="${PR_RESET}${PR_BRIGHT_RED}>${PR_RESET}${PR_RED}>${PR_GREY}>${PR_RESET} " |
||||||
|
GREEN_END="${PR_RESET}${PR_BRIGHT_GREEN}>${PR_RESET}${PR_GREEN}>${PR_GREY}>${PR_RESET} " |
||||||
|
GREEN_BASE_START="${PR_RESET}${PR_GREY}>${PR_RESET}${PR_GREEN}>${PR_BRIGHT_GREEN}>${PR_RESET}" |
||||||
|
GREEN_START_P1="${PR_RESET}${GREEN_BASE_START}${PR_RESET} " |
||||||
|
DIVISION="${PR_RESET}${PR_RED} < ${PR_RESET}" |
||||||
|
VCS_DIRTY_COLOR="${PR_RESET}${PR_YELLOW}" |
||||||
|
Vcs_CLEAN_COLOR="${PR_RESET}${PR_GREEN}" |
||||||
|
VCS_SUFIX_COLOR="${PR_RESET}${PR_RED}› ${PR_RESET}" |
||||||
|
# ########## COLOR ########### |
||||||
|
# ########## SVN ########### |
||||||
|
ZSH_THEME_SVN_PROMPT_PREFIX="${PR_RESET}${PR_RED}‹svn:" |
||||||
|
ZSH_THEME_SVN_PROMPT_SUFFIX="" |
||||||
|
ZSH_THEME_SVN_PROMPT_DIRTY="${VCS_DIRTY_COLOR} ✘${VCS_SUFIX_COLOR}" |
||||||
|
ZSH_THEME_SVN_PROMPT_CLEAN="${VCS_CLEAN_COLOR} ✔${VCS_SUFIX_COLOR}" |
||||||
|
# ########## SVN ########### |
||||||
|
# ########## GIT ########### |
||||||
|
ZSH_THEME_GIT_PROMPT_PREFIX="${PR_RESET}${PR_RED}‹git:" |
||||||
|
ZSH_THEME_GIT_PROMPT_SUFFIX="" |
||||||
|
ZSH_THEME_GIT_PROMPT_DIRTY="${VCS_DIRTY_COLOR} ✘${VCS_SUFIX_COLOR}" |
||||||
|
ZSH_THEME_GIT_PROMPT_CLEAN="${VCS_CLEAN_COLOR} ✔${VCS_SUFIX_COLOR}" |
||||||
|
ZSH_THEME_GIT_PROMPT_ADDED="${PR_RESET}${PR_YELLOW} ✚${PR_RESET}" |
||||||
|
ZSH_THEME_GIT_PROMPT_MODIFIED="${PR_RESET}${PR_YELLOW} ✹${PR_RESET}" |
||||||
|
ZSH_THEME_GIT_PROMPT_DELETED="${PR_RESET}${PR_YELLOW} ✖${PR_RESET}" |
||||||
|
ZSH_THEME_GIT_PROMPT_RENAMED="${PR_RESET}${PR_YELLOW} ➜${PR_RESET}" |
||||||
|
ZSH_THEME_GIT_PROMPT_UNMERGED="${PR_RESET}${PR_YELLOW} ═${PR_RESET}" |
||||||
|
ZSH_THEME_GIT_PROMPT_UNTRACKED="${PR_RESET}${PR_YELLOW} ✭${PR_RESET}" |
||||||
|
# ########## GIT ########### |
||||||
|
function precmd { |
||||||
|
#gets the fortune |
||||||
|
ps1_fortune () { |
||||||
|
#Choose from all databases, regardless of whether they are considered "offensive" |
||||||
|
fortune -a |
||||||
|
} |
||||||
|
#obtains the tip |
||||||
|
ps1_command_tip () { |
||||||
|
wget -qO - http://www.commandlinefu.com/commands/random/plaintext | sed 1d | sed '/^$/d' |
||||||
|
} |
||||||
|
prompt_header () { |
||||||
|
if [[ "true" == "$ENABLE_COMMAND_TIP" ]]; then |
||||||
|
ps1_command_tip |
||||||
|
else |
||||||
|
ps1_fortune |
||||||
|
fi |
||||||
|
} |
||||||
|
PROMPT_HEAD="${RED_START}${PR_YELLOW}$(prompt_header)${PR_RESET}" |
||||||
|
# set a simple variable to show when in screen |
||||||
|
if [[ -n "${WINDOW}" ]]; then |
||||||
|
SCREEN="" |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
# Context: user@directory or just directory |
||||||
|
prompt_context () { |
||||||
|
local user=`whoami` |
||||||
|
if [[ "$user" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then |
||||||
|
echo -n "${PR_RESET}${PR_RED}$user@%m${PR_RESET}${PR_BRIGHT_YELLOW}%~%<<${PR_RESET}" |
||||||
|
else |
||||||
|
echo -n "${PR_RESET}${PR_BRIGHT_YELLOW}%~%<<${PR_RESET}" |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
set_prompt () { |
||||||
|
# required for the prompt |
||||||
|
setopt prompt_subst |
||||||
|
autoload colors zsh/terminfo |
||||||
|
if [[ "$terminfo[colors]" -gt 8 ]]; then |
||||||
|
colors |
||||||
|
fi |
||||||
|
|
||||||
|
# ######### PROMPT ######### |
||||||
|
PROMPT='${PROMPT_HEAD} |
||||||
|
${RED_START}$(prompt_context) |
||||||
|
${GREEN_START_P1}' |
||||||
|
RPROMPT='${PR_RESET}$(git_prompt_info)$(svn_prompt_info)${PR_YELLOW}%D{%R.%S %a %b %d %Y} ${GREEN_END}${PR_RESET}' |
||||||
|
# Matching continuation prompt |
||||||
|
PROMPT2='${GREEN_BASE_START}${PR_RESET} %_ ${GREEN_BASE_START}${PR_RESET} ' |
||||||
|
# ######### PROMPT ######### |
||||||
|
} |
||||||
|
|
||||||
|
set_prompt |
||||||
|
|||||||
Loading…
Reference in new issue