You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

145 lines
4.1 KiB
Plaintext

#
# ~/.bashrc
#
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
[[ "$(whoami)" = "root" ]] && return
[[ -z "$FUNCNEST" ]] && export FUNCNEST=100 # limits recursive functions, see 'man bash'
## Use the up and down arrow keys for finding a command in history
## (you can write some initial letters of the command first).
bind '"\e[A":history-search-backward'
bind '"\e[B":history-search-forward'
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# ---------------------------------------------------------------------------
# EDITOR
# ---------------------------------------------------------------------------
if [ -f "$HOME/.local/bin/nvim" ]; then
export EDITOR=$HOME/.local/bin/nvim
export SVN_EDITOR=$HOME/.local/bin/nvim
export GIT_EDITOR=$HOME/.local/bin/nvim
export VISUAL=$HOME/.local/bin/nvim
alias vi='$HOME/.local/bin/nvim'
elif [ -f "/usr/bin/vim" ]; then
export EDITOR=/usr/bin/vim
export SVN_EDITOR=/usr/bin/vim
export GIT_EDITOR=/usr/bin/vim
export VISUAL=/usr/bin/vim
alias vi='/usr/bin/vim'
fi
# ---------------------------------------------------------------------------
# PROMPT
# ---------------------------------------------------------------------------
if [ -f "/usr/bin/starship" ]; then
eval "$(starship init bash)"
else
# set a minimalist prompt
red='\[\e[0;31m\]' # Red
green='\[\e[0;32m\]' # Green
blue='\[\e[0;34m\]' # Bold Blue
boldred='\[\e[1;31m\]' # Bold Red
reset='\[\e[0m\]' # Text Reset
if [ "$USER" = "root" ] ; then
# $bold$red
PROMPT_USER_COLOR=$boldred
PROMPT_SYMBOL="#"
else
PROMPT_USER_COLOR=$green
PROMPT_SYMBOL="$"
fi
if [[ -n "$SSH_CLIENT$SSH2_CLIENT$SSH_TTY" ]] ; then
PROMPT_SSH="@\h"
else
PROMPT_SSH=""
fi
PS1="$PROMPT_USER_COLOR\u$PROMPT_SSH $blue\w$reset $PROMPT_SYMBOL "
if [ -f "$HOME/.bash-git-prompt/gitprompt.sh" ]; then
GIT_PROMPT_ONLY_IN_REPO=1
GIT_PROMPT_IGNORE_SUBMODULES=1
GIT_PROMPT_WITH_VIRTUAL_ENV=0
GIT_PROMPT_THEME=Solarized_Yax
source $HOME/.bash-git-prompt/gitprompt.sh
fi
fi
# ---------------------------------------------------------------------------
# ALIASES
# ---------------------------------------------------------------------------
# The ubiquitous 'll': directories first, with alphanumeric sorting
alias ll="ls -lv --group-directories-first --ignore=.." # show long listing but no hidden dotfiles except "."
alias la='ls -lav'
alias rm='rm --interactive --verbose'
alias mv='mv --interactive --verbose'
alias cp='cp --verbose --interactive'
alias wget='wget -c'
alias dmesg='dmesg -T'
alias grep='grep --color'
alias serve="python3 -m $(python3 -c 'import sys; print("http.server" if sys.version_info[:2] > (2,7) else "SimpleHTTPServer")')"
alias ta='tmux attach'
alias tkill="for s in \$(tmux list-sessions | awk -F ':' '{print \$1}' | fzf); do tmux kill-session -t \$s; done;"
alias tiga='tig --all'
# -------------------------------------------------------------
# PYTHON
# -------------------------------------------------------------
[[ -s $HOME/.pythonz/etc/bashrc ]] && source $HOME/.pythonz/etc/bashrc
if [ -f "$HOME/.pythonz/pythons/CPython-3.9.1/bin/python" ]; then
export PATH="$HOME/.pythonz/pythons/CPython-3.9.1/bin:$PATH"
fi
if [ -f "$HOME/.pythonz/pythons/CPython-3.9.1/bin/pew" ]; then
source "$(pew shell_config)"
fi
if [ -d "$HOME/.poetry/bin" ]; then
export PATH="$HOME/.poetry/bin:$PATH"
fi
# -------------------------------------------------------------
# Source .bashrc.d files
# -------------------------------------------------------------
if [ -d "$HOME/.local/bin" ]; then
export PATH="$HOME/.local/bin:$PATH"
fi
if [ -d "$HOME/.bashrc.d/" ]; then
for file in ~/.bashrc.d/*.bashrc; do
. "$file"
done
fi