# shellcheck shell=bash # shellcheck disable=SC1090,SC1091,SC2034 # Add local bin to PATH export PATH="$HOME/.local/bin:$PATH" # If not running interactively, don't do anything [[ $- != *i* ]] && return # Workaround for SSH/Login sessions # https://github.com/systemd/systemd/issues/7641#issuecomment-680694017 set -a if shopt -q login_shell && [[ -f /usr/lib/systemd/user-environment-generators/30-systemd-environment-d-generator ]]; then eval "$(/usr/lib/systemd/user-environment-generators/30-systemd-environment-d-generator)" # Fallback to to manually parsing environment.d elif [[ -z "$XDG_DATA_HOME" && -z "$XDG_CONFIG_HOME" && -z "$XDG_STATE_HOME" && -z "$XDG_CACHE_HOME" ]]; then eval "$(<"$HOME/.config/environment.d/xdg.conf")" fi set +a # If we have local bash-completion, use it [[ -f $HOME/.local/bin/bash_completion ]] && . "$HOME/.local/bin/bash_completion" # Bash XDG history HISTFILE="$XDG_STATE_HOME"/bash/history HISTSIZE=10000 SAVEHIST=10000 HISTCONTROL=ignoredups:erasedups shopt -s histappend # Helpful tool: https://bash-prompt-generator.org # On github: https://github.com/Scriptim/bash-prompt-generator PS1='[\u@\h \w]\$ ' [[ -f $XDG_CONFIG_HOME/bash/.bash_aliases ]] && source "$XDG_CONFIG_HOME/bash/.bash_aliases" # Bash specific alias alias rc='source "$XDG_CONFIG_HOME"/bash/.bashrc' # https://github.com/pkasemir/find-the-command [[ -f /usr/share/doc/find-the-command/ftc.bash ]] && source /usr/share/doc/find-the-command/ftc.bash noupdate quiet info # https://wiki.archlinux.org/title/Pkgfile#Command_not_found # [[ -f /usr/share/doc/pkgfile/command-not-found.bash ]] && source /usr/share/doc/pkgfile/command-not-found.bash # Starship after defining custom prompt, easy to remove hash starship 2>/dev/null && eval "$(starship init bash)" # Zoxide init has to be last hash zoxide 2>/dev/null && eval "$(zoxide init bash)" # Return 0 to indicate success that the script has been sourced to completion return 0