131 lines
3.3 KiB
Bash
131 lines
3.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
|
|
|
|
format_workdir() {
|
|
CODE="$?"
|
|
ROOT_DIR="$(git rev-parse --show-toplevel 2>/dev/null)"
|
|
[ -n "$ROOT_DIR" ] &&
|
|
ROOT_DIR="${ROOT_DIR##*/}" &&
|
|
printf '\033[34m%s\033[0m ' "$ROOT_DIR"
|
|
return "$CODE"
|
|
}
|
|
|
|
format_git_branch() {
|
|
CODE="$?"
|
|
GIT_BRANCH="$(git branch 2>/dev/null | sed '/\*/!d;s/^\*\s*//g;s/\s*$//g')"
|
|
[ -n "$GIT_BRANCH" ] && printf "\033[1m\033[35m%s\033[0m " "$GIT_BRANCH"
|
|
return "$CODE"
|
|
}
|
|
|
|
format_prompt() {
|
|
CODE="${1}"
|
|
if [ "${CODE}" != 0 ] ; then
|
|
printf '\033[31m\033[1m>\033[0m '
|
|
else
|
|
printf '\033[32m>\033[0m '
|
|
fi
|
|
}
|
|
|
|
PS1='\[\033[2m\]\A\[\033[0m\] \
|
|
$(format_workdir ${?})\
|
|
$(format_git_branch ${?})\
|
|
$(format_prompt ${?})\
|
|
'
|
|
|
|
! 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/Desktop/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
|