Files
Homelab/.zshrc
2026-02-04 22:12:07 +01:00

94 lines
5.6 KiB
Bash

# ─── Ensure Ruby Gem Binaries Are in PATH ──────────────────────────────
# Handles all Ruby versions for user-installed gems like colorls
setopt nullglob
for dir in "$HOME/.gem/ruby/"*/bin ; do
[[ -d $dir ]] && PATH="$PATH:$dir"
done
export PATH
#Root
sudo() {
if [[ "$1" == "nano" ]]; then
TERM=xterm command sudo nano "${@:2}"
else
command sudo "$@"
fi
}
# ─── Powerlevel10k Instant Prompt (Should stay close to the top) ───────
typeset -g POWERLEVEL9K_INSTANT_PROMPT=off
autoload -Uz compinit
compinit
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
# ─── Oh My Zsh and Theme Setup ────────────────────────────────────────
export ZSH="$HOME/.oh-my-zsh"
ZSH_THEME="powerlevel10k/powerlevel10k"
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
# ─── Plugins ──────────────────────────────────────────────────────────
plugins=(git zsh-autosuggestions zsh-syntax-highlighting zsh-completions)
source $ZSH/oh-my-zsh.sh
# ─── Aliases: Use colorls If Available, Fallback to ls ────────────────
if command -v colorls >/dev/null 2>&1; then
alias ls='colorls -d'
alias ll='colorls -l'
alias la='colorls -a'
alias sls='colorls'
else
alias ls='ls --color=auto'
alias ll='ls -l --color=auto'
alias la='ls -a --color=auto'
alias sls='ls'
fi
# ─── User Aliases and Functions ───────────────────────────────────────
alias up="/home/$USER/Homelab/up.sh"
alias pup="/home/$USER/Homelab/portainerup.sh"
alias p10="p10k configure"
alias fresh='source ~/.zshrc'
alias clear='clear && source ~/.zshrc'
alias portainerup='bash /home/$USER/Homelab/portainerup.sh'
alias nano='TERM=xterm nano'
alias ali='grep '^alias' ~/.zshrc'
# ─── Welcome Message and HomeDir Listing ──────────────────────────────
echo "┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐"
echo "| \x1b[32mWelcome Back My Master\x1b[0m |"
echo "└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘"
echo ""
fastfetch
echo ""
echo "┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐"
echo "| \x1b[32mEnjoy, here is your HomeDir\x1b[0m |"
echo "└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘"
echo " ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── "
sls
echo " ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── "
# ─── Optional: Additional User Configuration ──────────────────────────
# export LANG=en_US.UTF-8
# export EDITOR='nvim'
# export MANPATH="/usr/local/man:$MANPATH"
# export ARCHFLAGS="-arch $(uname -m)"
# ZSH_CUSTOM=/path/to/new-custom-folder
# HIST_STAMPS="mm/dd/yyyy"
# zstyle ':omz:update' mode auto
# zstyle ':omz:update' frequency 13
# End of .zshrc
export EDITOR="nano"
export VISUAL="nano"
## [Completion]
## Completion scripts setup. Remove the following line to uninstall
[[ -f /home/stiannor/.dart-cli-completion/zsh-config.zsh ]] && . /home/stiannor/.dart-cli-completion/zsh-config.zsh || true
## [/Completion]