54 lines
1.2 KiB
Bash
Executable File
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
|
|
|