如何在 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",method_name,method_params,NULL,G_DBUS_CALL_FLAGS_NONE,-1,&error);