mirror of
https://github.com/webgefrickel/dotfiles
synced 2024-11-09 13:10:27 +00:00
80 lines
2.2 KiB
Bash
80 lines
2.2 KiB
Bash
#!/usr/bin/env zsh
|
|
|
|
y() { # a yazi wrapper that returns last dir
|
|
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")"
|
|
yazi "$@" --cwd-file="$tmp"
|
|
if cwd="$(cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
|
|
builtin cd -- "$cwd"
|
|
fi
|
|
rm -f -- "$tmp"
|
|
}
|
|
|
|
take() { # shortcut for creating and going into dir
|
|
mkdir -p $1
|
|
cd $1
|
|
}
|
|
|
|
# terminal weather shortcut
|
|
wttr() {
|
|
if [[ -n "$1" ]]
|
|
then
|
|
curl "wttr.in/$1?format=v2"
|
|
else
|
|
curl "wttr.in/Leipzig?format=v2"
|
|
fi
|
|
}
|
|
|
|
# function for easily converting a video for web
|
|
webvideo() {
|
|
if [ $# -eq 0 ]; then
|
|
echo "No arguments supplied, example usage: webvideo FILENAME --resize 1920 --mute"
|
|
else
|
|
zparseopts -E -D -- -resize:=opt_resize -mute=opt_mute
|
|
|
|
file=$(basename -- "$1")
|
|
extension="${file##*.}"
|
|
filename="${file%.*}"
|
|
width="${opt_resize[2]}"
|
|
w="${width:-trunc(iw/2)*2}"
|
|
h="trunc(ih/2)*2"
|
|
|
|
if [[ -n "$width" ]]
|
|
then
|
|
h="trunc(ow/a/2)*2"
|
|
fi
|
|
|
|
scale="scale=$w\:$h"
|
|
ffmpeg -ss 00:00:02 -i $1 -frames:v 1 -vf $scale $filename.jpg
|
|
|
|
if [ -z "${opt_mute}" ]; then
|
|
ffmpeg -i $1 -map_metadata -1 -c:a copy -c:v libx264 -crf 26 -preset veryslow -profile:v main -pix_fmt yuv420p -movflags +faststart -vf $scale $filename.h264.mp4
|
|
ffmpeg -i $1 -map_metadata -1 -c:a libopus -b:a 64k -c:v libaom-av1 -crf 50 -b:v 0 -pix_fmt yuv420p -movflags +faststart -cpu-used 8 -vf $scale $filename.av1.webm
|
|
else
|
|
ffmpeg -i $1 -map_metadata -1 -an -c:v libx264 -crf 26 -preset veryslow -profile:v main -pix_fmt yuv420p -movflags +faststart -vf $scale $filename.h264.mp4
|
|
ffmpeg -i $1 -map_metadata -1 -an -c:v libaom-av1 -crf 50 -b:v 0 -pix_fmt yuv420p -movflags +faststart -cpu-used 8 -vf $scale $filename.av1.webm
|
|
fi
|
|
fi
|
|
}
|
|
|
|
pdf() {
|
|
gallery
|
|
convert *.jpg -auto-orient -monochrome temp.pdf
|
|
ocrmypdf --rotate-pages --optimize 3 --jpeg-quality 70 temp.pdf document.pdf
|
|
rm temp.pdf
|
|
}
|
|
|
|
# fancy vim/shell switch with ctrl-z (see zshrc)
|
|
fancy-ctrl-z() {
|
|
if [[ $#BUFFER -eq 0 ]]; then
|
|
BUFFER="fg"
|
|
zle accept-line
|
|
else
|
|
zle push-input
|
|
zle clear-screen
|
|
fi
|
|
}
|
|
|
|
# easy vim/terminal switch after loading zsh-functions
|
|
zle -N fancy-ctrl-z
|
|
bindkey '^Z' fancy-ctrl-z
|