dotfiles/.local/bin/screenrec_zone.sh_gitlab
2025-05-28 18:33:04 +02:00

54 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
wf-recorder_check() {
if pgrep -x "wf-recorder" > /dev/null; then
pkill -INT -x wf-recorder
pkill -RTMIN+11 waybar
exit 0
fi
record
}
record() {
pkill -RTMIN+11 waybar
screencast_dir="$HOME/Screenrecord"
mkdir -p "$screencast_dir"
timestamp=$(date +"%Y-%m-%d-%H-%M-%S")
screencast_file="$screencast_dir/screencast_$timestamp.mkv"
webm_file="${screencast_file%.*}.webm"
# Grabación de región con slurp
wf-recorder -c h264_vaapi -d /dev/dri/by-path/pci-0000:65:00.0-render -g "$(slurp)" -f "$screencast_file"
pkill -RTMIN+11 waybar
# Conversión sin pérdida a webm
ffmpeg -i "$screencast_file" -c:v libvpx-vp9 -lossless 1 "$webm_file"
if [ ! -s "$webm_file" ]; then
notify-send "❌ Error: conversión fallida"
rm -f "$screencast_file"
exit 1
fi
notify-send "✅ Video postprocesado" "Convirtiendo a WebM completado"
# Subida a GitLab Snippet
link=$(~/.local/bin/gitlab-paste "$webm_file" | grep -o 'https://gitlab.com/-/snippets/[^ ]*')
# Notificación y clipboard
if [ -n "$link" ]; then
notify-send "📤 Video subido" "Link copiado al portapapeles"
else
notify-send "⚠️ Subida fallida" "No se obtuvo enlace"
fi
# Limpieza
rm -f "$screencast_file"
}
wf-recorder_check