129 lines
3.8 KiB
Bash
129 lines
3.8 KiB
Bash
eval "$(starship init zsh)"
|
|
|
|
export HISTFILE="$HOME/.zsh_history"
|
|
export HISTSIZE=1000
|
|
export SAVEHIST=5000
|
|
|
|
# =============================================================================
|
|
# Personalized Logging for Shell Setup
|
|
# =============================================================================
|
|
logging_enabled=false
|
|
log_dir="$HOME/log/$USER"
|
|
log_file="$log_dir/shell.log"
|
|
|
|
if [ -d "$log_dir" ]; then
|
|
export SHELL_LOG_FILE="$log_file"
|
|
logging_enabled=true
|
|
touch "$SHELL_LOG_FILE"
|
|
fi
|
|
|
|
# =============================================================================
|
|
# Common Environment Configuration
|
|
# =============================================================================
|
|
# Note: use vim here so that if Neovim isn't setup, we gracefully fall back.
|
|
export EDITOR=vim
|
|
|
|
# =============================================================================
|
|
# PATH
|
|
# =============================================================================
|
|
if [ -d "$HOME/bin" ]; then
|
|
export PATH="$HOME/bin:$PATH"
|
|
fi
|
|
|
|
if [ -d "$HOME/.local/bin" ]; then
|
|
export PATH="$HOME/.local/bin:$PATH"
|
|
fi
|
|
|
|
if [ -f "$HOME/.cargo/env" ]; then
|
|
source "$HOME/.cargo/env"
|
|
fi
|
|
|
|
if [ -f ~/.fzf.zsh ]; then
|
|
source ~/.fzf.zsh
|
|
fi
|
|
|
|
export RACKET_HOME="$HOME/opt/racket"
|
|
if [ -d "$RACKET_HOME" ]; then
|
|
export PATH="$RACKET_HOME/bin:$PATH"
|
|
fi
|
|
|
|
export BUILDKIT_HOME="$HOME/opt/buildkit"
|
|
if [ -d "$BUILDKIT_HOME" ]; then
|
|
export PATH="$HOME/opt/buildkit/bin:$PATH"
|
|
fi
|
|
|
|
export JAVA_HOME="$HOME/opt/jdk"
|
|
if [ -d "$JAVA_HOME/bin" ]; then
|
|
export PATH="$JAVA_HOME/bin:$PATH"
|
|
fi
|
|
|
|
export COURSIER_HOME="$HOME/.local/share/coursier"
|
|
if [ -d "$COURSIER_HOME/bin" ]; then
|
|
export PATH="$COURSIER_HOME/bin:$PATH"
|
|
fi
|
|
|
|
export N_PREFIX=/home/pfm/.n
|
|
if [ -d "$N_PREFIX/bin" ]; then
|
|
export PATH="$N_PREFIX/bin:$PATH"
|
|
fi
|
|
|
|
export GO_HOME="$HOME/go"
|
|
if [ -d "$GO_HOME/bin" ]; then
|
|
export PATH="$GO_HOME/bin:$PATH"
|
|
fi
|
|
|
|
# =============================================================================
|
|
# SSH Agent Management
|
|
# =============================================================================
|
|
ssh_agent_startup_file="$HOME/.startup/start-ssh-agent"
|
|
if [ -f "$ssh_agent_startup_file" ]; then
|
|
source "$ssh_agent_startup_file"
|
|
else
|
|
if $logging_enabled; then
|
|
echo "[warn] SSH Agent startup code missing at " \
|
|
"'$ssh_agent_startup_file': " \
|
|
"see git@git.sr.ht:~eidolon/scripts" >> "$log_file"
|
|
fi
|
|
fi
|
|
|
|
# =============================================================================
|
|
# Aliases
|
|
# =============================================================================
|
|
if command -v exa > /dev/null 2>&1; then
|
|
alias ls='exa'
|
|
alias ll='exa -l'
|
|
else
|
|
if $logging_enabled; then
|
|
echo "[warn] exa is not setup! Using the system ls" >> "$log_file"
|
|
fi
|
|
fi
|
|
|
|
if command -v nvim > /dev/null 2>&1; then
|
|
alias vim='nvim'
|
|
else
|
|
if $logging_enabled; then
|
|
echo "[warn] Neovim is not setup! Using the system vim" >> "$log_file"
|
|
fi
|
|
fi
|
|
|
|
# =============================================================================
|
|
# Scala/SBT Setup
|
|
# =============================================================================
|
|
if command -v sbt > /dev/null 2>&1; then
|
|
export SBT_OPTS="-XX:+UseG1GC -Xmx2048m"
|
|
fi
|
|
|
|
# =============================================================================
|
|
# Git Command Completion
|
|
# =============================================================================
|
|
|
|
zstyle ':completion:*:*:git:*' script ~/.zsh/git-completion.bash
|
|
fpath=(~/.zsh $fpath)
|
|
|
|
autoload -Uz compinit && compinit
|
|
|
|
# =============================================================================
|
|
# Enable Command Syntax Highlighting
|
|
# This must be the last item in this file.
|
|
# =============================================================================
|
|
source $HOME/src/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|