#!/usr/bin/env bash # shellcheck disable=SC1090,SC1091 # If not running interactively, don't do anything case $- in *i*) ;; *) return;; esac # Prefer US English export LANG="en_US" if [[ "$(hostname)" != *'-minimal' ]]; then export LC_ALL="en_US.UTF-8" fi # Detect support for advanced terminal features if [ "$0" = 'bash' ] || [ "$0" = '/bin/bash' ]; then export BASH_SUPPORT=true fi ### Import Common Settings if [ -f "$HOME/.config/shell/profile.sh" ]; then . "$HOME/.config/shell/profile.sh" fi ### Fig / LC_ALL if [ "$BASH_SUPPORT" = 'true' ]; then if [ -f "$HOME/.fig/shell/bashrc.pre.bash" ]; then . "$HOME/.fig/shell/bashrc.pre.bash" fi fi ### Settings if command -v shopt > /dev/null; then shopt -s globstar shopt -s histappend shopt -s checkwinsize fi ### History export HISTFILE="$XDG_STATE_HOME/bash/history" ### /etc/bashrc if [ -f /etc/bashrc ]; then . /etc/bashrc fi # Prompt (on bash only) if [ "$BASH_SUPPORT" = 'true' ]; then if [[ "$(hostname)" != *'-minimal' ]]; then ### Styled Terminal export BASH_IT="$HOME/.local/bash_it" export BASH_IT_THEME=modern if [ -f "$BASH_IT/bash_it.sh" ]; then . "$BASH_IT/bash_it.sh" elif command -v oh-my-posh > /dev/null; then # Oh My Posh (See: https://ohmyposh.dev/) eval "$(oh-my-posh init bash --config "$XDG_CONFIG_HOME/oh-my-posh/Betelgeuse.omp.json")" else # Basic styled terminal case "$TERM" in xterm* | rxvt* | Eterm | aterm | kterm | gnome* | alacritty) PS1="\n \[\033[0;34m\]╭─\[\033[0;31m\]\[\033[0;37m\]\[\033[41m\] $OS_ICON \u \[\033[0m\]\[\033[0;31m\]\[\033[44m\]\[\033[0;34m\]\[\033[44m\]\[\033[0;30m\]\[\033[44m\] \w \[\033[0m\]\[\033[0;34m\] \n \[\033[0;34m\]╰ \[\033[1;36m\]\$ \[\033[0m\]" ;; esac fi else # Minimal session if command -v oh-my-posh > /dev/null; then eval "$(oh-my-posh init bash --config "$XDG_CONFIG_HOME/oh-my-posh/Betelgeuse-minimal.omp.json")" fi fi fi ### Bash Initialization Hooks if [ "$BASH_SUPPORT" = 'true' ]; then ### Bash Completion if [ -f "/usr/local/etc/profile.d/bash_completion.sh" ]; then . "/usr/local/etc/profile.d/bash_completion.sh" fi ### direnv if command -v direnv > /dev/null; then eval "$(direnv hook bash)" fi ### Java (asdf) if [ -f "$ASDF_DATA_DIR/plugins/java/set-java-home.bash" ]; then . "$ASDF_DATA_DIR/plugins/java/set-java-home.bash" fi ### zoxide if command -v zoxide > /dev/null; then eval "$(zoxide init --cmd cd bash)" > /dev/null fi ### Fig if [ -f "$HOME/.fig/shell/bashrc.post.bash" ]; then . "$HOME/.fig/shell/bashrc.post.bash" fi ### Vault if command -v vault > /dev/null; then complete -C vault vault fi fi