#colored terminal stuff & fixes export TERM="xterm-color" export CLICOLOR=1 export LSCOLORS=ExFxCxDxBxegedabagacad export GREP_OPTIONS='--color=auto' source "`brew --prefix grc`/etc/grc.bashrc" #tmux stuff #check if tmux is installed #if which tmux 2>&1 >/dev/null; then # #if no session is started, start a new session # test -z ${TMUX} && tmux -2 # # #when quitting tmux, try to attach # while test -z ${TMUX}; do # tmux attach || break # done #fi # FIXES ################################################################################ # set sane process limit ulimit -n 4096 # remove duplicates from command history list export HISTCONTROL=erasedups # increase history size export HISTSIZE=10000 # set UTF-8 support export LC_ALL="en_US.UTF-8" #export LANG=en_US.UTF-8 # make Terminal interact with user in English export LANG="en_US" #set LC_CTYPE="en_US.UTF-8" # fix some iTerm inputs for international characters #set meta-flag on #set input-meta on #set output-meta on #set convert-meta off # prevent clobbering set -o noclobber # ensure history from session is appended to ~/.bash_history on exit shopt -s histappend # check the window size after each command and, if necessary, # update the values of LINES and COLUMNS. shopt -s checkwinsize # don't autocomplete empty lines shopt -s no_empty_cmd_completion # allow case-insensitive auto-completion shopt -s nocaseglob # allow minor typos in directory names for cd command shopt -s cdspell # allow extended glob patterns shopt -s extglob # allow builtin echo to expand backslash escape sequences shopt -s xpg_echo # use most instead of less for paging export PAGER="most" # configure TextMate as editor and for remote editing export EDITOR="/usr/local/bin/mate -w" export RMATE_HOST=auto export RMATE_PORT=52698 # NOTES ################################################################################ # To temporarily bypass an alias, we preceed the command with a \ # EG: the ls command is aliased, but to use the normal ls command you would # type \ls #ALIASES ################################################################################ # make ls use human readable file sizes alias ls="gls -h --color=always" # make ls list one entry per line alias dir="gls -hG1 --color=always" # make df more readable alias df="gdf -H" # GNU echo alias echo="gecho" # colors script alias colors="perl ~/Dropbox/Scripts/Colortest/256colors.perl" # kill GeekTool alias kgeek="killall GeekTool\ Helper" # make htop sort by CPU usage and update only every 2 seconds and only show processes of current logged in user alias htop="htop --sort-key PERCENT_CPU -d 20 -u `whoami`" # delete all Apple System Log files (speeds up Terminal.app on first login) alias delasl="sudo rm -f /private/var/log/asl/*.asl" # flush dns cache (may not work after OS X 10.8?) alias flushcache="dscacheutil -flushcache" # get PID of a process by name alias pidof="sh /Library/Scripts/pidof.sh" # set a reminder at a certain time or after a number of minutes alias remindin="sh /Library/Scripts/eggtimer.sh" alias remindat="sh /Library/Scripts/remindat.sh" alias cleartimers="atrm" # weather script - can take a zipcode argument to get weather for that location, otherwise tries to get current location based off of zipcode alias weather="sh ~/Dropbox/Scripts/Weather.sh" # zipcode - tries to determine current zipcode from ipinfodb.com based on current IP address alias currentzip="sh /Library/Scripts/zipcode.sh" # display text with figlet and toilet alias toilet="toilet --gay -f mono9" #alias destep="figlet -w 80 -nkf rowancap DESTEP TRED | tr 'd' '▟' | tr 'P' '▛' | tr 'M' '█' | tr 'V' '▜' | tr '\"' ' ' | tr '.' ' ' | tr 'a' '▟' | tr 'b' '▙' | tr 'K' '█' | tr 'A' '▟' | tr 'F' '▛' | tr 'Y' '▜' | tr 'v' '█' | tr 'm' '█' | tr 'r' '▛' | toilet -w 80 --gay -f term" #alias destep="echo "" && figlet -f rowancap DESTEP TRED | tr '[A-Z]|[a-z]' '▐' | tr '.' ' ' | tr '\"' ' ' | toilet --gay -f term" #alias destep="clear && echo "" && echo "" && echo "" && echo "" && echo "" && toilet -f future --gay ' destep'; toilet -f future --gay ' tred' && echo "" && echo "" && echo "" && echo """ #alias destep="clear && echo "" && echo "" && echo "" && echo "" && toilet -f kban --gay ' destep' | tr \| ▉ | tr \. ▄ | tr \' ▀ && toilet -f kban --gay ' tred' | tr \| ▉ | tr \. ▄ | tr \' ▀ && echo "" && echo """ alias destep="clear && toilet -f mono9 --gay destep tred" #repair disk permissions alias repair="diskutil repairpermissions" #problem? alias problem="clear && figlet -pf future problem? | toilet --gay -f term | cowsay -nf coolface | tr '/|\|_|-' ' ' | tr '\\' ' '" #soon... alias soon="clear && figlet -pf future SOON... | toilet --gay -f term | cowsay -nf tidus | tr '/|\|_|-' ' ' | tr '\\' ' '" #start mpd with proper config file alias mpd="killall mpd; open /Users/zach/Dropbox/Scripts/mpd\ configure.app;" #view colorised live system log entries alias syslog="tail -F /var/log/system.log | grcat conf.log" #colorize tree output alias tree="tree -AC" #display some system info (OS X version, CPU, Mac model, GPU/display, disks) alias sysprofile="sw_vers; system_profiler SPHardwareDataType | head -n 15; echo ""; system_profiler SPDisplaysDataType; df;" #clear the terminal display alias cl="clear" #update WebKit nightly alias updatewebkit="sh ~/Dropbox/Scripts/WebkitNightlyUpgradeScript.sh" #poll Google Finance data for stock information alias stockinfo="osascript ~/Dropbox/Scripts/stockinfo.applescript" #a terminal clock alias clock="tty-clock -s -c -t -C 1" #fuck u python alias pip="/usr/local/share/python/pip" alias beet="/usr/local/share/python/beet" #use graphical characters for pstree alias pstree="pstree -g 3" #make tmux use all available colors alias tmux="tmux -2" #use rmtrash instead of rm alias rm="rmtrash" #edit file in TextMate α with wait option alias edit="mate -w" #unregister applications from LaunchServices in order to remove duplicate items alias kls="/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user" #aliases for Brandeis COSI servers alias sshcoeus="ssh zyocum@coeus.cs.brandeis.edu" alias sshthemis="ssh zyocum@themis.cs.brandeis.edu" #use ssh protocol 2.0 and IPv6 #alias ssh="ssh -2 -6" #ssh via BackToMyMac alias sshzora="ssh -2 -6 zach@zora.289987032.members.btmm.icloud.com" alias sshfarore="ssh -2 -6 zach@farore.289987032.members.btmm.icloud.com" #remotely edit in TextMate 2 alias rmssh="ssh -R 52698:$HOSTNAME.local.:52698" #TEXT COLORS ################################################################################ TXTBLK='\e[0;30m' # Black - Regular TXTRED='\e[0;31m' # Red TXTGRN='\e[0;32m' # Green TXTYLW='\e[0;33m' # Yellow TXTBLU='\e[0;34m' # Blue TXTPUR='\e[0;35m' # Purple TXTCYN='\e[0;36m' # Cyan TXTWHT='\e[0;37m' # White BLDBLK='\e[1;30m' # Black - Bold BLDRED='\e[1;31m' # Red BLDGRN='\e[1;32m' # Green BLDYLW='\e[1;33m' # Yellow BLDBLU='\e[1;34m' # Blue BLDPUR='\e[1;35m' # Purple BLDCYN='\e[1;36m' # Cyan BLDWHT='\e[1;37m' # White UNDBLK='\e[4;30m' # Black - Underline UNDRED='\e[4;31m' # Red UNDGRN='\e[4;32m' # Green UNDYLW='\e[4;33m' # Yellow UNDBLU='\e[4;34m' # Blue UNDPUR='\e[4;35m' # Purple UNDCYN='\e[4;36m' # Cyan UNDWHT='\e[4;37m' # White BAKBLK='\e[40m' # Black - Background BAKRED='\e[41m' # Red BAKGRN='\e[42m' # Green BAKYLW='\e[43m' # Yellow BAKBLU='\e[44m' # Blue BAKPUR='\e[45m' # Purple BAKCYN='\e[46m' # Cyan BAKWHT='\e[47m' # White TXTRST='\e[0m' # Text Reset TXT236='\e[38;5;236m' # Darkest Grey - Regular TXT238='\e[38;5;238m' # Darker Grey TXT000='\e[38;5;000m' # Dark Grey TXT232='\e[38;5;232m' # Black TXTBRD='\e[38;5;088m' # Bright Red TXTBBR='\e[38;5;196m' # Brightest Red BAK233='\e[48;5;233m' # Darkest Grey - Background BAK241='\e[48;5;241m' # Darker Grey BAK000='\e[48;5;000m' # Dark Grey BAKBRD='\e[48;5;130m' # Bright Red BAKBBR='\e[48;5;166m' # Brightest Red #PROMPT ################################################################################ # cool prompt stuff # based on a function found in bashtstyle-ng 5.0b1 # Original author Christopher Roy Bratusek (http://www.nanolx.org) # Last arranged by zach Tue Jul 24 06:40:19 EDT 2012 function pre_prompt { specPWD=$(echo -n ${PWD} | sed "s/\/Users\/$USER/~/") #Should now properly sed path of current user newPWD=$specPWD let promptsize=$(echo -n "_!___${USER}@${HOSTNAME}__${specPWD}"\ | wc -c | tr -d " ") let fillsize=(${COLUMNS})-${promptsize} fill="" while [ "$fillsize" -gt "0" ] do fill="${fill} " let fillsize=${fillsize}-1 done if [ "$fillsize" -lt "0" ] then let cutt=1-${fillsize} newPWD="…$(echo -n $specPWD | sed -e "s/\(^.\{$cutt\}\)\(.*\)/\2/")" fi } PROMPT_COMMAND=pre_prompt PS1="\`if [ \$? = 0 ]; then echo \"${TXTBLK}${BAK241} \$ ${TXT236}${BAKBLK}⮀\"; else echo \"${TXTBLK}${BAKRED} ! ${TXTBRD}${BAKBLK}⮀\"; fi\`${TXTGRN}${BAKBLK} \u${BLDBLK}@${BLDCYN}\h ${TXTBLK}${BAKBLU}⮀${TXTRST}${BAKBLU}${BLDBLU} \$newPWD\${fill}${TXTRST}\n" PS2="${TXTBLK}»${TXTRST}" PS3="${TXTBLK}»${TXTRST}" PS4="${TXTBLK}»${TXTRST}" #EXTRAS ################################################################################ # Bash completion if [ -f /etc/bash_completion ]; then . /etc/bash_completion fi # Better manual pages (uses --help as fallback if no man page exists) man () { /usr/bin/man $@ || ($@ --help 2> /dev/null && $@ --help | $PAGER) } # Extract things. Thanks to urukrama, Ubuntuforums.org extract () { if [ -f $1 ] ; then case $1 in *.tar.bz2) tar xjf $1 ;; *.tar.gz) tar xzf $1 ;; *.bz2) bunzip2 $1 ;; # *.rar) rar x $1 ;; *.gz) gunzip $1 ;; *.tar) tar xf $1 ;; *.tbz2) tar xjf $1 ;; *.tgz) tar xzf $1 ;; *.zip) unzip $1 ;; *.Z) uncompress $1 ;; # *.7z) 7z x $1 ;; *) echo "'$1' cannot be extracted via extract()" ;; esac else echo "'$1' is not a valid file" fi } imgur () { for FILE in "$@" do curl -F "image=@-" -F "key=1913b4ac473c692372d108209958fd15" http://api.imgur.com/2/upload.xml < "$FILE" | grep -Eo "(.)*" | grep -Eo "http://i.imgur.com/[^<]*" done }