Files
dotfiles/.zsh-custom/functions.zsh

90 lines
1.8 KiB
Bash
Raw Normal View History

2024-09-30 20:44:39 +02:00
# start/attach tmux session
# use function in .zshrc to attach at every login
autotmux()
{
if [ -z "$TMUX" ]; then
# get the id of a deattached session
ID="`tmux ls | grep -vm1 attached | cut -d: -f1`"
if [ -z "$ID" ]; then
tmux new-session
else
tmux attach-session -t "$ID"
fi
fi
}
checkpem()
{
openssl x509 -in "$1" -noout -text
}
checkcert()
{
openssl s_client -connect "$1":443 2>/dev/null
}
# works only without tex-ending
tex2pdf()
{
pdflatex "$1"
bibtex "$1"
pdflatex "$1"
pdflatex "$1"
}
startx()
{
nohup startx "$@" > /dev/null 2>&1 &
disown
vlock
}
# generate qrcode and display it
func_qrcode()
2024-09-30 20:44:39 +02:00
{
qrencode "$1" -o - | feh -
}
# Create alias calling the function with space prefix, so that it is not logged in history file. This avoids logging passwords and stuff.
alias qrcode=" func_qrcode"
2024-09-30 20:44:39 +02:00
ogg2mp3()
{
for file in *ogg; do
ffmpeg -i $file -b:a 192k -map_metadata 0:s:a:0 "${file%.*}.mp3"
done
}
m4a2mp3()
{
for file in *m4a; do
ffmpeg -i $file -b:a 192k -map_metadata 0:s:a:0 "${file%.*}.mp3"
done
}
# Show all blob objects in repo sorted from smalles to largest
# https://stackoverflow.com/a/42544963
git-blobs()
{
git rev-list --objects --all --missing=print |
git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' |
sed -n 's/^blob //p' |
sort --numeric-sort --key=2 |
cut -c 1-12,41- |
$(command -v gnumfmt || echo numfmt) --field=2 --to=iec-i --suffix=B --padding=7 --round=nearest
}
2025-09-04 04:51:08 +02:00
sshs()
{
tmprc=$(ssh $1 "mktemp --directory")
scp -q $HOME/.zshrc $1:$tmprc
ssh -t $1 "export ZDOTDIR=${tmprc}; exec zsh"
ssh $1 "rm -rf ${tmprc}"
}
2024-09-30 20:44:39 +02:00
# show the current mode:
#PR_VIMODE="#"
#function zle-keymap-select
#{
# PR_VIMODE="${${KEYMAP/vicmd/¢}/(main|viins)/$}"
# zle reset-prompt
#}
#zle -N zle-keymap-select