From e8a4e35454c85332e4c8d3bda45f067098caa6d8 Mon Sep 17 00:00:00 2001 From: rjorgenson Date: Fri, 17 Jun 2011 06:13:55 -0700 Subject: [PATCH 1/7] initial port of zork prompt theme to my own more customization to come later --- themes/rjorgenson/rjorgenson.theme.bash | 73 +++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 themes/rjorgenson/rjorgenson.theme.bash diff --git a/themes/rjorgenson/rjorgenson.theme.bash b/themes/rjorgenson/rjorgenson.theme.bash new file mode 100644 index 00000000..afd3ea4a --- /dev/null +++ b/themes/rjorgenson/rjorgenson.theme.bash @@ -0,0 +1,73 @@ +# port of zork theme + +SCM_THEME_PROMPT_PREFIX="" +SCM_THEME_PROMPT_SUFFIX="" + +SCM_THEME_PROMPT_DIRTY=' ${bold_red}✗${normal}' +SCM_THEME_PROMPT_CLEAN=' ${bold_green}✓${normal}' +SCM_GIT_CHAR='${bold_green}±${normal}' +SCM_SVN_CHAR='${bold_cyan}⑆${normal}' +SCM_HG_CHAR='${bold_red}☿${normal}' + +#Mysql Prompt +export MYSQL_PS1="(\u@\h) [\d]> " + +case $TERM in + xterm*) + TITLEBAR="\[\033]0;\w\007\]" + ;; + *) + TITLEBAR="" + ;; +esac + +PS3=">> " + +__my_rvm_ruby_version() { + local gemset=$(echo $GEM_HOME | awk -F'@' '{print $2}') + [ "$gemset" != "" ] && gemset="@$gemset" + local version=$(echo $MY_RUBY_HOME | awk -F'-' '{print $2}') + local full="$version$gemset" + [ "$full" != "" ] && echo "[$full]" +} + +is_vim_shell() { + if [ ! -z "$VIMRUNTIME" ] + then + echo "[${cyan}vim shell${normal}]" + fi +} + +modern_scm_prompt() { + CHAR=$(scm_char) + if [ $CHAR = $SCM_NONE_CHAR ] + then + return + else + echo "[$(scm_char)][$(scm_prompt_info)]" + fi +} + +prompt() { + + my_ps_host="${bold_green}\h${normal}"; + my_ps_user="\[\033[01;32m\]\u\[\033[00m\]"; + my_ps_root="\[\033[01;31m\]\u\[\033[00m\]"; + my_ps_path="\[\033[01;36m\]\w\[\033[00m\]"; + + # nice prompt + case "`id -u`" in + 0) PS1="${TITLEBAR}┌─[$my_ps_root][$my_ps_host]$(modern_scm_prompt)$(__my_rvm_ruby_version)[${cyan}\w${normal}]$(is_vim_shell) +└─▪ " + ;; + *) PS1="${TITLEBAR}┌─[$my_ps_user][$my_ps_host]$(modern_scm_prompt)$(__my_rvm_ruby_version)[${cyan}\w${normal}]$(is_vim_shell) +└─▪ " + ;; + esac +} + +PS2="└─▪ " + + + +PROMPT_COMMAND=prompt From a59d7858831b231660d2d24548abc19e53da30bb Mon Sep 17 00:00:00 2001 From: rjorgenson Date: Fri, 17 Jun 2011 23:28:57 -0700 Subject: [PATCH 2/7] added todo.txt-cli count to prompt and cleaned up some color code not sure if I like the placement of the todo count, but keeping it for now --- themes/rjorgenson/rjorgenson.theme.bash | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/themes/rjorgenson/rjorgenson.theme.bash b/themes/rjorgenson/rjorgenson.theme.bash index afd3ea4a..42d58a31 100644 --- a/themes/rjorgenson/rjorgenson.theme.bash +++ b/themes/rjorgenson/rjorgenson.theme.bash @@ -38,6 +38,13 @@ is_vim_shell() { fi } +todo_txt_count() { + if `hash todo.sh 2>&-`; then + count=`todo.sh ls | egrep "TODO: [0-9]+ of ([0-9]+) tasks shown" | awk '{ print $4 }'` + echo "[T:$count]" + fi +} + modern_scm_prompt() { CHAR=$(scm_char) if [ $CHAR = $SCM_NONE_CHAR ] @@ -51,9 +58,9 @@ modern_scm_prompt() { prompt() { my_ps_host="${bold_green}\h${normal}"; - my_ps_user="\[\033[01;32m\]\u\[\033[00m\]"; - my_ps_root="\[\033[01;31m\]\u\[\033[00m\]"; - my_ps_path="\[\033[01;36m\]\w\[\033[00m\]"; + my_ps_user="${bold_green}\u${normal}"; + my_ps_root="${bold_red}\u${normal}"; + my_ps_path="${bold_cyan}\w${normal}"; # nice prompt case "`id -u`" in @@ -61,7 +68,7 @@ prompt() { └─▪ " ;; *) PS1="${TITLEBAR}┌─[$my_ps_user][$my_ps_host]$(modern_scm_prompt)$(__my_rvm_ruby_version)[${cyan}\w${normal}]$(is_vim_shell) -└─▪ " +└─▪$(todo_txt_count) " ;; esac } From 2b4f94a804fd8f46d737b35f3cf230a41b3deffd Mon Sep 17 00:00:00 2001 From: rjorgenson Date: Sat, 18 Jun 2011 04:42:44 -0700 Subject: [PATCH 3/7] more customizations to prompt theme made colors more modular and easy to change changed some colors around added function to dynamically pick the prompt character changed the prompting character at end of prompt --- themes/rjorgenson/rjorgenson.theme.bash | 39 ++++++++++++++++--------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/themes/rjorgenson/rjorgenson.theme.bash b/themes/rjorgenson/rjorgenson.theme.bash index 42d58a31..1d4c261e 100644 --- a/themes/rjorgenson/rjorgenson.theme.bash +++ b/themes/rjorgenson/rjorgenson.theme.bash @@ -1,11 +1,16 @@ # port of zork theme +# set colors for use throughout the prompt +# i like things consistent +BRACKET_COLOR=$blue +STRING_COLOR=$green + SCM_THEME_PROMPT_PREFIX="" SCM_THEME_PROMPT_SUFFIX="" SCM_THEME_PROMPT_DIRTY=' ${bold_red}✗${normal}' SCM_THEME_PROMPT_CLEAN=' ${bold_green}✓${normal}' -SCM_GIT_CHAR='${bold_green}±${normal}' +SCM_GIT_CHAR='${STRING_COLOR}±${normal}' SCM_SVN_CHAR='${bold_cyan}⑆${normal}' SCM_HG_CHAR='${bold_red}☿${normal}' @@ -28,20 +33,20 @@ __my_rvm_ruby_version() { [ "$gemset" != "" ] && gemset="@$gemset" local version=$(echo $MY_RUBY_HOME | awk -F'-' '{print $2}') local full="$version$gemset" - [ "$full" != "" ] && echo "[$full]" + [ "$full" != "" ] && echo "${BRACKET_COLOR}[${STRING_COLOR}$full${BRACKET_COLOR}]${normal}" } is_vim_shell() { if [ ! -z "$VIMRUNTIME" ] then - echo "[${cyan}vim shell${normal}]" + echo "$BRACKET_COLOR[${STRING_COLOR}vim shell$BRACKET_COLOR]$normal" fi } todo_txt_count() { if `hash todo.sh 2>&-`; then count=`todo.sh ls | egrep "TODO: [0-9]+ of ([0-9]+) tasks shown" | awk '{ print $4 }'` - echo "[T:$count]" + echo "$BRACKET_COLOR[${STRING_COLOR}T:$count$BRACKET_COLOR]$normal" fi } @@ -51,29 +56,37 @@ modern_scm_prompt() { then return else - echo "[$(scm_char)][$(scm_prompt_info)]" + echo "$BRACKET_COLOR[$(scm_char)$BRACKET_COLOR][$STRING_COLOR$(scm_prompt_info)$BRACKET_COLOR]$normal" fi } +my_prompt_char() { + if [[ $OSTYPE =~ "darwin" ]]; then + echo "${BRACKET_COLOR}➞ ${normal}" + else + echo "${BRACKET_COLOR}➞ ${normal}" + fi +} + prompt() { - my_ps_host="${bold_green}\h${normal}"; - my_ps_user="${bold_green}\u${normal}"; + my_ps_host="${STRING_COLOR}\h${normal}"; + my_ps_user="${STRING_COLOR}\u${normal}"; my_ps_root="${bold_red}\u${normal}"; - my_ps_path="${bold_cyan}\w${normal}"; + my_ps_path="${STRING_COLOR}\w${normal}"; # nice prompt case "`id -u`" in - 0) PS1="${TITLEBAR}┌─[$my_ps_root][$my_ps_host]$(modern_scm_prompt)$(__my_rvm_ruby_version)[${cyan}\w${normal}]$(is_vim_shell) -└─▪ " + 0) PS1="${TITLEBAR}${BRACKET_COLOR}┌─[$my_ps_root${BRACKET_COLOR}][$my_ps_host${BRACKET_COLOR}]$(modern_scm_prompt)$(__my_rvm_ruby_version)${BRACKET_COLOR}[${STRING_COLOR}\w${BRACKET_COLOR}]$(is_vim_shell) +${BRACKET_COLOR}└─$(my_prompt_char)${normal}" ;; - *) PS1="${TITLEBAR}┌─[$my_ps_user][$my_ps_host]$(modern_scm_prompt)$(__my_rvm_ruby_version)[${cyan}\w${normal}]$(is_vim_shell) -└─▪$(todo_txt_count) " + *) PS1="${TITLEBAR}${BRACKET_COLOR}┌─[$my_ps_user${BRACKET_COLOR}][$my_ps_host${BRACKET_COLOR}]$(modern_scm_prompt)$(__my_rvm_ruby_version)${BRACKET_COLOR}[${STRING_COLOR}\w${BRACKET_COLOR}]$(is_vim_shell) +└─$(todo_txt_count)$(my_prompt_char)" ;; esac } -PS2="└─▪ " +PS2="└─$(my_prompt_char)" From 0b218c4eb23c98b8adb749491a160e5916804d80 Mon Sep 17 00:00:00 2001 From: rjorgenson Date: Wed, 29 Jun 2011 01:27:24 -0700 Subject: [PATCH 4/7] fixed todo count bug todo module would still show up if todo.txt was installed but not used with a blank value. Added a sanity check to make sure we actally get a number back from todo.txt and do nothing if we dont --- themes/rjorgenson/rjorgenson.theme.bash | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/themes/rjorgenson/rjorgenson.theme.bash b/themes/rjorgenson/rjorgenson.theme.bash index 1d4c261e..c6dfe6ed 100644 --- a/themes/rjorgenson/rjorgenson.theme.bash +++ b/themes/rjorgenson/rjorgenson.theme.bash @@ -43,11 +43,18 @@ is_vim_shell() { fi } +function is_integer() { # helper function for todo-txt-count + [ "$1" -eq "$1" ] > /dev/null 2>&1 + return $? +} + todo_txt_count() { - if `hash todo.sh 2>&-`; then - count=`todo.sh ls | egrep "TODO: [0-9]+ of ([0-9]+) tasks shown" | awk '{ print $4 }'` - echo "$BRACKET_COLOR[${STRING_COLOR}T:$count$BRACKET_COLOR]$normal" - fi + if `hash todo.sh 2>&-`; then # is todo.sh installed + count=`todo.sh ls | egrep "TODO: [0-9]+ of ([0-9]+) tasks shown" | awk '{ print $4 }'` + if is_integer $count; then # did we get a sane answer back + echo "$BRACKET_COLOR[${STRING_COLOR}T:$count$BRACKET_COLOR]$normal" + fi + fi } modern_scm_prompt() { From 35e1fe00e218f4efa65f6e9acaa51124d21077ac Mon Sep 17 00:00:00 2001 From: rjorgenson Date: Fri, 8 Jul 2011 06:26:22 -0700 Subject: [PATCH 5/7] fixed a bug with colors in second line of prompt --- themes/rjorgenson/rjorgenson.theme.bash | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/themes/rjorgenson/rjorgenson.theme.bash b/themes/rjorgenson/rjorgenson.theme.bash index c6dfe6ed..bebc9b3d 100644 --- a/themes/rjorgenson/rjorgenson.theme.bash +++ b/themes/rjorgenson/rjorgenson.theme.bash @@ -68,11 +68,11 @@ modern_scm_prompt() { } my_prompt_char() { - if [[ $OSTYPE =~ "darwin" ]]; then - echo "${BRACKET_COLOR}➞ ${normal}" - else - echo "${BRACKET_COLOR}➞ ${normal}" - fi + if [[ $OSTYPE =~ "darwin" ]]; then + echo "${BRACKET_COLOR}➞ ${normal}" + else + echo "${BRACKET_COLOR}➞ ${normal}" + fi } prompt() { @@ -88,7 +88,7 @@ prompt() { ${BRACKET_COLOR}└─$(my_prompt_char)${normal}" ;; *) PS1="${TITLEBAR}${BRACKET_COLOR}┌─[$my_ps_user${BRACKET_COLOR}][$my_ps_host${BRACKET_COLOR}]$(modern_scm_prompt)$(__my_rvm_ruby_version)${BRACKET_COLOR}[${STRING_COLOR}\w${BRACKET_COLOR}]$(is_vim_shell) -└─$(todo_txt_count)$(my_prompt_char)" +${BRACKET_COLOR}└─$(todo_txt_count)$(my_prompt_char)" ;; esac } From e305e48bee2ce1854becf77c56f0b16a57b5772a Mon Sep 17 00:00:00 2001 From: rjorgenson Date: Sat, 12 Nov 2011 01:10:24 -0700 Subject: [PATCH 6/7] fixed some syntax problems updated bash_it base install and theme stopped working needed some syntax changes to show colors properly cleaned up color disambiguation a bit --- themes/rjorgenson/rjorgenson.theme.bash | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/themes/rjorgenson/rjorgenson.theme.bash b/themes/rjorgenson/rjorgenson.theme.bash index bebc9b3d..2ef151ae 100644 --- a/themes/rjorgenson/rjorgenson.theme.bash +++ b/themes/rjorgenson/rjorgenson.theme.bash @@ -2,17 +2,17 @@ # set colors for use throughout the prompt # i like things consistent -BRACKET_COLOR=$blue -STRING_COLOR=$green +BRACKET_COLOR=${blue} +STRING_COLOR=${green} SCM_THEME_PROMPT_PREFIX="" SCM_THEME_PROMPT_SUFFIX="" -SCM_THEME_PROMPT_DIRTY=' ${bold_red}✗${normal}' -SCM_THEME_PROMPT_CLEAN=' ${bold_green}✓${normal}' -SCM_GIT_CHAR='${STRING_COLOR}±${normal}' -SCM_SVN_CHAR='${bold_cyan}⑆${normal}' -SCM_HG_CHAR='${bold_red}☿${normal}' +SCM_THEME_PROMPT_DIRTY=" ${bold_red}✗${normal}" +SCM_THEME_PROMPT_CLEAN=" ${bold_green}✓${normal}" +SCM_GIT_CHAR="${STRING_COLOR}±${normal}" +SCM_SVN_CHAR="${bold_cyan}⑆${normal}" +SCM_HG_CHAR="${bold_red}☿${normal}" #Mysql Prompt export MYSQL_PS1="(\u@\h) [\d]> " @@ -39,7 +39,7 @@ __my_rvm_ruby_version() { is_vim_shell() { if [ ! -z "$VIMRUNTIME" ] then - echo "$BRACKET_COLOR[${STRING_COLOR}vim shell$BRACKET_COLOR]$normal" + echo "${BRACKET_COLOR}[${STRING_COLOR}vim shell${BRACKET_COLOR}]${normal}" fi } @@ -52,7 +52,7 @@ todo_txt_count() { if `hash todo.sh 2>&-`; then # is todo.sh installed count=`todo.sh ls | egrep "TODO: [0-9]+ of ([0-9]+) tasks shown" | awk '{ print $4 }'` if is_integer $count; then # did we get a sane answer back - echo "$BRACKET_COLOR[${STRING_COLOR}T:$count$BRACKET_COLOR]$normal" + echo "${BRACKET_COLOR}[${STRING_COLOR}T:$count${BRACKET_COLOR}]$normal" fi fi } @@ -63,7 +63,7 @@ modern_scm_prompt() { then return else - echo "$BRACKET_COLOR[$(scm_char)$BRACKET_COLOR][$STRING_COLOR$(scm_prompt_info)$BRACKET_COLOR]$normal" + echo "${BRACKET_COLOR}[${CHAR}${BRACKET_COLOR}][${STRING_COLOR}$(scm_prompt_info)${BRACKET_COLOR}]$normal" fi } From f0bceecb88f01a143c9d4df977c9db473e8618bb Mon Sep 17 00:00:00 2001 From: rjorgenson Date: Tue, 29 Nov 2011 23:45:25 -0700 Subject: [PATCH 7/7] added error suppression to tree alias the $(which tree) check general.aliases would ouput an error if the command was not found. Added suppression of that error. --- aliases/available/general.aliases.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aliases/available/general.aliases.bash b/aliases/available/general.aliases.bash index cfd456fc..6c722f4c 100644 --- a/aliases/available/general.aliases.bash +++ b/aliases/available/general.aliases.bash @@ -46,7 +46,7 @@ alias -- -="cd -" # Go back alias h='history' # Tree -if [ ! -x "$(which tree)" ] +if [ ! -x "$(which tree 2>/dev/null)" ] then alias tree="find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'" fi