#!/bin/bash
# $ printf '[ -f ~/.config/shell/bashrc ] && . ~/.config/shell/bashrc' | sudo tee -a /etc/bash.bashrc

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

[ -f ~/.bash_aliases ] && . ~/.bash_aliases

HISTCONTROL=ignoreboth
HISTSIZE=
HISTFILESIZE=
bind "set completion-ignore-case on"
shopt -s checkwinsize
shopt -s histappend
shopt -s cdspell
shopt -s autocd
set -o vi

PATH="$HOME/.config/scripts/status${PATH:+:${PATH}}"
PATH="$HOME/.config/scripts/menu${PATH:+:${PATH}}"
PATH="$HOME/.config/scripts/menu/xclipmenu${PATH:+:${PATH}}"
PATH="$HOME/.config/scripts/sway${PATH:+:${PATH}}"
PATH="$HOME/.config/scripts/dwm${PATH:+:${PATH}}"
PATH="$HOME/.config/wrappers${PATH:+:${PATH}}"
PATH="$HOME/.config/scripts${PATH:+:${PATH}}"
PATH="$HOME/.local/bin${PATH:+:${PATH}}"
PATH="$HOME/.local/state/nix/profile/bin${PATH:+:${PATH}}"
PATH="$HOME/.config/emacs/bin${PATH:+:${PATH}}"

git_branch() {
    GIT_BRANCH="$(git branch 2>/dev/null | sed '/\*/!d;s/^\*\s*//g;s/\s*$//g')"
    [ -n "$GIT_BRANCH" ] && printf "%s " "$GIT_BRANCH" || true
}

format_code() {
    if [ "${1}" != 0 ] ; then
        CODE="${1}"
        printf '%s ' "${CODE}"
    fi
}

[ -e "/data/data/com.termux" ]                && HOSTNAME=" "
[ "${HOSTNAME:=$(hostname -s)}" = "laptop"  ] && HOSTNAME="󰌢 "
[ "${HOSTNAME:=$(hostname -s)}" = "home" ]    && HOSTNAME="󰒋 "
[ "${HOSTNAME:=$(hostname -s)}" = "desktop" ] && HOSTNAME="󰇅"

PROMPT_COMMAND="echo"
PS1='\[\033[31m\]\[\033[1m\]$(format_code ${?})\[\033[0m\]\
\[\033[2m\][\[\033[0m\] \
\[\033[36m\]${HOSTNAME}\[\033[0m\] \
\[\033[34m\]\W \
\[\033[1m\]\[\033[35m\]$(git_branch)\[\033[0m\]\
\[\033[2m\]] \[\033[0m\]\
\[\033[2m\]\@\[\033[0m\]\
\n\[\033[2m\]$\[\033[0m\] '

alias wget="wget --hsts-file=$XDG_DATA_HOME/wget/wget-hsts"

! 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' $@" \
    venv=". ~/.local/share/venv/base/bin/activate" \

[ -f ~/.config/shell/kit ] && . ~/.config/shell/kit

if [ "$(tty)" = "/dev/tty1" ] ; then
    sleep 0.5
    amixer &
    exec startx
    #exec sway
fi

command -v fetch >/dev/null 2>&1 && fetch min