-
Notifications
You must be signed in to change notification settings - Fork 1
/
.zshrc
159 lines (134 loc) · 4.75 KB
/
.zshrc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# Path to your oh-my-zsh installation.
export ZSH=$HOME/.oh-my-zsh
# Set name of the theme to load.
# Look in ~/.oh-my-zsh/themes/
# Optionally, if you set this to "random", it'll load a random theme each
# time that oh-my-zsh is loaded.
ZSH_THEME="agnoster"
# Uncomment the following line to display red dots whilst waiting for completion.
COMPLETION_WAITING_DOTS="true"
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(git brew colored-man tmux tmuxinator vundle virtualenv)
source $ZSH/oh-my-zsh.sh
# User configuration
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X10/bin:/usr/texbin"
export PATH="$HOME/bin:$PATH"
export LD_LIBRARY_PATH="$HOME/work/borg/build/lib/"
export GLOG_logtostderr=1
export GLOG_colorlogtostderr=1
# You may need to manually set your language environment
export LANG=en_US.UTF-8
# Preferred editor for local and remote sessions
export EDITOR='vim'
export VISUAL=$EDITOR
# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
#
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
#
alias l="ls -GFh"
alias ls="ls -GFh"
alias la="ls -GFha"
alias ll="ls -GFhl"
alias lla="ls -GFhla"
alias bi="brew install"
alias gd="git diff --word-diff"
alias gm="git merge --no-ff"
alias gcd="git checkout develop"
alias gg="git log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all"
git config --global core.excludesfile '~/.gitignore'
alias m="make"
alias mt="make && make test"
alias ta="tmux a"
alias tl="tmux ls"
alias tn=" tmux new -s"
alias ta="tmux attach -t"
alias tms="tmuxinator start"
alias tmn="tmuxinator new"
alias rot13="tr '[A-Za-z]' '[N-ZA-Mn-za-m]'"
alias clock="watch -tn 1 date +%T \| figlet -c -W -l"
# Remove swap files below this directory (confirms before deleting each file)
rmswp() {
rm -i $(find . | grep .swp$)
}
# Compress a PDF file (requires ghostscript)
# https://blog.omgmog.net/post/compressing-pdf-from-your-mac-or-linux-terminal-with-ghostscript/
# Usage: compresspdf [pdf file]
# alternaitve types: [screen*|ebook|printer|prepress]
compress_pdf() {
for in_file in "$@"
do
echo "Compressing ${in_file}..."
BAK_FILE=${in_file}.bak.compress_pdf
cp ${in_file} ${BAK_FILE}
gs -sDEVICE=pdfwrite -dNOPAUSE -dQUIET -dBATCH -dPDFSETTINGS=/"prepress" -dCompatibilityLevel=1.4 -sOutputFile=${in_file} $BAK_FILE
rm $BAK_FILE
done
}
# mkdir, cd into it
mkcd () {
mkdir -p "$*"
cd "$*"
}
export OPENNI2_INCLUDE=/usr/local/include/ni2
export OPENNI2_REDIST=/usr/local/lib/ni2
# Plugin for Tmux
source ~/.bin/tmuxinator.zsh
export DISABLE_AUTO_TITLE=true
# MRG SSH Settings
SSH_ENV="$HOME/.ssh/environment"
start_agent() {
echo "Initialising new SSH agent..."
/usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
echo succeeded
chmod 600 "${SSH_ENV}"
. "${SSH_ENV}" > /dev/null
/usr/bin/ssh-add;
}
# Source SSH settings, if applicable
if [ -f "${SSH_ENV}" ]; then
. "${SSH_ENV}" > /dev/null
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
start_agent;
}
else
start_agent;
fi
bash ~/.motd
source ~/.env.vars
# OS Specific commands
if [ "$(uname)" = "Darwin" ]; then
# Mac
export CC=/usr/bin/clang
export CXX=/usr/bin/clang++
export PATH="/Developer/NVIDIA/CUDA-7.5/bin:$PATH"
export PATH="$HOME/Library/Haskell/bin:$PATH"
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
alias vim="nvim" # experimenting w/nvim as primary editor
QTDIR=/usr/local/Cellar/qt5
QTPKG=Qt5Widgets
mkdir -p ~/.cmake/packages/$QTPKG && echo $QTDIR/$(ls $QTDIR | sort -n -r | head -n 1)/lib/cmake/$QTPKG > ~/.cmake/packages/$QTPKG/ref
elif [ "$(expr substr $(uname -s) 1 5)" = "Linux" ]; then
# Linux
export CC=/usr/bin/gcc
export CXX=/usr/bin/g++
export CUDA_VISIBLE_DEVICES=0
eval `keychain --agents ssh --eval id_rsa`
export PATH="/usr/local/cuda/bin:$PATH"
if [ -e $HOME/opt/cmake ]
then
export CMAKE_ROOT=$HOME/opt/cmake
fi
elif [ "$(expr substr $(uname -s) 1 10)" = "MINGW32_NT" ]; then
# Windows
fi
# You must run the following command to install iTerm shell integration:
# curl -L https://iterm2.com/misc/install_shell_integration.sh | bash
source ~/.iterm2_shell_integration.`basename $SHELL`