# Franklin M. Siler # .zshrc / .bashrc / .bash_profile umask 002 ### ssh key management export KEYCHAIN_HOST='LOCAL' # change for hosts with homedirs shared between machines export KEYCHAIN_KEYS={~/.ssh/id_dsa,~/.ssh/id_rsa} export KEYCHAIN_TIMEOUT=300 if [[ -r ~/.keychain/$KEYCHAIN_HOST-sh ]]; then source ~/.keychain/$KEYCHAIN_HOST-sh; fi # OS X hacks if [[ `uname` == 'Darwin' ]] then if [[ -z "$DISPLAY" ]]; then export DISPLAY=':0.0'; fi alias top='TERM=vt100 top -o cpu' alias ap="/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport" fi # FreeBSD Hacks if [[ "$TERM" == 'ansi' && `uname` == 'FreeBSD' ]]; then export TERM=vt100-co; fi # shell-specific operations # bash if [ -n "$BASH_VERSION" ]; then export PS1="\[\033[01;32m\]\u@\h \[\033[01;34m\]\w$\[\033[00m\] " export HISTFILE=.bash_history ### keychain if [[ -x `which keychain` ]]; then keychain -Q -q --timeout \ $KEYCHAIN_TIMEOUT --host $KEYCHAIN_HOST $KEYCHAIN_KEYS; fi if [[ -r ~/.keychain/$KEYCHAIN_HOST-sh ]]; then source \ ~/.keychain/$KEYCHAIN_HOST-sh; fi fi if [[ `hostname -f` == *stchas.midwestchest.com ]]; then ln -sf ~/.ssh/config{-mccpc,}; else ln -sf ~/.ssh/config{-hg,} fi chmod -f 600 ~/.ssh/config* ~/.ssh/authorized_keys 2>&1 >/dev/null chmod -Rf go-rwx ~/.getmail 2>&1 >/dev/null if [[ -r /sw/bin/init.sh ]]; then /sw/bin/init.sh; fi if [[ -f /opt/local/etc/bash_completion ]]; then . /opt/local/etc/bash_completion 2>/dev/null; fi ### set up ls appropriately rehash 2>&1 >/dev/null || true if [[ `uname` == "Darwin" && `which ls` == "/bin/ls" ]] then alias ls='ls -AG' l='ls -lAG' else #### assume GNU ls alias ls='ls -A --color=auto' l () { ls -lA --color $@|less -RE } fi if expr "$-" : '.*Z' > /dev/null #### ZSH then PR_STITLE='' # title for screen, if needed if [[ "$TERM" == "screen"* ]]; then PR_STITLE=$'%{\ekzsh\e\\%}' preexec () { echo -ne "\ek$1\e\\" } fi # that's a lotta stuff for a prompt fg_default=$'\e[0;39m' fg_red=$'\e[1;31m' fg_green=$'\e[1;32m' fg_yellow=$'\e[1;33m' fg_blue=$'\e[1;34m' export PS1="${PR_STITLE}[%{%(!.${fg_red}.${fg_green})%}%n@%m%{${fg_default}%}] \ %{$fg_blue%}%~%{$fg_default%}:%{$fg_blue%}%l %{$fg_default%}%# " unset fg_default fg_green fg_blue fg_yellow fg_red # funny that as a vim user I miss the emacs keys when they don't work bindkey -e # make it so $PATH will only have unique entries typeset -U PATH MANPATH PYTHONPATH # zsh has neat stuff you can set export READNULLCMD='less' export REPORTTIME=10 export HISTFILE=~/.zhistory export SAVEHIST=200000 setopt sharehistory histignorealldups histreduceblanks setopt c_bases extended_history nomultios setopt nochaselinks correct nohup setopt autocontinue 2>/dev/null zstyle ':completion:*' completer _expand _complete _correct _approximate zstyle :compinstall filename "$HOME/.zshrc" # Thanks Joey local _myhosts _myhosts=( ${${${${(f)"$(<$HOME/.ssh/known_hosts)"}:#[0-9]*}%%\ *}%%,*} ) zstyle ':completion:*' hosts $_myhosts autoload -Uz compinit && compinit autoload -U bashcompinit && bashcompinit keychain_go() { if [[ -x `which keychain` ]]; then keychain -Q -q --timeout \ $KEYCHAIN_TIMEOUT --host $KEYCHAIN_HOST $KEYCHAIN_KEYS; fi if [[ -r ~/.keychain/$KEYCHAIN_HOST-sh ]]; then source \ ~/.keychain/$KEYCHAIN_HOST-sh; fi } keychain_go ssh() { keychain_go; =ssh $@ } scp() { keychain_go; =scp $@ } svn() { keychain_go; =svn $@ } rot() { tr 'a-zA-Z' 'n-za-mN-ZA-M' } # end of zsh specifics fi