# vim: ft=sh # Get last run command function last_command { local h="$(history 1)"; echo "${h##*([[:space:])+([[:digit:]])+([[:space:]])}" } # Configure PATH source "$HOME/.dotfiles/bash/path" # If not running interactively, don't do anything case $- in *i*) ;; *) return;; esac # agetty is set to automatically log me in on tty1 # Automatically launch GUI on tty1 after login # I don't think that this is used anymore in Sericea, I think autologin is handled by SDDM # Still, it does not hurt for later distrohopping if [ "$(tty)" == '/dev/tty1' ] && [ ! "$SSH_TTY" ]; then source "${HOME}/.dotfiles/bash/bash_login" LAST_GUI=$(cat "${HOME}/.spool/last_login_gui" 2>/dev/null) if [ -f "${HOME}/.spool/last_login_gui" ]; then ${HOME}/scripts/${LAST_GUI}/start${LAST_GUI}.sh fi fi # Shell configuration (history, functionality, etc.) if [ -e ${HOME}/.dotfiles/bash/shell_config ]; then source ${HOME}/.dotfiles/bash/shell_config ]; then fi if [[ -z $TERM_TITLE ]]; then TERM_TITLE="$TERM"; fi # Load aliases if [ -f ${HOME}/.dotfiles/bash/bash_aliases ]; then . "${HOME}/.dotfiles/bash/bash_aliases" fi # Perl eval "$(plenv init -)" source ${HOME}/.dotfiles/bash/plenv-path.sh if [ -f "/run/.containerenv" ]; then source "$HOME/.dotfiles/bash/bashrc.distrobox" else source "$HOME/.dotfiles/bash/bashrc.host" fi source "$HOME/.cargo/env" source ~/perl5/perlbrew/etc/bashrc . "$HOME/.cargo/env" # Hide errors clear # Set window title to last command PS0='\[\e]0;$(last_command) - $TERM_TITLE\a\]' # Update prompt PROMPT_COMMAND="source ${HOME}/.dotfiles/bash/prompt.sh" # Bell when prompt is returned to mark as urgent PROMPT_COMMAND="$PROMPT_COMMAND;printf \"\a\"" # Append previous command to history immediately PROMPT_COMMAND="$PROMPT_COMMAND;history -a" if [[ -n "$(which fastfetch 2> /dev/null)" ]]; then if [ -n $DISTROBOX ] && [ -e ${HOME}/.dotfiles/fastfetch/${DISTROBOX}.jsonc ]; then fastfetch -C ${HOME}/.dotfiles/fastfetch/${DISTROBOX}.jsonc else fastfetch -C ${HOME}/.dotfiles/fastfetch/config.jsonc fi fi