1
0
Fork 0
mirror of https://github.com/MillironX/dotfiles.git synced 2024-12-18 15:38:18 +00:00
dotfiles/executable_dot_zshrc

188 lines
5.3 KiB
Text
Raw Normal View History

2021-08-24 23:16:19 +00:00
# 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
# Load the antigen library
if [[ ! -f "$HOME/.antigen.zsh" ]]; then
curl -L git.io/antigen > $HOME/.antigen.zsh
fi
source "$HOME/.antigen.zsh"
# Load the oh-my-zsh library
antigen use oh-my-zsh
# Default bundles
antigen bundle git
antigen bundle gitignore
antigen bundle colored-man-pages
antigen bundle cp
antigen bundle screen
antigen bundle npm
antigen bundle bundler
antigen bundle extract
# Custom bundles
antigen bundle zsh-users/zsh-syntax-highlighting
antigen bundle zsh-users/zsh-autosuggestions
antigen bundle zsh-users/zsh-completions
antigen bundle esc/conda-zsh-completion
antigen bundle RobSis/zsh-completion-generator
antigen bundle kloetzl/biozsh
antigen bundle millironx/cowsay-cows
DEFAULT_USER="$USER"
# Theming: if I have a nerd fond, use it to the fullest extent possible
# If not, check for basic powerline, then fall back to text-based
# The presence of nerd fonts and/or powerline fonts will be designated
# by the presence of a ".nf" and ".powerline" file in the home directory,
# respectively
source /etc/os-release
if [[ -f "$HOME/.nf" ]]; then
# Nerd font config flag set
antigen theme romkatv/powerlevel10k
else
if [[ -f "$HOME/.powerline" ]]; then
# Powerline config flag set
antigen theme https://gist.github.com/e95df0a0aa6d1721e85b905399971515.git believer
else
# Powerline config flag not set
antigen theme https://gist.github.com/efde5e8d507bd3e1e046198b69d579f8.git gianu-improved
fi
fi
# oh-my-zsh configuration settings
HYPHEN_INSENSITIVE="true"
ENABLE_CORRECTION="true"
COMPLETION_WAITING_DOTS="true"
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('$HOME/miniconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "$HOME/miniconda3/etc/profile.d/conda.sh" ]; then
. "$HOME/miniconda3/etc/profile.d/conda.sh"
else
export PATH="$HOME/miniconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
# >>> rbenv initialize >>>
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"
# <<< rbenv initialize <<<
# >>> n initalize >>>
export N_PREFIX=$HOME/.n
export PATH="$HOME/.n/bin:$PATH"
# <<< n initialize <<<
# >>> direnv initalize >>>
eval "$(direnv hook zsh)"
# <<< direnv initalize <<<
# >>> homebrew initalize >>>
export fpath=(/home/linuxbrew/.linuxbrew/share/zsh/site-functions $fpath)
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
# <<< homebrew initalize <<<
# Tell Antigen that you're done
antigen apply
# User configuration
# Setup bash completion support
# (zsh completion support is handled by oh-my-zsh)
autoload -U bashcompinit
bashcompinit
# Add pipx packages to PATH
export PATH="$PATH:$HOME/.local/bin"
# Enable pipx completions
if [[ $(command -v pipx) ]]; then
eval "$(register-python-argcomplete pipx)"
fi
# Preferred editor for local and remote sessions
if [[ $(command -v nano) ]]; then
export EDITOR=nano
fi
# Set a cool new pager with color support
if [[ $(command -v most) ]]; then
export PAGER=most
fi
# Fix screen wrapping if on a local terminal
# (Will cause problems if set twice, i.e. in
# both local and remote sessions)
if [ ! -n "$SSH_CONNECTION" ]; then
ZLE_RPROMPT_INDENT=0
fi
# Personal aliases
alias zshconfig="$EDITOR ~/.zshrc"
alias ohmyzsh="$EDITOR ~/.oh-my-zsh"
alias zshrefresh="source ~/.zshrc"
# Dotfiles sync command
alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME'
# Check for Ubuntu's name for bat
if [[ $(command -v batcat) ]]; then
alias bat="batcat"
fi
# Replace cat with bat
if [[ $(command -v bat) ]]; then
alias cat="bat"
export BAT_PAGER="less -RF"
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
export MANROFFOPT="-c"
fi
# Replace ls with lsd
if [[ $(command -v lsd) ]]; then
alias ls="lsd"
fi
# Add notification support for long-running processes
if [[ $(command -v ntfy) ]]; then
eval "$(ntfy shell-integration --longer-than 30)"
export AUTO_NTFY_DONE_IGNORE="vim nano emacs zshconfig screen tmux ssh top htop less more most nethogs 'singularity shell' julia man"
fi
# Replace VSCode with pure FOSS alternative
if [[ $(command -v codium) ]] && [[ ! $(command -v code) ]]; then
alias code="codium"
fi
# Make forgetting sudo less painful
alias please='sudo $(fc -ln -1)'
# Make and change directories in one easy step
# nd = New Directory
nd () {
mkdir "$1"
cd "$1"
}
# Make running programs on the GPU less painful
alias nrun='__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus="NVIDIA_only"'
# Set the Nextflow enviroment caches
export NXF_HOME="$HOME/.nextflow"
export NXF_CONDA_CACHEDIR="$NXF_HOME/conda"
export NXF_SINGULARITY_CACHEDIR="$NXF_HOME/singularity"
export NXF_CHARLIECLOUD_CACHEDIR="$NXF_HOME/charlie"
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh