Вы не можете использовать API Clutter для этого; скриншот необходимо выполнить с помощью композитора в нужное время, а сохранение данных в файл должно выполняться асинхронно, чтобы избежать блокировки цикла композитора.
GNOME Shell предоставляет API DBus для снятия скриншотов и скринкастов, что полезно для внешних служб (например, gnome-screenshot
использует этот API, если присутствует, вместо использования X11 API). Так как вы пишете расширение, вы можете использовать один и тот же внутренний API, чтобы сделать снимок, импортируя Shell
модуль и использовать его Shell.Screenshot
класс:
const Shell = imports.gi.Shell;
const Lang = imports.lang;
let shooter = new Shell.Screenshot();
shooter.screenshot (filename, includePointer, onScreenshotComplete);
Где filename
путь к файлу, который вы хотите сохранить; includePointer
- это логическое значение, определяющее, следует ли указывать указатель на скриншот; и onScreenshotComplete
- функция, вызываемая при сохранении снимка экрана.
Проверьте этот: http://www.roojs.org/seed/gir-1.2-gtk-3.0/seed/Gdk.Screen.html#expand Выглядит аппаратное обеспечение !? Я посмотрю на него –
Не используйте этот сайт: он полностью устарел. Это также относится к Seed, привязке самоанализа на JavaScriptCore для JS. Оболочка GNOME написана с использованием GJS, вместо этого привязана к MozJs, что означает, что есть некоторые отличия. Плюс, как я уже сказал, бот-семя и этот веб-сайт больше не поддерживаются и ужасно устарели. – ebassi
Это устаревшее. Но некоторые варианты по-прежнему полезны. Во всяком случае, Gdk.Screen все еще находится в стабильном выпуске? И соответствует ли оно тому, что мне нужно? –