-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathzshrc-example
85 lines (72 loc) · 1.99 KB
/
zshrc-example
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
# Disable globbing for performance
set -o noglobdots
set -o noglobalrcs
# Oh My Zsh configuration
export ZSH="$HOME/.oh-my-zsh"
ZSH_THEME="chaos"
plugins=(git)
# Function to improve performance
zsh_optimized_setup() {
autoload -Uz compinit promptinit
[[ -f ~/.zcompdump ]] && compinit -C
promptinit
}
# Autoenv setup
autoload -Uz add-zsh-hook
auto_source_venv() {
local venv_dir
for venv_dir in .venv venv; do
[[ -d $venv_dir ]] && { source "$venv_dir/bin/activate"; return; }
done
}
add-zsh-hook chpwd auto_source_venv
# Environment variables
export EDITOR=nvim
export GPG_TTY=$(tty)
export SSH_AUTH_SOCK=/run/user/1000/ssh-agent.socket
export XDG_RUNTIME_DIR=/run/user/1000
export PULSE_RUNTIME_PATH=/run/user/1000/pulse
export NIX_PATH=nixpkgs=https://nixos.org/channels/nixos-unstable
export NVM_DIR="$HOME/.nvm"
# PATH adjustments (typeset for efficiency)
typeset -U path
path=(
$HOME/.cargo/bin
$HOME/go/bin
$HOME/.bun/bin
$HOME/.local/bin
/usr/lib/node_modules/.bin
$HOME/.npm-global/bin
$path
)
# Aliases
alias vi=nvim
alias lx=lsix
alias x=joshuto
alias rotko="cd ~/rotko/unlabored/"
alias config="cd ~/rotko/config/"
alias rbl='cd ~/rome/environments/ansible/'
# Key bindings
bindkey -v
bindkey '^Z' vi-cmd-mode
# Conditional sources (use [[ for efficiency)
[[ -s "$HOME/.bun/_bun" ]] && source "$HOME/.bun/_bun"
[[ -s "$HOME/.cargo/env" ]] && source "$HOME/.cargo/env"
[[ -e "$HOME/.nix-profile/etc/profile.d/nix.sh" ]] && source "$HOME/.nix-profile/etc/profile.d/nix.sh"
# NVM setup (lazy loading for better performance)
if [[ -s "$NVM_DIR/nvm.sh" ]]; then
nvm() {
unset -f nvm
source "$NVM_DIR/nvm.sh"
source "$NVM_DIR/bash_completion"
nvm "$@"
}
fi
# Optimized setup execution
zsh_optimized_setup
# Load Oh My Zsh
source "$ZSH/oh-my-zsh.sh"
# Source secret environment variables (skip if not found)
[[ -f "$HOME/.secrets" ]] && source "$HOME/.secrets"
# Performance: Compile zshrc if modified
[[ "$HOME/.zshrc" -nt "$HOME/.zshrc.zwc" ]] && zcompile "$HOME/.zshrc"