1
0
mirror of https://git.decapod.one/brethil/dotfiles synced 2024-10-31 18:01:30 +01:00
dotfiles/brethil_dotfile.sh
2021-10-07 19:29:21 +02:00

118 lines
3.5 KiB
Bash
Executable File

# vim:ft=zsh ts=2 sw=2 sts=2
export LANG=en_US.UTF-8
# Check for update, set DISABLE_UPDATE_PROMPT=true to disable the prompt and automatically update
if [ "$DISABLE_AUTO_UPDATE" != "true" ]; then
source "${DOTFILES}/check_for_update.sh"
fi
# theme-related variables
export ZSH_CUSTOM="$DOTFILES"
export ZSH_THEME="brethil"
export DISABLE_UNTRACKED_FILES_DIRTY=true
export VIRTUAL_ENV_DISABLE_PROMPT=true
# Source all zsh plugins
source <(antibody init)
export ANTIBODY="$(antibody home)"
antibody bundle < "$DOTFILES/antibody_plugins.txt"
if [[ "$(command -v systemctl)" ]]; then
antibody bundle robbyrussell/oh-my-zsh path:plugins/systemd
fi
if [[ "$(command -v pacman)" ]]; then
antibody bundle robbyrussell/oh-my-zsh path:plugins/archlinux
elif [[ "$(command -v apt)" ]]; then
antibody bundle robbyrussell/oh-my-zsh path:plugins/debian
fi
if [[ "$(command -v dvc )" ]]; then
eval `dvc completion --shell zsh`
fi
function lazy_load_omz_plugins {
# Lazily load omz plugins defined below when they are first invoked.
# This speeds up zsh loading time and reduces bloat whenever they are
# not used
#
local cmds=(docker docker-compose kubectl pip pylint)
local omz="robbyrussell/oh-my-zsh path:plugins"
local cmd
for cmd in $cmds ; do
if (( $+commands[$cmd] )) ; then
alias $cmd="antibody bundle ${omz}/${cmd} && unalias ${cmd} && $cmd"
fi
done
}
#lazy_load_omz_plugins
# Setup oh-my-zsh path
export ZSH="$(antibody path robbyrussell/oh-my-zsh)"
# Enable zsh autocorrection
setopt CORRECT_ALL
# share history across multiple zsh sessions
setopt SHARE_HISTORY
# append to history
setopt APPEND_HISTORY
# adds commands as they are typed, not at shell exit
setopt INC_APPEND_HISTORY
# Execute commands without verifying after prompt substitution (!!, !$, etc)
setopt NO_HIST_VERIFY
## Misc environment variables
# https://www.xkcd.com/378/
export EDITOR="vim" # if antibody_plugins.txt includes robbyrussell/oh-my-zsh path:plugins/vi-mode, this also sets `bindkey -v`
export VI_MODE_RESET_PROMPT_ON_MODE_CHANGE=true # refresh prompt on every mode change
# Fix delete (delete! not backspace) key
bindkey -a '^[[3~' delete-char
export KEYTIMEOUT=1 # reduce the transition time between vim modes to 0.1s
export HISTSIZE=10000000
# less options
export LESS='-xRF-j12' # -j12: displays 12 lines before search results with / and ?
if [[ "$(command -v bat)" ]]; then
alias cat=bat
export BAT_THEME="gruvbox-dark"
export BAT_PAGER="less $LESS"
export PAGER=bat
fi
if [[ $SSH_CLIENT ]]; then
export SSH_AUTH_SOCK=$HOME/.ssh/ssh_auth_sock
fi
alias esource='$EDITOR $HOME/.zshrc'
alias resource='source $HOME/.zshrc'
alias dotedit='$EDITOR $DOTFILES/brethil_dotfile.sh'
# Custom definitions files
alias funedit='$EDITOR ~/.dotfiles_functions.sh'
alias aledit='$EDITOR ~/.dotfiles_aliases.sh'
export p="${HOME}/projects"
# Extras
functions_file=$DOTFILES/functions.sh # Function definitions
aliases_file=$DOTFILES/aliases.sh # Aliases definitions
colors_file=$DOTFILES/colors.sh # Colors definitions
# Source extras
if [ -f "$functions_file" ]; then source "$functions_file"; else echo "[brethil-dotfiles] Couldn't load functions: $functions_file"; fi
if [ -f "$aliases_file" ]; then source "$aliases_file"; else echo "[brethil-dotfiles] Couldn't load aliases: $aliases_file"; fi
if [ -f "$colors_file" ]; then source "$colors_file"; else echo "[brethil-dotfiles] Couldn't load colors: $colors_file"; fi
### SETUP PATHS ####
export PATH=$PATH:$HOME/bin