dotfiles/shell/shellrc.org
2024-07-17 20:32:38 -06:00

3.9 KiB

Tavo's rc file

Non-interactive

PATH

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="/usr/local/plan9/bin${PATH:+:${PATH}}"

Environment

export \
    GITLAB="ssh://git@gitlab.com/tavo-wasd" \
    BOOKMARKS="$HOME/Documents/bookmarks" \
    BIB="$HOME/Documents/bibliography" \

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

Interactive

case $- in
    *i*) ;;
      *) return;;
esac

Bash-only config

if ! shopt -oq posix; then
    for comp in /usr/share/bash-completion/bash_completion /etc/bash_completion; do
	[ -f $comp ] && . $comp && break
    done
fi

bind "set completion-ignore-case on"
shopt -s checkwinsize
shopt -s histappend
complete -cf doas
shopt -s cdspell
shopt -s autocd
set -o vi

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"
}

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

Bash-only PS1

PS1='
\[\e[48;5;7m\] \[\e[38;5;240m\]\[\e[48;5;7m\]$?\[\e[38;5;7m\]\[\e[48;5;108m\]\
\[\e[38;5;235m\]\[\e[48;5;108m\] ${HOSTNAME} \[\e[38;5;108m\]\[\e[48;5;66m\]\
\[\e[48;5;66m\]\[\e[38;5;235m\] \W \[\e[45;0m\]\[\e[38;5;66m\]\
\[\e[38;5;240m\] \@ \[\e[1;38;5;5m\]$(git_branch)\[\e[48;0m\]
\[\e[38;5;240m\] ╰─\$\[\e[0m\] '

Aliases

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" \
    fzf="fzf --cycle --reverse" \
    diff="diff --color=auto" \
    grep="grep --color=auto" \
    calc="bc -l" \
    ls="ls -Alogh --color=auto --time-style=iso" \
    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" \

if [ "${XDG_SESSION_TYPE}" = "wayland" ] ; then
    alias clip="wl-copy"
fi

if [ "${XDG_SESSION_TYPE}" = "x11" ] ; then
    alias clip="xsel -ib"
fi

! command -v sudo >/dev/null 2>&1 && alias sudo="doas"
command -v exa >/dev/null 2>&1 && alias ls="exa -al --icons --group-directories-first --no-permissions --no-user --time-style=iso --git"
command -v eza >/dev/null 2>&1 && alias ls="eza -al --icons --group-directories-first --no-permissions --no-user --time-style=iso --git"
command -v trash >/dev/null 2>&1 && alias rm="trash"

Utils

util_get_ssid() {
    [ -e "/sbin/iw" ] && iw="/sbin/iw"
    iw="${iw:=$(command -v iw)}"
    [ "${iw}" ] || return 1
    int="$(sed '/:/!d;s/^ *//;s/:.*$//' /proc/net/wireless)"
    if [ "$int" ] && grep 'up' /sys/class/net/w*/operstate >/dev/null 2>&1 ; then
        "${iw}" "${int}" link | sed '/SSID/!d;s/^.*: //'
    fi
}

Startup

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

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