From 2ca33576d631200dc6f805ca3d8c86dcdd5e1e7b Mon Sep 17 00:00:00 2001 From: Loic Nageleisen Date: Sun, 29 May 2011 13:58:15 +0200 Subject: [PATCH] basic dotfiles --- bash_profile | 14 +++++++++ bash_prompt | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++ bashrc | 21 +++++++++++++ profile | 26 ++++++++++++++++ zprofile | 4 +++ zshrc | 36 ++++++++++++++++++++++ 6 files changed, 185 insertions(+) create mode 100644 bash_profile create mode 100644 bash_prompt create mode 100644 bashrc create mode 100644 profile create mode 100644 zprofile create mode 100644 zshrc diff --git a/bash_profile b/bash_profile new file mode 100644 index 0000000..1194718 --- /dev/null +++ b/bash_profile @@ -0,0 +1,14 @@ +## bash_profile + +# handle .profile too +. .profile + + +# homebrew bash autocompletion +if [ -f `brew --prefix`/etc/bash_completion ]; then + . `brew --prefix`/etc/bash_completion +fi + +# execute bashrc +[ -n "$BASH" ] && . ~/.bashrc + diff --git a/bash_prompt b/bash_prompt new file mode 100644 index 0000000..7875b6a --- /dev/null +++ b/bash_prompt @@ -0,0 +1,84 @@ + +################################################## +# The home directory (HOME) is replaced with a ~ +# The last pwdmaxlen characters of the PWD are displayed +# Leading partial directory names are striped off +# /home/me/stuff -> ~/stuff if USER=me +# /usr/share/big_dir_name -> …/share/big_dir_name if pwdmaxlen=20 +################################################## +bash_prompt_command() { + # How many characters of the $PWD should be kept + local pwdmaxlen=25 + # How to indicate that there has been dir truncation + local trunc_symbol="…" + + # get minimum length to not truncate a long name + local dir=${PWD##*/} #'.' real name + pwdmaxlen=$(( ( pwdmaxlen < ${#dir} ) ? ${#dir} : pwdmaxlen )) + + NEW_PWD=${PWD/#$HOME/\~} #gain some place with '~' + local pwdoffset=$(( ${#NEW_PWD} - pwdmaxlen )) #get truncation point + if [ ${pwdoffset} -gt "0" ] #truncation is needed + then + NEW_PWD=${NEW_PWD:$pwdoffset:$pwdmaxlen} #truncate + NEW_PWD=${trunc_symbol}/${NEW_PWD#*/} #add symbol + fi +} + + +bash_prompt() { + case $TERM in + xterm*|rxvt*) + local TITLEBAR='\[\033]0;\u:${NEW_PWD}\007\]' + ;; + *) + 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 + + # colorized: + PS1="${TITLEBAR} ${EMC}[${UC}\u${EMC}@${UC}\h ${EMB}\${NEW_PWD}${EMC}]${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 + +# vim: set filetype=sh : diff --git a/bashrc b/bashrc new file mode 100644 index 0000000..454fb0e --- /dev/null +++ b/bashrc @@ -0,0 +1,21 @@ +## bashrc + +# set a nice prompt +source ~/.bash_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 +set bell-style none + +#alias ls="ls --color" +alias ll="ls -l" +alias top="top -o cpu -s 5" + diff --git a/profile b/profile new file mode 100644 index 0000000..2dea1a6 --- /dev/null +++ b/profile @@ -0,0 +1,26 @@ +## .profile + +# set locale +export LC_ALL="en_US.UTF-8" + +# mono paths +#export MANPATH=/Library/Frameworks/Mono.framework/Versions/Current/share/man:$MANPATH +#export PKG_CONFIG_PATH=/Library/Frameworks/Mono.framework/Versions/Current/lib/pkgconfig:$PKG_CONFIG_PATH + +# user path +export PATH=~/.local/bin:$PATH + +# local path +export PATH=/usr/local/bin:/usr/local/sbin:$PATH + +# node.js path +export NODE_PATH=/usr/local/lib/node + +# default editor +export EDITOR=vim +export VISUAL=vim + +# add some color +export GREP_OPTIONS='--color=auto' +export CLICOLOR=1; + diff --git a/zprofile b/zprofile new file mode 100644 index 0000000..9bd9d8b --- /dev/null +++ b/zprofile @@ -0,0 +1,4 @@ +emulate sh +. ~/.profile +emulate zsh + diff --git a/zshrc b/zshrc new file mode 100644 index 0000000..9cf6abf --- /dev/null +++ b/zshrc @@ -0,0 +1,36 @@ +# Set up the prompt + +autoload -Uz promptinit +promptinit +prompt walters + +# Use emacs keybindings even if our EDITOR is set to vi +bindkey -e + +# Keep 1000 lines of history within the shell and save it to ~/.zsh_history: +HISTSIZE=1000 +SAVEHIST=1000 +HISTFILE=~/.zsh_history + +# Use modern completion system +autoload -Uz compinit +compinit + +zstyle ':completion:*' auto-description 'specify: %d' +zstyle ':completion:*' completer _expand _complete _correct _approximate +zstyle ':completion:*' format 'Completing %d' +zstyle ':completion:*' group-name '' +zstyle ':completion:*' menu select=2 +which dircolors >/dev/null && eval "$(dircolors -b)" +zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS} +zstyle ':completion:*' list-colors '' +zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s +zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=* l:|=*' +zstyle ':completion:*' menu select=long +zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s +zstyle ':completion:*' use-compctl false +zstyle ':completion:*' verbose true + +zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31' +zstyle ':completion:*:kill:*' command 'ps -u $USER -o pid,%cpu,tty,cputime,cmd' +