From d42c74de661405fd93560d877e9482c8cd187929 Mon Sep 17 00:00:00 2001 From: Scott Worley Date: Sun, 21 Sep 2025 17:08:43 -0700 Subject: [PATCH] Videos in $XDG_VIDEOS_DIR (fallback: ~/Videos) --- srec.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/srec.py b/srec.py index 0fc81a4..2639ef8 100644 --- a/srec.py +++ b/srec.py @@ -5,6 +5,7 @@ # Free Software Foundation, version 3. from dataclasses import dataclass +import os import subprocess from typing import Callable @@ -15,25 +16,36 @@ from gi.repository import Gtk # nopep8 pylint: disable=wrong-import-position @dataclass class Recording: + filename: str process: subprocess.Popen[bytes] recording: Recording | None = None +def make_filename() -> str: + directory = os.environ.get( + 'XDG_VIDEOS_DIR', + os.path.expanduser('~/Videos')) + os.makedirs(directory, exist_ok=True) + return os.path.join(directory, "screen-recording.mkv") + + def on_start_recording(_: Gtk.Button, stack: Gtk.Stack) -> None: global recording # pylint: disable=global-statement assert recording is None screen_size = '1366x768' # TODO + filename = make_filename() command = [ 'ffmpeg', '-video_size', screen_size, '-framerate', '25', '-f', 'x11grab', '-i', ':0.0+0,0', '-f', 'pulse', '-ac', '2', '-i', 'default', - 'screen-recording.mkv'] # nopep8 + filename] # nopep8 # pylint: disable=consider-using-with recording = Recording( + filename=filename, process=subprocess.Popen(command, stdin=subprocess.PIPE)) stack.set_visible_child_name("recording") -- 2.50.1