############################################################################### # Tyler Perkins # .bashrc - My shell configuration # Test for an interactive shell. There is no need to set anything # past this point for scp and rcp, and it's important to refrain from # outputting anything in those cases. if [[ $- != *i* ]] ; then # Shell is non-interactive. Be done now! return fi ############################################################################### # Conda Setup ################################################################# ############################################################################### # >>> conda initialize >>> # !! Contents within this block are managed by 'conda init' !! __conda_setup="$('/home/tyler/.conda-install/bin/conda' 'shell.bash' 'hook' 2> /dev/null)" if [ $? -eq 0 ]; then eval "$__conda_setup" else if [ -f "/home/tyler/.conda-install/etc/profile.d/conda.sh" ]; then . "/home/tyler/.conda-install/etc/profile.d/conda.sh" else export PATH="/home/tyler/.conda-install/bin:$PATH" fi fi unset __conda_setup # <<< conda initialize <<< ############################################################################### # Export common environment ################################################### ############################################################################### # Set a huge history file HISTSIZE=20000 HISTFILESIZE=30000 # add .cargo/bin to path export PATH="/home/tyler/.cargo/bin:$PATH" export PATH="/home/tyler/.local/bin:$PATH" export _JAVA_AWT_WM_NONREPARENTING=1 # use vim as editor export EDITOR="/usr/bin/nvim" # pyenv export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/versions/bin/3.8.12/bin:$PATH" # proton work directory set as enviroment var export STEAM_COMPAT_DATA_PATH=~/.proton/ export STEAM_COMPAT_CLIENT_INSTALL_PATH=~/.steam/steam/steamapps/common/Proton\ 6.3/ # Pico programming export PICO_SDK_PATH=/home/tyler/code/pico/pico-sdk # Kubernetes (kubectl) configuration file export KUBECONFIG=~/.kube/config # Gpg keep key session to this TTY export GPG_TTY=$(tty) ############################################################################### # Convience Aliases ########################################################### ############################################################################### # alias set alias ls="ls --color" alias l="ls -al" alias lt="ls --human-readable --size -S --classify" alias ..="cd .." alias sha="shasum -a 256" alias untar="tar zxvf" alias sync="sudo emerge --sync && sudo layman -S" alias upgrade-all="sudo emerge --ask --verbose --update --deep --changed-use @world" alias myip="curl ipinfo.io/ip" alias port="netstat -tulanp" alias ports="netstat -tulanp | less" alias audio="pulsemixer" alias email="aerc" alias weather="curl wttr.in" alias httpserver="python -m http.server" alias google="tuxi" alias clipboard="xclip -selection clipboard" alias new-wallpaper="feh --bg-fill --randomize ~/.desktop/wallpaper/" alias gitea="tea" alias set-motd="vim /home/tyler/.desktop/alarm/motd.txt" alias ":q!"="exit" alias vim="nvim" alias diff="diff --color=auto" alias grep="grep -i --color=auto" alias mv="mv -v" alias arduino=" arduino" alias logisim-evolution="_JAVA_AWT_WM_NONREPARENTING=1 logisim-evolution" alias vifm="vifmrun" alias f="vifm" alias new-motd="vim $HOME/.desktop/alarm/motd.txt" alias disable-alarm=". $HOME/.desktop/alarm/disable-alarm.sh" which doas > /dev/null 2>&1 if [ $? -eq 0 ]; then alias sudo="doas" fi ############################################################################### # Misc Configurations ######################################################### ############################################################################### # Setup sdkman if [ -f $HOME/.sdkman/bin/sdkman-init.sh ]; then source $HOME/.sdkman/bin/sdkman-init.sh fi # Change shell character based on root/user if [ "$UID" -eq 0 ]; then export PS1="\033[1m\e[0;97m[\e[0;32m\u\e[0;97m@\e[0;31m\h \e[0;97m(\D{}) \w]\n# \033[0m" else export PS1="\033[1m\e[0;97m[\e[0;32m\u\e[0;97m@\e[0;31m\h \e[0;97m(\D{}) \w]\n$ \033[0m" fi # Custom command autocompletions PROG=tea source "$HOME/.config/tea/autocomplete.sh" PROG=pass source "$HOME/.local/bin/pass-completion.sh" which flux && . <(flux completion bash) # Store history after every command shopt -s histappend PROMPT_COMMAND="history -a; history -c; history -r;$PROMPT_COMMAND" ############################################################################### # Shell welcome prompt ######################################################## ############################################################################### #display colors _PROMPT_GREEN_='\033[1;32m' _PROMPT_HEAD_="$_PROMPT_GREEN_" _PROMPT_VAR_='\033[0;31m' #display stuff at beggining of the shell echo -e "${_PROMPT_HEAD_}#########################" echo -e "${_PROMPT_HEAD_}#Welcome ${_PROMPT_VAR_}$(whoami)" echo -e "${_PROMPT_HEAD_}#EIp : ${_PROMPT_VAR_}$(ifconfig eth0 | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1')" echo -e "${_PROMPT_HEAD_}#Time: ${_PROMPT_VAR_}$(date +"%T")" echo -e "${_PROMPT_HEAD_}#${_PROMPT_VAR_}\x1b[3m $(shuf -n 1 ~/.desktop/messages.txt) " export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion [[ -f ~/.bash-preexec.sh ]] && source ~/.bash-preexec.sh eval "$(atuin init bash)"