如何在 Wayland 上截图?
How can I take a screenshot on Wayland?
现在需要开发一个可以在Ubuntu、CentOS、fedora上进行截图的插件。我尝试用 Xlib 编写它。在Ubuntu和CentOS上可以运行,但是Fedora用的是Wayland,我开发的插件不能用
gnome截屏可以在这些平台上运行,但是看了他的源码后发现它可以通过调用其他进程来实现截屏,我很难学习。
有什么方法可以在 Wayland 引擎上截屏吗?
我是用dbus搞定的,这里是轻代码:
method_name = "Screenshot";
method_params = g_variant_new ("(bbs)",
TRUE,
FALSE, /* flash */
filename);
connection = g_application_get_dbus_connection (g_application_get_default ());
g_dbus_connection_call_sync (connection,
"org.gnome.Shell.Screenshot",
"/org/gnome/Shell/Screenshot",
"org.gnome.Shell.Screenshot",
method_name,
method_params,
NULL,
G_DBUS_CALL_FLAGS_NONE,
-1,
NULL,
&error);
现在需要开发一个可以在Ubuntu、CentOS、fedora上进行截图的插件。我尝试用 Xlib 编写它。在Ubuntu和CentOS上可以运行,但是Fedora用的是Wayland,我开发的插件不能用
gnome截屏可以在这些平台上运行,但是看了他的源码后发现它可以通过调用其他进程来实现截屏,我很难学习。
有什么方法可以在 Wayland 引擎上截屏吗?
我是用dbus搞定的,这里是轻代码:
method_name = "Screenshot";
method_params = g_variant_new ("(bbs)",
TRUE,
FALSE, /* flash */
filename);
connection = g_application_get_dbus_connection (g_application_get_default ());
g_dbus_connection_call_sync (connection,
"org.gnome.Shell.Screenshot",
"/org/gnome/Shell/Screenshot",
"org.gnome.Shell.Screenshot",
method_name,
method_params,
NULL,
G_DBUS_CALL_FLAGS_NONE,
-1,
NULL,
&error);