40 lines
1.2 KiB
Bash
Executable File
40 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Check if XDG_VIDEOS_DIR is not set
|
|
if [ -z "$XDG_VIDEOS_DIR" ]; then
|
|
XDG_VIDEOS_DIR="$HOME/Videos"
|
|
fi
|
|
|
|
# Directorio donde se guardarán las grabaciones
|
|
SAVE_DIR="$XDG_VIDEOS_DIR/Recordings"
|
|
mkdir -p "$SAVE_DIR"
|
|
|
|
# Si ya está corriendo gpu-screen-recorder, se envía SIGINT para detenerlo correctamente
|
|
if pgrep -f "gpu-screen-recorder" >/dev/null; then
|
|
pkill -SIGINT -f "gpu-screen-recorder"
|
|
|
|
# Espera un momento para asegurarse de que la grabación se haya detenido y el archivo esté listo
|
|
sleep 1
|
|
|
|
# Obtiene el último archivo grabado
|
|
LAST_VIDEO=$(ls -t "$SAVE_DIR"/*.mp4 2>/dev/null | head -n 1)
|
|
|
|
# Notificación con acciones: "View" abre el archivo, "Open folder" abre la carpeta
|
|
ACTION=$(notify-send -a "Ax-Shell" "⬜ Recording stopped" \
|
|
-A "view=View" -A "open=Open folder")
|
|
|
|
if [ "$ACTION" = "view" ] && [ -n "$LAST_VIDEO" ]; then
|
|
xdg-open "$LAST_VIDEO"
|
|
elif [ "$ACTION" = "open" ]; then
|
|
xdg-open "$SAVE_DIR"
|
|
fi
|
|
exit 0
|
|
fi
|
|
|
|
# Nombre del archivo de salida para la nueva grabación
|
|
OUTPUT_FILE="$SAVE_DIR/$(date +%Y-%m-%d-%H-%M-%S).mp4"
|
|
|
|
# Iniciar la grabación
|
|
notify-send -a "Ax-Shell" "🔴 Recording started"
|
|
gpu-screen-recorder -w screen -q ultra -a default_output -ac opus -cr full -f 60 -o "$OUTPUT_FILE"
|