Files
dotfiles-zsh/.zshrc
chawley a192f828af Updated dotfiles-zsh
Added random quote lines directly to .zshrc, updated README, commented create-links and removed separate quote script
2025-04-07 18:56:44 -04:00

76 lines
3.1 KiB
Bash

# Exports
export PATH=$HOME/bin:/usr/local/bin:$HOME/.local/bin/:$PATH
export ZSH="$HOME/.oh-my-zsh"
ZSH_THEME="powerlevel10k/powerlevel10k"
POWERLEVEL9K_MODE="nerdfont-complete"
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
export ZSH_COMPDUMP=$ZSH/cache/completions/.zcompdump-$HOST
source $ZSH/oh-my-zsh.sh
# If rc.local exists, source it
[ -f ~/.local/rc.local ] && source ~/.local/rc.local
# User-defined Aliases and Functions
[[ ! -f ~/.shell_functions ]] || source ~/.shell_functions
[[ ! -f ~/.shell_aliases ]] || source ~/.shell_aliases
# ZSH History Options
# Reference: https://unix.stackexchange.com/questions/273861/unlimited-history-in-zsh
HISTFILE="$HOME/.zsh_history"
HISTSIZE=10000
SAVEHIST=10000
setopt BANG_HIST # Treat the '!' character specially during expansion.
setopt EXTENDED_HISTORY # Write the history file in the ":start:elapsed;command" format.
setopt INC_APPEND_HISTORY # Write to the history file immediately, not when the shell exits.
setopt SHARE_HISTORY # Share history between all sessions.
setopt HIST_EXPIRE_DUPS_FIRST # Expire duplicate entries first when trimming history.
setopt HIST_IGNORE_DUPS # Don't record an entry that was just recorded again.
setopt HIST_IGNORE_ALL_DUPS # Delete old recorded entry if new entry is a duplicate.
setopt HIST_FIND_NO_DUPS # Do not display a line previously found.
setopt HIST_IGNORE_SPACE # Don't record an entry starting with a space.
setopt HIST_SAVE_NO_DUPS # Don't write duplicate entries in the history file.
setopt HIST_REDUCE_BLANKS # Remove superfluous blanks before recording entry.
setopt HIST_VERIFY # Don't execute immediately upon history expansion.
setopt HIST_BEEP # Beep when accessing nonexistent history.
# Display Random Quote
if command -v curl >/dev/null 2>&1; then
QUOTE=$(curl -s https://files.planethawleywood.com/quotes.txt)
if [ -n "$QUOTE" ]; then
if command -v shuf >/dev/null 2>&1; then
QUOTE=$(echo "$QUOTE" | shuf -n 1)
fi
if command -v cowsay >/dev/null 2>&1; then
if command -v lolcat >/dev/null 2>&1; then
echo "$QUOTE" | cowsay -f tux | lolcat
else
echo "$QUOTE" | cowsay -f tux
fi
elif command -v lolcat >/dev/null 2>&1; then
echo "$QUOTE" | lolcat
else
echo "$QUOTE"
fi
fi
fi
# Instant Prompt Preamble
# 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
# If .fzf.zsh exists, source it
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
# If .p10k.zsh exists, source it
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
# If .zshrc.$USER exists, source it
[[ ! -f ~/.zshrc.$USER ]] || source ~/.zshrc.$USER
# If autojump installed, source it
[[ ! -f /usr/share/autojump/autojump.zsh ]] || source /usr/share/autojump/autojump.zsh