Программно сделать скриншот окна терминала в Gnome / Wayland - PullRequest
1 голос
/ 07 января 2020

Я работаю над терминальным шрифтом , и я хотел бы сделать скриншоты различных терминалов (по крайней мере, xterm, gnome-terminal и konsole), на которых выполняется тестовое приложение рендеринга. Выполнение команды не является проблемой , но обычный переносимый X-способ, команда xwd, не очень удобен для сценариев и работает только в приложениях X (xterm, в этом случае) и (что неудивительно) игнорирует события из Wayland windows.

1 Ответ

1 голос
/ 07 января 2020

Разобрался (я sh). Все, что нужно, это добавить gnome-screenshot -w в программу, которую я хочу запустить. В моем конкретном случае c я добавил скрипт, который запускал тест рендеринга, затем спал в течение двух секунд (чтобы Konsole отбросила виджет размера окна), а затем запустил команду снимка экрана:

#!/bin/sh

./test_font_rendering.py
sleep 2 # Needed for Konsole to clear the window size

# Capture the active window to a file given as a parameter
gnome-screenshot -w -f $1.png

Так для генерации образцов вам понадобится что-то вроде:

gnome-terminal -- bash -c './test_font_rendering.sh gnome-terminal'
xterm -e './test_font_rendering.sh xterm'
...