-
Notifications
You must be signed in to change notification settings - Fork 0
/
.zshrc.legacy
140 lines (115 loc) · 3.34 KB
/
.zshrc.legacy
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
_cache_key_file() {
local cache_dir=${CACHE_DIR:-$HOME/tmp}
local key=${1}.cache
echo $cache_dir/$key
}
cache_rm() {
local cache_file=$(_cache_key_file $key)
rm $cache_file
}
cache_cmd() {
local key=$1
local cache_file=$(_cache_key_file $key)
local dir=$(dirname $cache_file)
test -d $dir || mkdir -p $dir
[[ ! -f $cache_file ]] || return 0
local cmds="$(cat /dev/stdin)"
set -x
eval "$cmds"
touch $cache_file
set +x
}
cache_cmd link-dotflies <<'EOL'
DOTFILES_PATH=$HOME/dotfiles
test -d $DOTFILES_PATH || \
git clone https://github.com/aweis89/dotfiles.git $DOTFILES_PATH
ln -sf $DOTFILES_PATH/.zshrc ${ZDOTDIR:-$HOME}/.zshrc
ln -sf $DOTFILES_PATH/.tmux.conf ~/.tmux.conf
ln -sf $DOTFILES_PATH/nvim ~/.config/nvim
ln -sf $DOTFILES_PATH/alacritty.yml ~/.config/alacritty/alacritty.yml
EOL
antigen_dst=~/.local/share/zsh/antigen.zsh
cache_cmd antigen <<'EOL'
mkdir -p $(dirname $antigen_dst)
curl -L git.io/antigen > $antigen_dst
EOL
# shellcheck source=~/.local/share/zsh/antigen.zsh
source "$antigen_dst"
# Load the oh-my-zsh's library.
antigen use oh-my-zsh
antigen bundle ohmyzsh/ohmyzsh
# Bundles from the default repo (robbyrussell's oh-my-zsh).
antigen bundle command-not-found
antigen bundle fzf
antigen bundle git
antigen bundle lein
antigen bundle pyenv
antigen bundle z
# antigen bundle RobSis/zsh-completion-generator
antigen bundle zsh-users/zsh-syntax-highlighting
antigen bundle zsh-users/zsh-autosuggestions
# antigen theme simple
eval "$(starship init zsh)"
# Tell Antigen that you're done.
antigen apply
source_present() {
local -r file="$1"
test -r $file && . $file
}
source_present $HOME/.zshrc.local
source_present $HOME/.zsh/completion.zsh
source_present $HOME/.zsh/history.zsh
source_present $HOME/.zsh/alias.zsh
source_present $HOME/.zsh/kubectl.zsh
load_brew() {
dist=$(uname -s)
if [[ "${dist}" =~ "linux" ]]; then
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" 1>/dev/null
fi
}
# brew
export PATH=/opt/homebrew/bin:$HOME/.local/bin:$PATH
# editor
export VISUAL=nvim
export EDITOR=$VISUAL
# Brew package manager setup, assumes ruby is installed
cache_cmd brewsetup <<'EOL'
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
load_brew
brew tap Homebrew/bundle
# Insall all deps from Brewfile
brew bundle --file $DOTFILES_PATH/Brewfile
EOL
# Completion init
autoload -U +X compinit
compinit
# Fallback to using --help for autocompletion
compdef _gnu_generic
# Uncomment to enable for all commands
# compdef _gnu_generic $(ls $(echo $PATH | sed 's/:/ /g'))
# alias bat='bat --theme $(cat $HOME/tmp/bat-theme)'
light() {
kitty_set_theme ~/.local/share/nvim/lazy/tokyonight.nvim/extras/kitty/tokyonight_day.conf
}
dark() {
kitty_set_theme ~/.local/share/nvim/lazy/tokyonight.nvim/extras/kitty/tokyonight_night.conf
}
kitty_set_theme() {
theme_file=$1
mkdir -p ~/.local/share/kitty
ln -sf $theme_file ~/.local/share/kitty/current-theme.conf
ps -ef | grep kitty | grep -v grep | awk '{print $2}' | xargs kill -s SIGUSR1
}
auto_start_tmux() {
session=${1:-default}
if test -z "$TMUX"; then
tmux new-session -ds $session
tmux attach -t $session
fi
}
auto_start_tmux
export PATH="$HOME/.tfenv/bin:$PATH"
export PATH="/opt/homebrew/opt/openssl@3/bin:$PATH"
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"