-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.zshrc
More file actions
201 lines (181 loc) · 6.17 KB
/
.zshrc
File metadata and controls
201 lines (181 loc) · 6.17 KB
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
# ----------------------- ZSH ----------------------- #
export ZSH="$HOME/.oh-my-zsh"
ZSH_THEME="powerlevel10k/powerlevel10k"
plugins=(
git
docker
tmux
zsh-syntax-highlighting
zsh-autosuggestions
)
source $ZSH/oh-my-zsh.sh
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
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
export PROMPT_EOL_MARK=
# ----------------------- FUNC ----------------------- #
dotsync() {
cd ${HOME}/dotfiles && \
git sync && \
cd -
}
# ----------------------- OS ----------------------- #
if [[ "$OS" == "Linux" ]]; then
[ -f /usr/share/autojump/autojump.sh ] && . /usr/share/autojump/autojump.sh
elif [[ "$OS" == "Darwin" ]]; then
[ -f /opt/homebrew/etc/profile.d/autojump.sh ] && . /opt/homebrew/etc/profile.d/autojump.sh
code () { VSCODE_CWD="$PWD" open -n -b "com.microsoft.VSCode" --args $* ;}
fi
# ----------------------- TERM ----------------------- #
if [[ "$TERM" == "xterm-kitty" ]] && command -v kitten &> /dev/null; then
alias ssh="kitten ssh"
alias icat="kitten icat"
fi
if [[ "$TERM" == "xterm-ghostty" ]] &> /dev/null; then
function ssh_init {
infocmp -x xterm-ghostty | ssh $1 -- tic -x -
}
fi
# ----------------------- UTIL ----------------------- #
unalias ls 2>/dev/null
ls() {
command eza --icons "$@"
}
tree() {
command eza --tree --icons "$@"
}
alias rsync="rsync -avhzP -e ssh"
alias tn="tmux new -s"
alias tc="tmux -CC new -d -s"
alias tl="tmux ls"
alias ta="tmux attach -t"
skg() {
local name=$1
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_${1} -N "" -C "zerohertz@${1}"
}
# ----------------------- GPG ----------------------- #
export GPG_TTY=$TTY
# killall gpg-agent
# gpg-agent --daemon
gpgctl() {
local act=$1
local key=$2
case "$act" in
ls)
echo "===================== Public Key ====================="
gpg --list-keys
echo "===================== Secret Key ====================="
gpg --list-secret-keys
;;
delete)
echo "===================== Public Key ====================="
gpg --delete-keys $key
echo "===================== Secret Key ====================="
gpg --delete-secret-keys $key
;;
export)
echo "===================== Public Key ====================="
gpg --export $key > gpg-public-key.gpg
echo "===================== Secret Key ====================="
gpg --export-secret-keys $key > gpg-secret-key.gpg
echo "===================== Ownertrust ====================="
gpg --export-ownertrust > gpg-trust-settings.txt
;;
import)
echo "===================== Public Key ====================="
gpg --import gpg-public-key.gpg
echo "===================== Secret Key ====================="
gpg --import gpg-secret-key.gpg
echo "===================== Ownertrust ====================="
gpg --import-ownertrust gpg-trust-settings.txt
;;
*)
echo "Wrong usage"
;;
esac
}
# ----------------------- DOCKER ----------------------- #
dev() {
local name="${1:-tmp}"
local port="${2:-6666}"
docker run \
--name $name \
--platform linux/amd64 \
-p ${port}:${port} \
-v ./:/workspace \
-d \
zerohertzkr/dev \
"while true; do echo \"Starting Neovim server on port ${port}...\"; nvim --headless --listen 0.0.0.0:${port}; echo 'Neovim server exited. Restarting...'; sleep 1; done"
}
de() {
local name=$1
docker exec -it $name zsh
}
alias drmc="docker ps -a | grep Exit | cut -d ' ' -f 1 | xargs docker rm"
alias drmi="docker image prune -a"
# k8s_build() {
# local image_name="$1"
# docker build -t "$image_name" .
# docker save -o "$image_name".tar "$image_name"
# sudo ctr -n k8s.io i import "$image_name".tar
# sudo ctr -n k8s.io i ls | grep "$image_name"
# }
# ----------------------- K8S ----------------------- #
# alias crmc="sudo crictl ps -a | grep 'Exited' | awk '{print $1}' | xargs -I {} sudo crictl rm {} || true"
alias crmi="sudo crictl rmi --prune"
_load_kubeadm() {
source <(kubeadm completion zsh)
}
_lazy_load _load_kubeadm kubeadm
# _load_kubectl() {
# }
# _lazy_load _load_kubectl kubectl kubecolor
if type -p kubectl &> /dev/null; then
source <(kubectl completion zsh)
compdef kubecolor=kubectl
alias k="kubecolor"
alias ku="kubecolor config use-context"
alias kgc="kubecolor config get-contexts"
alias wk="watch kubecolor"
alias kg="kubecolor get"
alias kgp="kubecolor get po"
alias kc="kubecolor create"
alias ka="kubecolor apply -f"
alias kd="kubecolor delete"
alias kdn="kubecolor delete ns"
alias kdf="kubecolor delete po --force"
alias kex="kubecolor exec -it"
fi
# ----------------------- C++ ----------------------- #
alias cpp="g++ main.cpp -std=c++23 -o main"
# ----------------------- Go ----------------------- #
alias gg="go run main.go"
# ----------------------- JAVA ----------------------- #
alias jj="java Main.java"
# ----------------------- PYTHON ----------------------- #
if [[ -f "${UV_PYTHON_INSTALL_DIR}/main/bin/activate" && "$(which python3)" != "${UV_PYTHON_INSTALL_DIR}/main/bin/python3" ]]; then
source "${UV_PYTHON_INSTALL_DIR}/main/bin/activate"
fi
# ----------------------- NODE ----------------------- #
# ----------------------- UFW ----------------------- #
alias us="sudo ufw status numbered"
alias uall="sudo ufw allow"
alias udel="sudo ufw delete"
alias ufw-on="sudo ufw enable"
alias ufw-off="sudo ufw disable"
# ----------------------- FAIL2BAN ----------------------- #
alias jail="sudo fail2ban-client status sshd"
# ----------------------- Neovide ----------------------- #
alias nvide="neovide"
nssh () {
local server="${1:-zerohertz}"
local port="${2:-6666}"
ssh -t -L ${port}:localhost:${port} ${server} nvim --headless --listen localhost:${port}
}
# ----------------------- SDKMAN ----------------------- #
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
if [[ $EUID -ne 0 ]]; then
export SDKMAN_DIR="$HOME/.sdkman"
[[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh"
fi