dotfiles/general/.aliases

277 lines
7.7 KiB
Bash
Executable File

#!/usr/bin/env bash
# When using zsh, see also
# $HOME/.oh-my-zsh/lib
export SCREENSHOT_DIR="$HOME/pictures/screenshots"
# ░█▀▀░█░█░▀█▀░░░█▀▀░█▀█░█▀▀░▀█▀░█░█░█▀█░█▀▄░█▀▀
# ░█▀▀░▄▀▄░░█░░░░▀▀█░█░█░█▀▀░░█░░█▄█░█▀█░█▀▄░█▀▀
# ░▀▀▀░▀░▀░░▀░░░░▀▀▀░▀▀▀░▀░░░░▀░░▀░▀░▀░▀░▀░▀░▀▀▀
# Music player
alias m="ncmpcpp"
# Text editor
if command -v nvim &> /dev/null; then
alias vim="nvim"
alias vi="nvim"
elif command -v vim &> /dev/null; then
alias nvim="vim"
alias vi="vim"
elif command -v vi &> /dev/null; then
alias nvim="vi"
alias vim="vi"
else
echo -e "\033[31m[ERROR] No vim program found on the system! Couldn't bind aliases!\033[0m"
fi
alias openfile='$HOME/.scripts/rofi/config-selector.py | xargs nvim'
# IPython
if command -v ipython &> /dev/null; then
alias p="ipython"
fi
# YouTube-dl
if command -v youtube-dl &> /dev/null; then
alias youtube-dl-list='youtube-dl -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio" -o "%(playlist_index)s-%(title)s.%(ext)s"'
alias music-dl='youtube-dl --extract-audio -f "bestaudio[ext=m4a]/best"'
alias music-dl-list='youtube-dl --extract-audio -f "bestaudio[ext=m4a]/best" -o "%(playlist_index)s-%(title)s.%(ext)s"'
fi
# Screenshots
if command -v maim &> /dev/null; then
alias skusho='maim --hidecursor --nokeyboard $(echo $SCREENSHOT_DIR)/$(date +%s).png'
if command -v xclip &> /dev/null; then
alias skushoclip='maim --hidecursor --nokeyboard --select | xclip -selection clipboard -target image/png -in'
fi
fi
# Scan listening ports
if command -v netstat &> /dev/null; then
alias ports='sudo netstat -tulpn | grep LISTEN'
fi
# Latex Make
if command -v latexmk &> /dev/null; then
alias view-latex='latexmk -pdf -pvc main.tex'
fi
# Tmux reload
if command -v tmux &> /dev/null; then
alias reload-tmux='tmux source $HOME/.config/tmux/tmux.conf'
fi
# Ag replacement
if command -v rg &> /dev/null; then
alias ag='rg'
fi
# Xmonad recompilation
if command -v xmonad &> /dev/null; then
alias xr='xmonad --recompile'
alias xmr='paru -S xmobar-git --noconfirm'
alias xxmr='xr; xmr'
fi
if [[ -f $HOME/.scripts/dropbox.py ]]; then
alias dp="python $HOME/.scripts/dropbox.py"
fi
# ------------------------ System tools ------------------------ #
# cp
if command -v z &> /dev/null; then
alias cd='z'
fi
# cp
if command -v rsync &> /dev/null; then
alias ccp='/usr/bin/cp'
alias cp='rsync --progress --human-readable'
alias cpr='rsync --progress --human-readable --recursive'
fi
# cat
if command -v bat &> /dev/null; then
alias ccat='/usr/bin/cat'
# TODO: use mdcat if the file is a markdown file
alias cat='bat'
fi
# htop
if command -v bottom &> /dev/null; then
alias htop='bottom'
fi
# ps
if command -v procs &> /dev/null; then
alias ps='procs'
fi
# find
if command -v fd &> /dev/null; then
# At the current time, fd does not support the -m flag, which I have
# experienced that some software rely on. Therefore, it's gonna be aliased
# to fin
alias fin='fd'
fi
# xxd
if command -v hex &> /dev/null; then
alias xxd='hex'
fi
# uniq
if command -v runiq &> /dev/null; then
alias uniq='runiq'
fi
# cut
if command -v hck &> /dev/null; then
alias cut='hck'
fi
# ------------------------ Reminders ------------------------ #
# compression decompression
if command -v ouch &> /dev/null; then
alias zip='echo "Consider using ouch instead\n"; zip'
alias unzip='echo "Consider using ouch instead\n"; unzip'
alias tar='echo "Consider using ouch instead\n"; tar'
fi
# Make tool
if command -v just &> /dev/null; then
alias make='echo "Consider using just instead\n"; make'
fi
# Disk usage viewer
if command -v diskonaut &> /dev/null; then
alias ncdu='echo "Consider using diskonaut instead\n"; ncdu'
fi
# ░█▀▀░█▀█░█░░░█▀█░█▀▄
# ░█░░░█░█░█░░░█░█░█▀▄
# ░▀▀▀░▀▀▀░▀▀▀░▀▀▀░▀░▀
if command -v exa &> /dev/null; then
alias lls='/usr/bin/ls'
alias ls='exa'
alias sl='ls'
alias lsa='exa -lah --changed --time-style long-iso --git --group'
else
alias ls='ls --group-directories-first --color=auto'
alias ll='ls -alFh --group-directories-first --color=auto'
alias la='ls -A --group-directories-first --color=auto -F'
fi
alias dir='dir --color=auto'
alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
alias ip='ip --color'
alias gpg-tui='gpg-tui --style colored'
# ░█▀▄░▀█▀░█▀▄░░░▀▀█░█░█░█▄█░█▀█░█▀▀
# ░█░█░░█░░█▀▄░░░░░█░█░█░█░█░█▀▀░▀▀█
# ░▀▀░░▀▀▀░▀░▀░░░▀▀░░▀▀▀░▀░▀░▀░░░▀▀▀
alias gt='cd $HOME/git'
alias tmp='cd /tmp'
alias cd..='cd ..'
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias .....='cd ../../../..'
alias ......='cd ../../../../..'
alias rrn='chmod 440'
alias wwn='chmod 660'
alias xxn='chmod 770'
alias rrx='chmod 445'
alias wwr='chmod 664'
alias x3='chmod 775'
# ░█▄█░▀█▀░█▀▀░█▀▀
# ░█░█░░█░░▀▀█░█░░
# ░▀░▀░▀▀▀░▀▀▀░▀▀▀
alias dush='du -sh'
alias realias='source $HOME/.aliases'
alias q='exit'
alias rmr='rmdir'
alias pagga='toilet -f pagga'
# Supposed to be used as a pipe: "cat file | rainbow"
alias rainbow='toilet -f pagga | lolcat'
# ░█▀█░█▀█░█▀▀░█░░░▀█▀░█▀█░█▀▀░█▀▄░█▀▀
# ░█░█░█░█░█▀▀░█░░░░█░░█░█░█▀▀░█▀▄░▀▀█
# ░▀▀▀░▀░▀░▀▀▀░▀▀▀░▀▀▀░▀░▀░▀▀▀░▀░▀░▀▀
alias killall-tmux="tmux ls | awk '{print $1}' | sed 's/://g' | xargs -I{} tmux kill-session -t {}"
# Get current Fcitx mode
alias get-fcitx-mode='qdbus "org.fcitx.Fcitx" "/inputmethod" "GetCurrentIM"'
alias wcd='find . -type f -exec cat {} + | wc -l'
# Make ftp server
alias makeftp='python -m pyftpdlib --directory=$HOME/ --port=2121'
alias echo-colors='for x in 0 1 4 5 7 8; do for i in {30..37}; do for a in {40..47}; do echo -ne "\e[$x;$i;$a""m\\\e[$x;$i;$a""m\e[0;37;40m "; done; echo; done; done; echo "";'
# ░█▀▀░█░█░█▀█░█▀▀░▀█▀░▀█▀░█▀█░█▀█░█▀▀
# ░█▀▀░█░█░█░█░█░░░░█░░░█░░█░█░█░█░▀▀█
# ░▀░░░▀▀▀░▀░▀░▀▀▀░░▀░░▀▀▀░▀▀▀░▀░▀░▀▀▀
gac(){
git add $1 && git commit -a -m $2
}
c-file() {
nvim $($HOME/.scripts/rofi/config-selector.py)
}
if command -v netstat &> /dev/null; then
# Usage: $ conn-ips 80
conn-ips() {
netstat -tn 2>/dev/null | grep :$1 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head
}
fi
# ░█▀▀░█▀█░█░█░█▀▄░█▀▀░█▀▀░█▀▀
# ░▀▀█░█░█░█░█░█▀▄░█░░░█▀▀░▀▀█
# ░▀▀▀░▀▀▀░▀▀▀░▀░▀░▀▀▀░▀▀▀░▀▀▀
if [[ -f $HOME/.aliases.private ]]; then
source $HOME/.aliases.private
fi
if [[ -f $HOME/.aliases.desktop ]]; then
source $HOME/.aliases.desktop
fi
if [[ -f $HOME/.aliases.laptop ]]; then
source $HOME/.aliases.laptop
fi
if [[ -d "$HOME/.project-template-aliases" ]]; then
for f in $(find $HOME/.project-template-aliases/ -maxdepth 1 -type f)
do
source $f
done
fi