dotfiles/config/shell/shrc

113 lines
3 KiB
Bash

#!/usr/bin/env sh
#
# Shell common aliases and customizations (BusyBox compatible)
#
## COMMAND CONFIGURATION
# Completion for existing commands
alias ls='ls -h --color=auto'
alias mkdir='mkdir -v'
alias cp="cp -i"
alias mv="mv -iv"
alias free='free -h'
alias df='df -h'
alias ffmpeg='ffmpeg -hide_banner'
alias ffprobe='ffprobe -hide_banner'
alias ffplay='ffplay -hide_banner'
# ALIASES
# Frequent mistakes
alias sl=ls
alias al=la
alias mdkir=mkdir
alias systemclt=systemctl
alias please=sudo
# Shortcuts for commonly used commands
alias ll="ls -l"
alias la="ls -la"
alias s='sudo -s -E'
alias n='alacritty & disown'
alias x='startx $HOME/.config/xinitrc; logout'
alias nx='nvidia-xrun $HOME/.config/xinitrc; logout'
# For programs that think $HOME is a reasonable place to put their junk
# and don't allow the user to change those questionable choices
alias adb='HOME=$JUNKHOME adb'
alias audacity='HOME=$JUNKHOME audacity'
alias binwalk='HOME=$JUNKHOME binwalk' # Should use .config according to the GitHub code though
alias cabal='HOME=$JUNKHOME cabal' # TODO May have options but last time I tried it it crashed
alias cmake='HOME=$JUNKHOME cmake'
alias ddd='HOME=$JUNKHOME ddd'
alias ghidra='HOME=$JUNKHOME ghidra'
alias itch='HOME=$JUNKHOME itch'
alias simplescreenrecorder='HOME=$JUNKHOME simplescreenrecorder' # Easy fix https://github.com/MaartenBaert/ssr/blob/1556ae456e833992fb6d39d40f7c7d7c337a4160/src/Main.cpp#L252
alias vd='HOME=$JUNKHOME vd'
alias wpa_cli='HOME=$JUNKHOME wpa_cli'
# TODO Maybe we can do something about node-gyp
alias bower='bower --config.storage.packages=~/.cache/bower/packages --config.storage.registry=~/.cache/bower/registry --config.storage.links=~/.cache/bower/links'
alias gdb='gdb -x $HOME/.config/gdbinit'
alias iftop='iftop -c $HOME/.config/iftoprc'
alias lmms='lmms --config $HOME/.config/lmmsrc.xml'
alias tmux='tmux -f $HOME/.config/tmux/tmux.conf'
# TODO ruby's gem when I find a use for it
# FUNCTIONS
trysource() {
if [ -f "$1" ]
then
. "$1"
else
return 1
fi
}
_i_prefer() { # executables...
for candidate in "$@"
do
if [ -x "$(command -v "$candidate")" ]
then
choice="$candidate"
break
fi
done
if [ -z "$choice" ]
then
return
fi
for candidate in "$@"
do
if [ "$candidate" != "$choice" ]
then
alias "$candidate"="$choice"
fi
done
}
_i_prefer nvim vim vi
_i_prefer gopass pass
_i_prefer wakeonlan wol
_i_prefer neomutt mutt
unset _i_prefer
## COLORS
# trysource ~/.local/bin/colorSchemeApply
# Needed because xterm/urxvt won't use the last color, needed for vim
## GPG
# Makes the last open terminal the ones that receives the pinentry message (if
# not run from a terminal with DESKTOP)
# TODO Only run if gpg-agent is started?
# TODO Make a command out of this for easy management (and maybe remove the below)
export GPG_TTY=$(tty)
gpg-connect-agent updatestartuptty /bye >/dev/null
## EXTENSIONS
trysource ~/.config/shell/extrc