diff --git a/bash/ansi_colors b/bash/ansi_colors new file mode 100644 index 0000000..d90080d --- /dev/null +++ b/bash/ansi_colors @@ -0,0 +1,36 @@ +local NONE="\[\033[0m\]" # unsets color to term's fg color + +# regular colors +local K="\[\033[0;30m\]" # black +local R="\[\033[0;31m\]" # red +local G="\[\033[0;32m\]" # green +local Y="\[\033[0;33m\]" # yellow +local B="\[\033[0;34m\]" # blue +local M="\[\033[0;35m\]" # magenta +local C="\[\033[0;36m\]" # cyan +local W="\[\033[0;37m\]" # white + +# emphasized (bolded) colors +local EMK="\[\033[1;30m\]" +local EMR="\[\033[1;31m\]" +local EMG="\[\033[1;32m\]" +local EMY="\[\033[1;33m\]" +local EMB="\[\033[1;34m\]" +local EMM="\[\033[1;35m\]" +local EMC="\[\033[1;36m\]" +local EMW="\[\033[1;37m\]" + +# background colors +local BGK="\[\033[40m\]" +local BGR="\[\033[41m\]" +local BGG="\[\033[42m\]" +local BGY="\[\033[43m\]" +local BGB="\[\033[44m\]" +local BGM="\[\033[45m\]" +local BGC="\[\033[46m\]" +local BGW="\[\033[47m\]" + +local UC=$W # user's color +[ $UID -eq "0" ] && UC=$R # root's color + +# vim: ft=sh diff --git a/bash/profile b/bash/profile index 0992b07..c649c97 100644 --- a/bash/profile +++ b/bash/profile @@ -1,13 +1,14 @@ -## bash_profile +## bash_profile, called for login shells -# handle .profile too -. ~/.profile +# dotfiles locations +DOTFILES_HOME_DIR="$(cd -P "$(dirname "$(readlink ${BASH_SOURCE[0]})")" && pwd)" +DOTFILES_ROOT_DIR="$( dirname "$DOTFILES_HOME_DIR" )" +DOTFILES_BASH_DIR="$DOTFILES_ROOT_DIR/bash" -# homebrew bash autocompletion -if [ -f `brew --prefix`/etc/bash_completion ]; then - . `brew --prefix`/etc/bash_completion -fi +# include .profile +source ~/.profile -# execute bashrc -[ -n "$BASH" ] && . ~/.bashrc +# include bashrc too if this is an interactive shell +[[ $- == *i* ]] && source ~/.bashrc +# vim: ft=sh diff --git a/bash/prompt b/bash/prompt index d8c3ff1..a508fd5 100644 --- a/bash/prompt +++ b/bash/prompt @@ -32,15 +32,15 @@ __tpwd() { __truncate_dir "$PWD" } -bash_prompt_command() { +__bash_prompt_command() { local pwdmaxlen=25 local trunc_symbol="…" - NEW_PWD=$(__tpwd) + PROMPT_PWD=$(__tpwd) } -bash_prompt() { +__set_bash_ps1() { case $TERM in xterm*|rxvt*) local TITLEBAR='\[\033]0;\u:${NEW_PWD}\007\]' @@ -49,50 +49,19 @@ bash_prompt() { local TITLEBAR="" ;; esac - local NONE="\[\033[0m\]" # unsets color to term's fg color - - # regular colors - local K="\[\033[0;30m\]" # black - local R="\[\033[0;31m\]" # red - local G="\[\033[0;32m\]" # green - local Y="\[\033[0;33m\]" # yellow - local B="\[\033[0;34m\]" # blue - local M="\[\033[0;35m\]" # magenta - local C="\[\033[0;36m\]" # cyan - local W="\[\033[0;37m\]" # white - - # emphasized (bolded) colors - local EMK="\[\033[1;30m\]" - local EMR="\[\033[1;31m\]" - local EMG="\[\033[1;32m\]" - local EMY="\[\033[1;33m\]" - local EMB="\[\033[1;34m\]" - local EMM="\[\033[1;35m\]" - local EMC="\[\033[1;36m\]" - local EMW="\[\033[1;37m\]" - - # background colors - local BGK="\[\033[40m\]" - local BGR="\[\033[41m\]" - local BGG="\[\033[42m\]" - local BGY="\[\033[43m\]" - local BGB="\[\033[44m\]" - local BGM="\[\033[45m\]" - local BGC="\[\033[46m\]" - local BGW="\[\033[47m\]" - - local UC=$W # user's color - [ $UID -eq "0" ] && UC=$R # root's color - + + # load color vars + source "$DOTFILES_BASH_DIR/ansi_colors" + # colorized: - PS1="${TITLEBAR} ${EMC}[${UC}\u${EMC}@${UC}\h ${EMB}\${NEW_PWD}${EMC}]${UC}\\$ ${NONE}" + PS1="${TITLEBAR} ${B}[${UC}\u@\h ${G}\${PROMPT_PWD}${B}]${UC}\\$ ${NONE}" # without colors: #PS1="${TITLEBAR}[\u@\h \${NEW_PWD}]\\$ " # extra backslash in front of \$ to make bash colorize the prompt } -PROMPT_COMMAND=bash_prompt_command -bash_prompt -unset bash_prompt +PROMPT_COMMAND=__bash_prompt_command +__set_bash_ps1 +unset __set_bash_ps1 -# vim: set filetype=sh : +# vim: ft=sh diff --git a/bash/rc b/bash/rc index e71e45a..b4744dd 100644 --- a/bash/rc +++ b/bash/rc @@ -1,19 +1,24 @@ -## bashrc +## bashrc, called for interactive shells # set a nice prompt -source ~/.dotfiles/bash/prompt +source $DOTFILES_BASH_DIR/prompt # ignore repeated, space-started, and casual commands export HISTIGNORE="&:[ ]*:l[sl]:[bf]g:exit" # enable multiline single command shopt -s cmdhist + # enable appending to histfile shopt -s histappend shopt -s cdspell -# turn off bells +# turn off distractive bells set bell-style none -#source ~/.aliases +# homebrew bash autocompletion +if [ -f `brew --prefix`/etc/bash_completion ]; then + source `brew --prefix`/etc/bash_completion +fi +# vim: ft=sh diff --git a/zsh/profile b/zsh/profile index 9bd9d8b..b656220 100644 --- a/zsh/profile +++ b/zsh/profile @@ -1,4 +1,14 @@ +# zprofile, called for login shells + +# dotfiles locations +DOTFILES_HOME_DIR="$(cd -P "$(dirname "$(readlink ~/.zprofile)")" && pwd)" +DOTFILES_ROOT_DIR="$( dirname "$DOTFILES_HOME_DIR" )" +DOTFILES_ZSH_DIR="$DOTFILES_ROOT_DIR/zsh" + emulate sh -. ~/.profile +source ~/.profile emulate zsh +# zshrc will be called automatically for interactive shells + +# vim: ft=zsh diff --git a/zsh/rc b/zsh/rc index 0e69be1..0356a99 100644 --- a/zsh/rc +++ b/zsh/rc @@ -1,5 +1,6 @@ -# Set up the prompt +# zshrc, called for interactive shells +# Set up the prompt # Set terminal title set_term_title() { @@ -139,3 +140,4 @@ chpwd() { set_term_title } +# vim: ft=zsh