dotfiles/shell/bashrc
2025-01-05 00:13:30 -06:00

113 lines
3 KiB
Bash

#!/bin/bash
if test -d ~/.config/shell/profile.d/; then
for profile in ~/.config/shell/profile.d/*.sh; do
test -r "$profile" && . "$profile"
done
unset profile
fi
case $- in
*i*) ;;
*) return;;
esac
if ! shopt -oq posix; then
[ -f /usr/share/bash-completion/bash_completion ] &&
. /usr/share/bash-completion/bash_completion
[ -f /etc/bash_completion ] &&
. /etc/bash_completion
fi
bind "set completion-ignore-case on"
shopt -s checkwinsize
shopt -s histappend
shopt -s cdspell
shopt -s autocd
set -o vi
HISTCONTROL=ignoreboth
HISTIZE=
HISTFILESIZE=
if [ -n "$HISTFILE" ] && ! [ -d "${HISTFILE%/*}" ] ; then
mkdir -p "${HISTFILE%/*}" && touch "$HISTFILE"
fi
_prompt_git_branch() {
GIT_BRANCH="$(git branch 2>/dev/null | sed '/\*/!d;s/^\*\s*//g;s/\s*$//g')"
[ -n "$GIT_BRANCH" ] && printf '%s ' "$GIT_BRANCH"
}
PROMPT_COMMAND='if [ "$?" = 0 ]; then EXIT_COLOR="\033[32m"; else EXIT_COLOR="\033[31m"; fi'
PS1='\
\[\033[2m\]\A\[\033[0m\] \
\[\033[34m\]\w\[\033[0m\] \
\[\033[35m\]\[\033[1m\]$(_prompt_git_branch)\[\033[0m\]\
\[$(echo -ne $EXIT_COLOR)\]>\[\033[0m\] \
'
! command -v sudo >/dev/null 2>&1 &&
alias sudo="doas" &&
complete -cf doas
alias \
src="cd $HOME/.local/src/ && ls" \
cfg="cd $HOME/.config/ && ls" \
tmp="cd $HOME/Desktop/temp/ && ls" \
dsk="cd $HOME/Desktop/ && ls" \
prj="cd $HOME/Projects && ls" \
doc="cd $HOME/Documents/ && ls" \
dow="cd $HOME/Downloads/ && ls" \
mus="cd $HOME/Music/ && ls" \
prt="cd $HOME/Pictures/Screenshots/ && ls" \
bkg="cd $HOME/Pictures/Backgrounds/ && ls" \
img="cd $HOME/Pictures/ && ls" \
vid="cd $HOME/Videos/ && ls" \
EZA_OPTS="--git --group-directories-first --icons --time-style=long-iso"
command -v exa >/dev/null 2>&1 &&
alias la="exa $EZA_OPTS -alghUum" &&
alias lt="exa $EZA_OPTS -T -L 2" &&
alias ll="exa $EZA_OPTS -alg" &&
alias ls="exa $EZA_OPTS -1"
command -v eza >/dev/null 2>&1 &&
alias la="eza $EZA_OPTS -alghUum" &&
alias lt="eza $EZA_OPTS -T -L 2" &&
alias ll="eza $EZA_OPTS -alg" &&
alias ls="eza $EZA_OPTS -1"
command -v trash >/dev/null 2>&1 && alias rm="trash"
alias \
fzf="fzf --cycle --reverse" \
diff="diff --color=auto" \
grep="grep --color=auto" \
calc="bc -l" \
cp="cp -iv" \
mv="mv -iv" \
vim="nvim" \
df-short="df -h | grep -v '\s/dev.*$\|\s/run.*$\|\s/boot.*$'" \
qr-png="qrencode -s 16 -o qr.png" \
qr="qrencode -t ansiutf8" \
clip="xsel -ib" \
em="emacsclient -c -a 'emacs' $@" \
wget="wget --hsts-file=$XDG_DATA_HOME/wget/wget-hsts" \
ssh="ssh ${SSH_CONFIG} " \
[ -f ~/.config/shell/kit ] && . ~/.config/shell/kit
for func in ~/.config/shell/functions/* ; do
[ -f "$func" ] && . $func
done
if [ "$(tty)" = "/dev/tty1" ] ; then
sleep 0.5
amixer &
XDG_SESSION_TYPE=x11 GDK_BACKEND=x11 exec startx
#exec sway
elif [ "$(tty)" = "/dev/tty2" ] ; then
sleep 0.5
exec /usr/lib/plasma-dbus-run-session-if-needed /usr/bin/startplasma-wayland
fi