# ____ _____ # | _ \_ _| Derek Taylor (DistroTube) # | | | || | http://www.youtube.com/c/DistroTube # | |_| || | http://www.gitlab.com/dwt1/ # |____/ |_| # # My bash config. Not much to see here; just some pretty standard stuff. ### EXPORT export TERM="xterm-256color" # getting proper colors export HISTCONTROL=ignoredups:erasedups # no duplicate entries export ALTERNATE_EDITOR="" # setting for emacsclient export EDITOR="emacsclient -t -a ''" # $EDITOR use Emacs in terminal export VISUAL="emacsclient -c -a emacs" # $VISUAL use Emacs in GUI mode ### SET MANPAGER ### Uncomment only one of these! ### "bat" as manpager export MANPAGER="sh -c 'col -bx | bat -l man -p'" ### "vim" as manpager # export MANPAGER='/bin/bash -c "vim -MRn -c \"set buftype=nofile showtabline=0 ft=man ts=8 nomod nolist norelativenumber nonu noma\" -c \"normal L\" -c \"nmap q :qa\" 0 ]] do echo "$N" | figlet -c | lolcat && sleep 1 done } ### ARCHIVE EXTRACTION # usage: ex ex () { if [ -f "$1" ] ; then case $1 in *.tar.bz2) tar xjf $1 ;; *.tar.gz) tar xzf $1 ;; *.bz2) bunzip2 $1 ;; *.rar) unrar x $1 ;; *.gz) gunzip $1 ;; *.tar) tar xf $1 ;; *.tbz2) tar xjf $1 ;; *.tgz) tar xzf $1 ;; *.zip) unzip $1 ;; *.Z) uncompress $1;; *.7z) 7z x $1 ;; *.deb) ar x $1 ;; *.tar.xz) tar xf $1 ;; *.tar.zst) unzstd $1 ;; *) echo "'$1' cannot be extracted via ex()" ;; esac else echo "'$1' is not a valid file" fi } ### ALIASES ### # root privileges alias doas="doas --" # navigation up () { local d="" local limit="$1" # Default to limit of 1 if [ -z "$limit" ] || [ "$limit" -le 0 ]; then limit=1 fi for ((i=1;i<=limit;i++)); do d="../$d" done # perform cd. Show error if cd fails if ! cd "$d"; then echo "Couldn't go up $limit dirs."; fi } # vim and emacs alias vim="nvim" alias em="/usr/bin/emacs -nw" alias emacs="emacsclient -c -a 'emacs'" # Changing "ls" to "exa" alias ls='exa -al --color=always --group-directories-first' # my preferred listing alias la='exa -a --color=always --group-directories-first' # all files and dirs alias ll='exa -l --color=always --group-directories-first' # long format alias lt='exa -aT --color=always --group-directories-first' # tree listing alias l.='exa -a | egrep "^\."' # pacman and yay alias pacsyu='sudo pacman -Syu' # update only standard pkgs alias pacsyyu='sudo pacman -Syyu' # Refresh pkglist & update standard pkgs alias yaysua='yay -Sua --noconfirm' # update only AUR pkgs (yay) alias yaysyu='yay -Syu --noconfirm' # update standard pkgs and AUR pkgs (yay) alias parsua='paru -Sua --noconfirm' # update only AUR pkgs (paru) alias parsyu='paru -Syu --noconfirm' # update standard pkgs and AUR pkgs (paru) alias unlock='sudo rm /var/lib/pacman/db.lck' # remove pacman lock alias cleanup='sudo pacman -Rns $(pacman -Qtdq)' # remove orphaned packages # get fastest mirrors alias mirror="sudo reflector -f 30 -l 30 --number 10 --verbose --save /etc/pacman.d/mirrorlist" alias mirrord="sudo reflector --latest 50 --number 20 --sort delay --save /etc/pacman.d/mirrorlist" alias mirrors="sudo reflector --latest 50 --number 20 --sort score --save /etc/pacman.d/mirrorlist" alias mirrora="sudo reflector --latest 50 --number 20 --sort age --save /etc/pacman.d/mirrorlist" # Colorize grep output (good for log files) alias grep='grep --color=auto' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' # confirm before overwriting something alias cp="cp -i" alias mv='mv -i' alias rm='rm -i' # adding flags alias df='df -h' # human-readable sizes alias free='free -m' # show sizes in MB alias lynx='lynx -cfg=~/.lynx/lynx.cfg -lss=~/.lynx/lynx.lss -vikeys' alias vifm='./.config/vifm/scripts/vifmrun' alias ncmpcpp='ncmpcpp ncmpcpp_directory=$HOME/.config/ncmpcpp/' alias mocp='mocp -M "$XDG_CONFIG_HOME"/moc -O MOCDir="$XDG_CONFIG_HOME"/moc' # ps alias psa="ps auxf" alias psgrep="ps aux | grep -v grep | grep -i -e VSZ -e" alias psmem='ps auxf | sort -nr -k 4' alias pscpu='ps auxf | sort -nr -k 3' # Merge Xresources alias merge='xrdb -merge ~/.Xresources' # git alias addup='git add -u' alias addall='git add .' alias branch='git branch' alias checkout='git checkout' alias clone='git clone' alias commit='git commit -m' alias fetch='git fetch' alias pull='git pull origin' alias push='git push origin' alias stat='git status' # 'status' is protected name so using 'stat' instead alias tag='git tag' alias newtag='git tag -a' # get error messages from journalctl alias jctl="journalctl -p 3 -xb" # gpg encryption # verify signature for isos alias gpg-check="gpg2 --keyserver-options auto-key-retrieve --verify" # receive the key of a developer alias gpg-retrieve="gpg2 --keyserver-options auto-key-retrieve --receive-keys" # Play audio files in current dir by type alias playwav='deadbeef *.wav' alias playogg='deadbeef *.ogg' alias playmp3='deadbeef *.mp3' # Play video files in current dir by type alias playavi='vlc *.avi' alias playmov='vlc *.mov' alias playmp4='vlc *.mp4' # yt-dlp alias yta-aac="yt-dlp --extract-audio --audio-format aac " alias yta-best="yt-dlp --extract-audio --audio-format best " alias yta-flac="yt-dlp --extract-audio --audio-format flac " alias yta-m4a="yt-dlp --extract-audio --audio-format m4a " alias yta-mp3="yt-dlp --extract-audio --audio-format mp3 " alias yta-opus="yt-dlp --extract-audio --audio-format opus " alias yta-vorbis="yt-dlp --extract-audio --audio-format vorbis " alias yta-wav="yt-dlp --extract-audio --audio-format wav " alias ytv-best="yt-dlp -f bestvideo+bestaudio " # switch between shells # I do not recommend switching default SHELL from bash. alias tobash="sudo chsh $USER -s /bin/bash && echo 'Now log out.'" alias tozsh="sudo chsh $USER -s /bin/zsh && echo 'Now log out.'" alias tofish="sudo chsh $USER -s /bin/fish && echo 'Now log out.'" # bare git repo alias for dotfiles alias config="/usr/bin/git --git-dir=$HOME/dotfiles --work-tree=$HOME" # termbin alias tb="nc termbin.com 9999" # the terminal rickroll alias rr='curl -s -L https://raw.githubusercontent.com/keroserene/rickrollrc/master/roll.sh | bash' # Unlock LBRY tips alias tips='lbrynet txo spend --type=support --is_not_my_input --blocking' ### DTOS ### # Copy/paste all content of /etc/dtos over to home folder. A backup of config is created. (Be careful running this!) alias dtoscopy='[ -d ~/.config ] || mkdir ~/.config && cp -Rf ~/.config ~/.config-backup-$(date +%Y.%m.%d-%H.%M.%S) && cp -rf /etc/dtos/* ~' # Backup contents of /etc/dtos to a backup folder in $HOME. alias dtosbackup='cp -Rf /etc/dtos ~/dtos-backup-$(date +%Y.%m.%d-%H.%M.%S)' ### RANDOM COLOR SCRIPT ### # Get this script from my GitLab: gitlab.com/dwt1/shell-color-scripts # Or install it from the Arch User Repository: shell-color-scripts colorscript random ### BASH INSULTER ### if [ -f /etc/bash.command-not-found ]; then . /etc/bash.command-not-found fi ### SETTING THE STARSHIP PROMPT ### eval "$(starship init bash)"