dotfiles/.config/bash/10-aliases.bash
2025-06-20 04:36:33 +00:00

104 lines
2.6 KiB
Bash

am() {
local name dev lsblk
while true; do
mapfile -t lsblk < <(lsblk -n --paths --list | grep part)
COLUMNS=1
select dev in "${lsblk[@]}"; do
if [ -z "$dev" ]; then
break
fi
name="$(awk '{print $1}' <<< "$dev")"
if mount | grep -q "$name"; then
umount "$name"
else
cd -- "$(udisksctl mount -b "$name" | awk '{print $NF}')"
return
fi
break
done || return
done
}
bat() {
if [ -z "$1" ]; then
return 1
fi
TERM='tty' $EDITOR --cmd "set lines=$(wc -l "$1")" +redraw +q "$1"
}
bd() {
echo "$@" | base64 -d; echo
}
gi() {
curl -fL "https://www.toptal.com/developers/gitignore/api/$(printf '%s\n' "$@" | sort -u | paste -sd,)"
}
update() {
$TERM --hold -e "$SHELL" -xc "sudo pacman -Syu && echo $'\e[32mDONE'" &
$TERM --hold -e "$SHELL" -xc "git --git-dir='$HOME/.dotfiles/' --work-tree='$HOME' submodule update --remote --recursive && echo $'\e[32mDONE'" &
}
tmp() {
cd -- "$(mktemp -d /tmp/"$1"XXX)" || return
}
tz() {
local tz src
tz="$(cat "$XDG_RUNTIME_DIR/sbar/tz")"
src="$(find /usr/share/zoneinfo/ -maxdepth 2 -iname "$1*" -printf '%P' -quit)"
TZ="$tz" date -d "TZ=\"$src\" ${2:-now}" "+%R%:::z $tz"
TZ="$src" date -d "TZ=\"$tz\" ${2:-now}" "+%R%:::z ${src:-UTC}"
}
venv() {
local venv="${1:-.venv}"
local bin="$venv/bin/activate"
if ! [ -f "$bin" ]; then
python -m venv --system-site-packages "$venv"
fi
# shellcheck disable=SC1090
. "$bin"
}
alias -- \
-='cd -' \
......='../../../../..' \
.....='../../../..' \
....='../../..' \
...='../..' \
c='git --git-dir="$HOME/.dotfiles/" --work-tree="$HOME"' \
cp='cp -vi' \
diff='diff --color' \
feh='feh --auto-zoom --scale-down' \
g=git \
grep='grep --color --exclude-dir={.cache,.git,.idea,.venv,.vscode,node_modules}' \
ip='ip -c=auto' \
l='ll -a' \
la='ll -A' \
ll='ls -lh' \
ls='ls --color' \
mail=aerc \
mkdir='mkdir -v' \
mv='mv -vi' \
neofetch=fastfetch \
qcp='qcp -o tabsize=4' \
qmv='qmv -o tabsize=4' \
rm='rm -vI' \
rss=newsraft \
rsync='rsync -P' \
ssh='TERM=xterm-256color ssh' \
sudo='sudo ' \
vi='$EDITOR' \
watch='watch -c ' \
xargs='xargs ' \
xmr='monero-wallet-cli --daemon-address monero.maby.dev:18081 --trusted-daemon --log-file="$XDG_STATE_HOME/monero.log" --wallet-file "$XDG_DATA_HOME/monero/ange"'
. /usr/share/git/completion/git-completion.bash
$(complete -p git) g c