94 lines
3.2 KiB
Bash
94 lines
3.2 KiB
Bash
|
|
# 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
|
|
|
|
# autoload -Uz compinit
|
|
# compinit
|
|
export LC_ALL=en_US.UTF-8
|
|
export LANG=en_US.UTF-8
|
|
# autoload -Uz compinit; compinit; _comp_options+=(globdots);
|
|
|
|
# ssh using a new window when we are in TMUX
|
|
ssh() {
|
|
if [ -n "${TMUX:-}" ]; then
|
|
# Extract the destination host from the command arguments
|
|
local dest_user_host=$(
|
|
printf "%s " "$@" | awk 'match($0, /[a-zA-Z0-9_.-]+@[a-zA-Z0-9_.-]+/) {print substr($0,RSTART,RLENGTH)}'
|
|
)
|
|
|
|
# Rename tmux window and pane if possible
|
|
(
|
|
set +e # Continue even if rename fails
|
|
tmux display-message -p "#{pane_id}" > /dev/null && tmux rename-window "$dest_user_host"
|
|
tmux rename-pane "$dest_user_host" 2>/dev/null || true
|
|
) &> /dev/null
|
|
|
|
command ssh "$@"
|
|
|
|
# Restore automatic renaming (if enabled)
|
|
tmux set-window-option automatic-rename on > /dev/null 2>&1 || true
|
|
else
|
|
command ssh "$@"
|
|
fi
|
|
}
|
|
|
|
|
|
# User configuration
|
|
export DOT="~/.dotfiles"
|
|
alias vim='vim -S ~/.vimrc'
|
|
alias nvim='nvim'
|
|
alias uvupdate='while read line; do [[ -n "$line" && ! "$line" =~ ^[[:space:]]*# ]] && uv pip install "$line" --upgrade; done < requirements.txt'
|
|
# alias brew='env PATH="${PATH//$(pyenv root)\/shims:/}" brew'
|
|
export CLICOLOR=1
|
|
export LSCOLORS=ExGxBxDxCxEgEdxbxgxcxd
|
|
|
|
export EDITOR="$VISUAL"
|
|
export VISUAL='nvim'
|
|
export PYTHONPATH="/opt/homebrew/bin/python3:$PYTHONPATH"
|
|
# export PYENV_ROOT="$HOME/.pyenv"
|
|
# command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
|
|
|
|
# Function to Correctly Source $VIRTUAL_ENV for Neovim
|
|
function nvimvenv {
|
|
if [[ -e "$VIRTUAL_ENV" && -f "$VIRTUAL_ENV/bin/activate" ]]; then
|
|
source "$VIRTUAL_ENV/bin/activate"
|
|
command nvim "$@"
|
|
deactivate
|
|
else
|
|
command nvim "$@"
|
|
fi
|
|
}
|
|
|
|
export PATH="$PATH:$HOME/.rvm/bin"
|
|
|
|
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
|
|
NPM_PACKAGES=/Users/$USERNAME/.npm-packages
|
|
export PATH="/opt/homebrew/sbin:$PATH"
|
|
export PATH="/opt/homebrew/bin:$PATH"
|
|
export PATH="$NPM_PACKAGES/bin:$PATH"
|
|
source /opt/homebrew/share/powerlevel10k/powerlevel10k.zsh-theme
|
|
|
|
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
|
|
# [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
|
|
source ~/.dotfiles/zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
|
|
source ~/.dotfiles/zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
|
. "$HOME/.cargo/env"
|
|
export PATH="/usr/local/opt/openssl/bin:$PATH"
|
|
. "$HOME/.local/bin/env"
|
|
|
|
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
|
|
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
|
|
|
|
eval "$(uv generate-shell-completion zsh)"
|
|
|
|
# export NVM_DIR="$HOME/.nvm"
|
|
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
|
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
|
|
|
|
# To customize prompt, run `p10k configure` or edit ~/.dotfiles/zsh/.p10k.zsh.
|
|
[[ ! -f ~/.dotfiles/zsh/.p10k.zsh ]] || source ~/.dotfiles/zsh/.p10k.zsh
|