-
Notifications
You must be signed in to change notification settings - Fork 0
/
dot_zshrc
225 lines (171 loc) · 7.59 KB
/
dot_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
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
# Source aliases
. $HOME/projects/my-enviroment/bin/aliases.sh
. $HOME/projects/my-enviroment/bin/common.sh
# Generic local configs for work and stuff
if [ -f $HOME/.rc_local ]; then
#echo "loading .rc_local"
source $HOME/.rc_local
fi
# ssh-agent requires SHORT_HOST so working this out here:
# Figure out the SHORT hostname
if [[ "$OSTYPE" = darwin* ]]; then
# macOS's $HOST changes with dhcp, etc. Use ComputerName if possible.
SHORT_HOST=$(scutil --get ComputerName 2>/dev/null) || SHORT_HOST="${HOST/.*/}"
else
SHORT_HOST="${HOST/.*/}"
fi
if find_alternatives ssh-agent > /dev/null; then
zstyle :omz:plugins:ssh-agent identities `ls ~/.ssh/id* | grep -v -E '\.[a-z]{3}$'`
source ~/.oh-my-zsh/plugins/ssh-agent/ssh-agent.plugin.zsh
fi
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below.
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH
HISTFILE=~/.histfilezsh
HISTSIZE=10000
SAVEHIST=10000
setopt appendhistory autocd extendedglob
# Setup Browser if not already set.
if [ -z "$BROWSER" ]
then
export BROWSER="pushbullet"
fi
pathadd $HOME/bin
pathadd "$HOME/.rvm/bin" append
pathadd "$HOME/.local/bin" append
pathadd "$HOME/go/bin/" append
export SHELL=`which zsh`
# Path to your oh-my-zsh installation.
export ZSH=$HOME/.oh-my-zsh
if [ -d $HOME/.pyenv/bin ]; then
pathadd "$HOME/.pyenv/bin"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
fi
# Set name of the theme to load. Optionally, if you set this to "random"
# it'll load a random theme each time that oh-my-zsh is loaded.
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
#ZSH_THEME="geometry/geometry"
#ZSH_THEME="pygmalion"
ZSH_THEME="powerlevel10k/powerlevel10k"
# Uncomment the following line to use case-sensitive completion.
# CASE_SENSITIVE="true"
# Uncomment the following line to use hyphen-insensitive completion. Case
# sensitive completion must be off. _ and - will be interchangeable.
# HYPHEN_INSENSITIVE="true"
# Uncomment the following line to disable bi-weekly auto-update checks.
# DISABLE_AUTO_UPDATE="true"
# Uncomment the following line to change how often to auto-update (in days).
# export UPDATE_ZSH_DAYS=13
# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"
# Uncomment the following line to disable auto-setting terminal title.
DISABLE_AUTO_TITLE="true"
# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"
# Uncomment the following line to display red dots whilst waiting for completion.
COMPLETION_WAITING_DOTS="true"
# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"
# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# HIST_STAMPS="mm/dd/yyyy"
# Would you like to use another custom folder than $ZSH/custom?
ZSH_CUSTOM=$HOME/projects/my-enviroment/zsh/custom
# Geometry COnfigurations
GEOMETRY_SEPARATOR=" "
GEOMETRY_STATUS_SYMBOL="▲" # default prompt symbol
GEOMETRY_STATUS_SYMBOL_ERROR="△" # displayed when exit value is != 0
GEOMETRY_STATUS_COLOR_ERROR="magenta" # prompt symbol color when exit value is != 0
GEOMETRY_STATUS_COLOR="default" # prompt symbol color
GEOMETRY_STATUS_COLOR_ROOT="red" # root prompt symbol color
GEOMETRY_STATUS_COLOR_HASH=true # color status symbol based on hostname
GEOMETRY_PROMPT=(geometry_hostname geometry_echo geometry_status geometry_path)
GEOMETRY_RPROMPT=(geometry_exec_time geometry_jobs geometry_git geometry_virtualenv geometry_node)
ZOXIDE_CMD_OVERRIDE="cd"
# 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.
fpath=($fpath $ZSH_CUSTOM/functions/)
#plugins=(git brew autojump gpg-agent history osx pass python rails rvm sudo tmux tmuxinator wd)
plugins=(history zoxide vi-mode wd fzf)
if find_alternatives git > /dev/null; then plugins+=git; fi
if find_alternatives brew > /dev/null; then plugins+=brew; fi
if find_alternatives gpg-agent > /dev/null; then plugins+=gpg-agent; fi
# TODO: osx
#
if find_alternatives pass > /dev/null; then plugins+=pass; fi
if find_alternatives python > /dev/null; then plugins+=python; fi
if find_alternatives ruby > /dev/null; then plugins+=(ruby rails rvm); fi
if [ -z "$DISABLE_QUICK_SUDO" ]; then plugins+=(sudo); fi
if find_alternatives tmux > /dev/null; then plugins+=(tmux); fi
if find_alternatives tmuxinator > /dev/null; then plugins+=(tmuxinator); fi
if [ -d $HOME/.asdf ]; then plugins+=(asdf); fi
if find_alternatives todoist > /dev/null; then plugins+=(todoist); fi
if find_alternatives timew > /dev/null; then plugins+=(timewarrior); fi
source $ZSH/oh-my-zsh.sh
if (find_alternatives cleartool > /dev/null); then
source $ZSH_CUSTOM/geometry_plugins/clearcase_prompt.zsh;
GEOMETRY_PROMPT_PLUGINS+=clearcase_prompt;
fi
source $ZSH_CUSTOM/geometry_plugins/display_prompt.zsh;
# User configuration
# export MANPATH="/usr/local/man:$MANPATH"
# You may need to manually set your language environment
export LANG=${LANG-en_GB.UTF-8}
# Compilation flags
# export ARCHFLAGS="-arch x86_64"
# ssh
# export SSH_KEY_PATH="~/.ssh/dsa_id"
# 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"
export EDITOR=$(find_alternatives "nvim" "vim" "vi")
export VISUAL=$EDITOR
alias vim="$EDITOR"
alias v="$EDITOR"
# nfty if possible
export AUTO_NTFY_DONE_IGNORE="vim screen top nvim mutt neomutt golab ssh mosh tmuxinator ruby python zsh fg ct tmux"
if find_alternatives ntfy > /dev/null; then eval "$(ntfy shell-integration -L30)"; fi
test -f /etc/profile.d/npm.sh && source /etc/profile.d/npm.sh
if [ -d $HOME/.dasht/bin ]; then
pathadd "$HOME/.dasht/bin"
export MANPATH=$HOME/.dasht/man:$MANPATH
fpath+=$HOME/.dasht/etc/zsh/completions/
fi
source $HOME/.keybinding
# Make sure completions are all loaded needed for autojump completion to work
autoload -U compinit && compinit > /dev/null 2<&1
# Testing out mcfly - if it works well need to download automatically in ansible and keep here.
eval "$(mcfly init zsh)"
export VAGRANT_WSL_ENABLE_WINDOWS_ACCESS=1
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/chrisfl/miniconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/home/chrisfl/miniconda3/etc/profile.d/conda.sh" ]; then
. "/home/chrisfl/miniconda3/etc/profile.d/conda.sh"
else
export PATH="/home/chrisfl/miniconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh