.dotfiles/bash/bashrc

110 lines
3.4 KiB
Bash

# vim: ft=sh
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
# Use static SSH Agent from profile
export SSH_AUTH_SOCK=~/.ssh/ssh-agent.sock
# agetty is set to automatically log me in on tty1
# Automatically launch GUI on tty1 after login
if [ "$(tty)" == '/dev/tty1' ]; then
. ${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
# Setup editor
export EDITOR="vim"
# don't put duplicate lines or lines starting with space in the history.
shopt -s histappend
HISTCONTROL=ignoreboth
# append to the history file, don't overwrite it
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=500000
HISTFILESIZE=1000000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# enable programmable completion features
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
# Set window title to last command
PROMPT_COMMAND='echo -e -n "\033]2;$_\007"'
# Reconfigure prompt after each return
PROMPT_COMMAND="$PROMPT_COMMAND; source ${HOME}/.dotfiles/bash/prompt.sh"
# Bell when prompt is returned to mark as urgent
PROMPT_COMMAND="$PROMPT_COMMAND;printf \"\a\"; history -a"
# Enable color support if possible
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
alias dir='dir --color=auto'
alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
fi
# Load aliases
if [ -f ~/.dotfiles/bash/bash_aliases ]; then
. ~/.dotfiles/bash/bash_aliases
fi
# Add snaps and flatpaks to path
#export XDG_DATA_DIRS="$XDG_DATA_DIRS:/usr/local/share:/usr/share:/var/lib/snapd/desktop:/var/lib/flatpak/exports/share"
# Perl configs
PERL5LIB="${HOME}/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB;
PERL_LOCAL_LIB_ROOT="${HOME}/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"; export PERL_LOCAL_LIB_ROOT;
PERL_MB_OPT="--install_base \"${HOME}/perl5\""; export PERL_MB_OPT;
PERL_MM_OPT="INSTALL_BASE=${HOME}/perl5"; export PERL_MM_OPT;
# Configure PATH
source "$HOME/.dotfiles/bash/path"
# Standardize language
export LANG="en_US.UTF-8"
export LANGUAGE="en_US:en"
export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
# terminal type
export TERM="xterm"
# GUI options. Mostly to optimize Wayland
export QT_QPA_PLATFORM="wayland-egl;wayland;xcb"
export SDL_VIDEODRIVER="wayland"
export QML_IMPORT_PATH="/usr/lib/qt/qml"
export QT_PLUGIN_PATH="/usr/lib/qt/plugins"
export QML2_IMPORT_PATH="/usr/lib/qt/qml"
export MOZ_ENABLE_WAYLAND="1"
export MOZ_WEBRENDER="1"
export XDG_SESSION_TYPE="wayland"
export XDG_CURRENT_DESKTOP="sway"
export XDG_CONFIG_HOME="${HOME}/.config"
export XDG_DATA_DIRS="$XDG_DATA_DIRS:${HOME}/.config/flatpak/exports/share"
export SWAYSOCK=`sway --get-socketpath`
export CHROME_EXECUTABLE="/usr/bin/chromium"
export FLATPAK_IDE_LOG_LEVEL="0"
# Set initial title
echo -e -n "\033]2;Welcome to Bash\007"