-
Notifications
You must be signed in to change notification settings - Fork 1
/
.zshrc
149 lines (120 loc) · 4.3 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
source "$HOME/.bashrc"
detect_os() {
## OS and Architecture
if [ -f /etc/os-release ]; then
# freedesktop.org and systemd
. /etc/os-release
OS="$NAME"
VER="$VERSION_ID"
elif type lsb_release >/dev/null 2>&1; then
# linuxbase.org
OS=$(lsb_release -si)
VER=$(lsb_release -sr)
elif [ -f /etc/lsb-release ]; then
# For some versions of Debian/Ubuntu without lsb_release command
. /etc/lsb-release
OS=$DISTRIB_ID
VER=$DISTRIB_RELEASE
elif [ -f /etc/debian_version ]; then
# Older Debian/Ubuntu/etc.
OS=Debian
VER=$(cat /etc/debian_version)
else
# Fall back to uname, e.g. "Linux <version>", also works for BSD, etc.
OS="$(uname -s)"
VER="$(uname -r)"
fi
export OS
export VER
}
detect_os
if [[ ${commands[adb]} ]]; then plugins+=(adb); fi
if [[ ${commands[nmap]} ]]; then plugins+=(nmap); fi
if [[ ${commands[git]} ]]; then plugins+=(git); fi
if [[ ${commands[docker]} ]]; then plugins+=(docker); fi
if [[ ${commands[docker - compose]} ]]; then plugins+=(docker-compose); fi
if [[ ${commands[vagrant]} ]]; then plugins+=(vagrant); fi
if [[ ${commands[rsync]} ]]; then plugins+=(rsync); fi
if [[ ${commands[sudo]} ]]; then plugins+=(sudo); fi
if [[ ${commands[minikube]} ]]; then
# shellcheck disable=SC1090
source <(minikube completion zsh)
fi
if [[ ${commands[kubectl]} ]]; then
# shellcheck disable=SC1090
source <(kubectl completion zsh)
fi
if [[ ${commands[k3d]} ]]; then
# shellcheck disable=SC1090
source <(k3d completion zsh)
fi
# plugins+=(zsh-completions)
zstyle ':notify:*' error-title "Command failed (in #{time_elapsed} seconds)"
zstyle ':notify:*' success-title "Command finished (in #{time_elapsed} seconds)"
zstyle :omz:plugins:ssh-agent agent-forwarding on
if [[ ${commands[dircolors]} ]] && [[ -f ~/.dircolors ]]; then
eval "$(dircolors ~/.dircolors)"
fi
# export HISTFILE="$HOME/.zhistory"
HISTSIZE=1000000
export SAVEHIST=$HISTSIZE
setopt EXTENDED_HISTORY
alias rcp='rsync -ahrt --info progress2'
alias rmv='rsync -ahrt --info progress2 --remove-sent-files'
if [[ ${commands[thefuck]} ]]; then eval "$(thefuck --alias)"; fi
if [[ ${commands[pbcopy]} ]]; then
alias pbcopy='xsel --clipboard --input'
alias pbpaste='xsel --clipboard --output'
fi
title() {
print -Pn "\e]0;$1\a"
}
export VISUAL="vim"
export EDITOR='vim'
export TZ='Europe/Brussels'
export DISABLE_AUTO_TITLE=true
# @see https://github.com/ohmyzsh/ohmyzsh/blob/master/lib/correction.zsh
export ENABLE_CORRECTION="false"
unsetopt correct_all
# Uncomment the following line to display red dots whilst waiting for completion.
export COMPLETION_WAITING_DOTS="true"
export AUTO_TITLE=false
export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on'
export CHEATCOLORS=true
export COMPOSE_DOCKER_CLI_BUILD=1
export DOCKER_BUILDKIT=1
export BUILDKIT_INLINE_CACHE=1
# ssh-agent omzsh should do the same
if [[ $OS = 'Linux' ]] && command -v ssh-agent &>/dev/null; then
# export SUDO_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
# Launch SSH agent if not running
if ! pgrep -f "ssh-agent" --uid "$(id -u)" &>/dev/null; then ssh-agent; fi
# Link the latest ssh-agent socket
mkdir -p ~/.ssh/
ln -sf "$(find "${TMPDIR:-/tmp}" -maxdepth 2 -type s -name 'agent*' -user "$(whoami)" -printf '%T@ %p\n' 2>/dev/null | sort -n | tail -1 | cut -d' ' -f2)" ~/.ssh/ssh_auth_sock
ssh-add -l >/dev/null || ssh-add
export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock
fi
if [[ $OS = Darwin ]]; then
export DISPLAY="$HOSTNAME:0"
fi
bindkey "^[[H" beginning-of-line
bindkey "^[[F" end-of-line
# Make ctrl+backpace and ctrl+delete work in zsh
bindkey '^H' backward-kill-word
bindkey '5~' kill-word
eval "$(direnv hook zsh)"
if [[ ${commands[fd]} ]]; then
export FZF_DEFAULT_COMMAND='fd --type f --hidden --follow --exclude .git --exclude node_modules --exclude vendor --exclude .mypy-cache'
fi
export ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE=fg=5
export ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern)
typeset -A ZSH_HIGHLIGHT_PATTERNS
#shellcheck disable=SC2190
# To have commands starting with `rm -rf` in red:
ZSH_HIGHLIGHT_PATTERNS+=('rm -rf *' 'fg=red,bold')
# https://stackoverflow.com/questions/6429515/stty-hupcl-ixon-ixoff
# Disable CTRL-Z
if [[ -t 0 ]]; then
stty -ixon -ixoff
fi