Compare commits

...

2 Commits

Author SHA1 Message Date
yosh 72b454aaa2 screenshot: make canceling not show choose 2023-09-30 21:15:05 -04:00
yosh 94352621a9 albumsetup: fix 2023-09-30 21:14:38 -04:00
2 changed files with 20 additions and 15 deletions

View File

@ -39,6 +39,7 @@ grab_info() {
ARTIST="$(grab_tag "$1" ARTIST)"
ALBUM="$(grab_tag "$1" ALBUM)"
TITLE="$(grab_tag "$1" TITLE)"
ALBUMARTIST="$(grab_tag "$1" ALBUMARTIST)"
TRACKNUMBER="$(printf '%03g' "$(grab_tag "$1" TRACKNUMBER)")"
set -e
}
@ -72,7 +73,7 @@ extract_cover() {
set -e
# resize within the bounds of 1280x720
# if it's square then make it 722x720 so youtube doesn't make it a short
[ -f "$2" ] && magick mogrify -resize 1280x720 -background black -gravity center -extent 722x720 "$2"
[ -f "$2" ] && magick mogrify -resize 1280x720 -background black -gravity center -extent 722x720 "$2" || true
}
# sets COVER_PIC for use in convert_vid
@ -161,6 +162,7 @@ else
# sort by correct track numbers then remove track numbers later
sort -o "$OUTDIR/metadata.txt.sorted" "$OUTDIR/metadata.txt"
sort -o "$OUTDIR/ffmpeg_tracklist.txt" "$OUTDIR/ffmpeg_tracklist.txt"
while read -r track name; do
printf '%s\n' "$name"
done <"$OUTDIR/metadata.txt.sorted" >"$OUTDIR/metadata.txt"
@ -168,7 +170,7 @@ else
if [ -z "$NO_CONVERT" ]; then
errecho "Building full video..."
ffmpeg -safe 0 -f concat -i "$OUTDIR/ffmpeg_tracklist.txt" -c copy "$OUTDIR/$ARTIST - $ALBUM.webm"
ffmpeg -safe 0 -f concat -i "$OUTDIR/ffmpeg_tracklist.txt" -c copy "$OUTDIR/$ALBUMARTIST - $ALBUM.webm"
fi
rm "$OUTDIR/ffmpeg_tracklist.txt"

View File

@ -41,8 +41,8 @@ choose() {
freeze() {
tmpfreeze="$(mktemp -t screenshot_freeze_XXXX.png)"
$cap "$tmpfreeze"
$freeze "$tmpfreeze" &
$freeze_cmd "$tmpfreeze"
$freeze_img "$tmpfreeze" &
freeze_pid=$!
sleep 0.1
# x11: window manager makes it fullscreen
@ -52,23 +52,25 @@ freeze() {
case "${XDG_SESSION_TYPE:-}" in
wayland)
editor="swappy -f"
freeze="swayimg -g 0,0,1920,1080"
cap="grim -l 0"
freeze_img="swayimg -g 0,0,1920,1080"
freeze_cmd="grim -l 0"
ss() {
if [ -n "$REGION" ]; then
eval 'grim '"$(slurp -f '-g "%x,%y %wx%h"')"' "$tmpfp"'
else
grim "$tmpfp"
reg="$(slurp -f '-g "%x,%y %wx%h"')" || return 1
fi
grim ${REGION:+-g "$reg"} "$tmpfp"
wl-copy < "$tmpfp"
}
;;
*)
editor="gimp -n"
freeze="nsxiv -b -N SCREENSHOT_FREEZE"
cap="shotgun"
freeze_img="nsxiv -b -N SCREENSHOT_FREEZE"
freeze_cmd="shotgun"
ss() {
shotgun ${SCREEN:+-s} ${REGION:+$(hacksaw -f '-i %i -g %g')} \
if [ -n "$REGION" ]; then
reg="$(hacksaw -f '-i %i -g %g')" || return 1
fi
shotgun ${SCREEN:+-s} ${REGION:+$reg} \
${WINDOW:+-i $(xdotool getactivewindow)} "$tmpfp"
xclip -sel clipboard -t image/png < "$tmpfp"
}
@ -81,15 +83,16 @@ trap 'clean' EXIT
SCREEN="" REGION="" WINDOW="" FREEZE="" ssopts=""
while getopts :srwf OPT; do
case "$OPT" in
s) SCREEN=1 ;; #screen
s) SCREEN=1 ;; # screen
r) REGION=1 ;; # region
w) WINDOW=1 ;; # active window
w) WINDOW=1 ;; # active window (don't use with region)
f) freeze ;; # freeze screen, only useful with -r
*) echo "invalid option: -$OPTARG" && exit 1 ;;
esac
done
ss
ec=$?
[ -n "${freeze_pid:-}" ] && kill "$freeze_pid" && freeze_pid="" # unfreeze
choose
[ "$ec" -eq 0 ] && choose