#!/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 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= 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