# ____ _____ # | _ \_ _| Derek Taylor (DistroTube) # | | | || | http://www.youtube.com/c/DistroTube # | |_| || | http://www.gitlab.com/dwt1/ # |____/ |_| # My zsh config. Not much to see here; just some pretty standard stuff. ### EXPORT export TERM="xterm-256color" # getting proper colors export HISTORY_IGNORE="(ls|cd|pwd|exit|sudo reboot|history|cd -|cd ..)" 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\"." echo " extract [path/file_name_2.ext] [path/file_name_3.ext]" else for n in "$@" do if [ -f "$n" ] ; then case "${n%,}" in *.cbt|*.tar.bz2|*.tar.gz|*.tar.xz|*.tbz2|*.tgz|*.txz|*.tar) tar xvf "$n" ;; *.lzma) unlzma ./"$n" ;; *.bz2) bunzip2 ./"$n" ;; *.cbr|*.rar) unrar x -ad ./"$n" ;; *.gz) gunzip ./"$n" ;; *.cbz|*.epub|*.zip) unzip ./"$n" ;; *.z) uncompress ./"$n" ;; *.7z|*.arj|*.cab|*.cb7|*.chm|*.deb|*.dmg|*.iso|*.lzh|*.msi|*.pkg|*.rpm|*.udf|*.wim|*.xar) 7z x ./"$n" ;; *.xz) unxz ./"$n" ;; *.exe) cabextract ./"$n" ;; *.cpio) cpio -id < ./"$n" ;; *.cba|*.ace) unace x ./"$n" ;; *) echo "extract: '$n' - unknown archive method" return 1 ;; esac else echo "'$n' - file does not exist" return 1 fi done fi } IFS=$SAVEIFS ### OH MY ZSH ### # Path to your oh-my-zsh installation. ZSH=$HOME/.oh-my-zsh # Would you like to use another custom folder than $ZSH/custom? # ZSH_CUSTOM=/path/to/new-custom-folder # Which plugins would you like to load? # Add wisely, as too many plugins slow down shell startup. # Defning the plugins needs to happen before sourcing oh-my-zsh. plugins=(command-not-found emacs git history zsh-interactive-cd) # Sourcing oh-my-zsh # Your plugins will not work without this source. source $ZSH/oh-my-zsh.sh ### 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'" alias doomsync="~/.emacs.d/bin/doom sync" alias doomdoctor="~/.emacs.d/bin/doom doctor" alias doomupgrade="~/.emacs.d/bin/doom upgrade" alias doompurge="~/.emacs.d/bin/doom purge" # bat # alias cat='bat' # broot alias br='broot -dhp' alias bs='broot --sizes' # 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 -Syyu' # update only 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' ## get top process eating memory alias psmem='ps auxf | sort -nr -k 4' alias psmem10='ps auxf | sort -nr -k 4 | head -10' ## get top process eating cpu ## alias pscpu='ps auxf | sort -nr -k 3' alias pscpu10='ps auxf | sort -nr -k 3 | head -10' # 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" # youtube-dl alias yta-aac="youtube-dl --extract-audio --audio-format aac " alias yta-best="youtube-dl --extract-audio --audio-format best " alias yta-flac="youtube-dl --extract-audio --audio-format flac " alias yta-m4a="youtube-dl --extract-audio --audio-format m4a " alias yta-mp3="youtube-dl --extract-audio --audio-format mp3 " alias yta-opus="youtube-dl --extract-audio --audio-format opus " alias yta-vorbis="youtube-dl --extract-audio --audio-format vorbis " alias yta-wav="youtube-dl --extract-audio --audio-format wav " alias ytv-best="youtube-dl -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' # Thinkorswim alias tos="~/thinkorswim/thinkorswim" # force all kakoune windows into one session alias kak="/usr/bin/kak -c mysession" alias kaks="/usr/bin/kak -s mysession" alias kakd="/usr/bin/kak -d -s mysession &" ### 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 ### SOURCING BROOT ### source ~/.config/broot/launcher/bash/br ### BASH INSULTER ### if [ -f /etc/bash.command-not-found ]; then . /etc/bash.command-not-found fi ### SETTING THE STARSHIP PROMPT ### eval "$(starship init zsh)"