-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathzshrc
181 lines (136 loc) · 4.17 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
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
alias _check='type &>/dev/null'
TMPLOCAL="$HOME/.local/tmp"
mkdir -p "$TMPLOCAL"
# =================
# === OH-MY-ZSH ===
# Path to oh-my-zsh
ZSH="$HOME/.dotfiles/oh-my-zsh/"
ZSH_CUSTOM="$HOME/.dotfiles/oh-my-zsh-custom/"
# Theme for OMZ
ZSH_THEME='spaceship'
SPACESHIP_PROMPT_DEFAULT_SUFFIX=' '
DISABLE_AUTO_UPDATE=true
COMPLETION_WAITING_DOTS=true
# ================ #
# === SOURCING === #
# Arch Linux command-not-found
[ -s '/etc/profile.d/cnf.sh' ] && source '/etc/profile.d/cnf.sh'
# Travis
[ -s "$HOME/.travis/travis.sh" ] && source "$HOME/.travis/travis.sh"
# Node Version Manager
NVM_DIR="$HOME/.nvm"
[ -s "$HOME/.nvm/nvm.sh" ] && source "$HOME/.nvm/nvm.sh"
[ -s "/usr/share/nvm/nvm.sh" ] && source "/usr/share/nvm/nvm.sh"
_check nvm || NVM_DIR=
# OhMyZsh!!
plugins=(git npm archlinux systemd virtualenv sudo)
_check virtualenvwrapper.sh && plugins+=(virtualenvwrapper)
_check nvm && plugins+=(nvmauto)
plugins+=(zsh-syntax-highlighting) # must be last
source "$ZSH/oh-my-zsh.sh"
# ===================== #
# === THEME OPTIONS === #
SPACESHIP_PROMPT_ORDER=(
exit_code
user host dir
git hg
package
node ruby elixir xcode swift golang php rust haskell julia venv conda pyenv dotnet ember
docker aws kubecontext
exec_time line_sep battery
#vi_mode
jobs char
)
SPACESHIP_RPROMPT_ORDER=(time)
SPACESHIP_TIME_SHOW=true
SPACESHIP_TIME_COLOR=black
SPACESHIP_PROMPT_ADD_NEWLINE=false
SPACESHIP_PROMPT_PREFIXES_SHOW=false
SPACESHIP_CHAR_COLOR=white
SPACESHIP_CHAR_COLOR_SUCCESS="$SPACESHIP_CHAR_COLOR"
SPACESHIP_CHAR_COLOR_FAILURE="$SPACESHIP_CHAR_COLOR"
SPACESHIP_CHAR_COLOR_SECONDARY="SPACESHIP_CHAR_COLOR"
SPACESHIP_CHAR_SYMBOL='$ '
SPACESHIP_CHAR_SYMBOL_ROOT='# '
SPACESHIP_CHAR_SYMBOL_SECONDARY='> '
SPACESHIP_EXIT_CODE_SUFFIX='\e[31m] '
SPACESHIP_EXIT_CODE_SYMBOL='['
SPACESHIP_USER_SHOW=always
SPACESHIP_USER_COLOR=green
SPACESHIP_USER_COLOR_ROOT=white
SPACESHIP_DIR_COLOR=blue
SPACESHIP_DIR_TRUNC=0
SPACESHIP_HOST_COLOR=yellow
SPACESHIP_HOST_COLOR_SSH=yellow
SPACESHIP_GIT_STATUS_COLOR=white
SPACESHIP_GIT_STATUS_PREFIX=''
SPACESHIP_GIT_STATUS_SUFFIX=''
SPACESHIP_GIT_STATUS_AHEAD='↑'
SPACESHIP_GIT_STATUS_BEHIND='↓'
SPACESHIP_GIT_STATUS_DIVERGED='↕'
SPACESHIP_EXEC_TIME_COLOR=black
SPACESHIP_EXEC_TIME_ELAPSED=3
SPACESHIP_EXIT_CODE_SHOW=true
# =============== #
# === ALIASES === #
# mkcd function
function mkcd () {
mkdir -p -- "$1" \
&& cd -P -- "$1"
}
# always call docker with sudo
_check sudo && alias docker='sudo docker'
# alias for hub
_check hub && alias git=hub
_check subl3 && alias subl=subl3
# alias for reset
alias reset='\reset; source ~/.zshrc'
# fix GREP_OPTIONS messages
alias grep='\grep $GREP_OPTIONS'
unset GREP_OPTIONS
# aliases for webtask/wiredtiger
alias wiredtiger='\wt'
alias wt='webtask'
# === VARIABLES ===
# GCC color setup
export GCC_COLORS='error=01;31:warning=01;33:note=01;36:caret=01;32:locus=01:quote=01'
# MAKEFLAGS for multi-core compilation
_check nproc && export MAKEFLAGS="$MAKEFLAGS -j$(nproc)"
# Export this for 256-color detection
export TERM=xterm-256color
# Add local directories to the PATH
export PATH="$HOME/.bin":"$HOME/.gem/ruby/2.2.0/bin":"$HOME/.local/bin":"$PATH"
# For the love of everything, use nano!!
export VISUAL=nano
export EDITOR="$VISUAL"
# Hack for Aseprite AUR package
export ASEPRITE_ACCEPT_EULA=yes
# ======================= #
# === PACKAGE MANAGER === #
# Pacaur package manager
_check pacaur && {
alias pm=pacaur
alias pmnc='pm --noconfirm --noedit'
alias pmupd='pmnc -Syu'
alias pmin='pmnc -S' # PM Install
alias pmrm='pmnc -R' # PM Remove
alias pmsr='pmnc -Ss' # PM Search
alias pmchk='checkupdates'
alias pmchkn='pmchk | wc -l'
_check pacman-mirrors \
&& alias pmmir='sudo pacman-mirrors -g' \
|| alias pmmir='sudo reflector -l 200 -p http --sort rate --save /etc/pacman.d/mirrorlist'
}
# Apt-Get package manager
_check apt-get && {
alias pm='sudo apt-get'
alias pmnc='pm -y --no-install-recommends'
alias pmupd='pmnc update && pmnc upgrade'
alias pmin='pmnc install' # PM Install
alias pmrm='pmnc remove' # PM Remove
alias pmsr='apt-cache search' # PM Search
}
# =========== #
# === END === #
export -U PATH="$PATH"
unalias _check