Files
.dotfiles/.bashrc

84 lines
2.5 KiB
Bash

#!/usr/bin/env bash
# shellcheck disable=SC1090,SC1091
#
# ~/.bashrc
#
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
[[ -z "${PS1-}" ]] && return
# set PS1
PS1=
PS1="$PS1"'\[\033[01;35m\]\u@\h' # user@host
PS1="$PS1"'\[\033[00m\]:' # seperator
PS1="$PS1"'\[\033[01;34m\]\w' # working directory
PS1="$PS1"'\[\033[01;93m\]$(_lazy_git_ps1)' # github branch
PS1="$PS1"'\[\033[00m\]\$ ' # shell sign
# history settings
HISTCONTROL=ignoreboth # don't put duplicate lines or lines starting with space in the history.
HISTSIZE=1000
HISTFILESIZE=2000
export MANPAGER='nvim +Man!' # use neovim as a manual pager
export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' # coloured GCC warnings and errors
export EDITOR=nvim # use neovim as an editor
export VISUAL=nvim # use neovim for visual-based editors
# export Microsoft's bullshit outta here
export DOTNET_CLI_TELEMETRY_OPTOUT=1
export VCPKG_DISABLE_METRICS=1
# vcpkg shit
export VCPKG_ROOT=$HOME/.local/share/vcpkg
export PATH=$VCPKG_ROOT:$PATH
source /home/user/.local/share/vcpkg/scripts/vcpkg_completion.bash &>/dev/null
# check the window size after each command (and if necessary, the values of LINES and COLUMNS)
shopt -s checkwinsize
# wrapper for lazily loading __git_ps1 whenever it is actually needed
_lazy_git_ps1() {
if [[ -z $__GIT_PROMPT_SOURCED ]]; then
if [[ -d .git || $(git rev-parse --is-inside-work-tree 2>/dev/null) == true ]]; then
source /usr/share/bash-completion/completions/git &>/dev/null
source /usr/share/git/completion/git-prompt.sh &>/dev/null
export __GIT_PROMPT_SOURCED=1
__git_ps1 "$@"
fi
else
__git_ps1 "$@"
fi
}
#
# aliases
#
# aliases for colour
alias dir='dir --color=auto'
alias vdir='vdir --color=auto'
alias ls='eza -Abhg --colour=auto'
alias grep='grep --colour=auto'
alias diff='diff --color'
alias ip='ip -c'
# application aliases
alias ncdu='ncdu --color=dark -t 16'
alias hyfetch='hyfetch --ascii-file $HOME/.config/hyfetch-ascii'
alias bat='bat --wrap never --tabs 4 --theme gruvbox-dark'
alias make='make -j'
# aliases to avoid mistakes
alias cp='cp -i'
alias mv='mv -i'
#alias rm='rm -i'
alias :qa='exit'
alias :q='exit'
alias py3='python3'
# cute lil hyfetch :3
[[ $TERM == "xterm-kitty" ]] && hyfetch