首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何通过单击Wayland来识别窗口

如何通过单击Wayland来识别窗口
EN

Unix & Linux用户
提问于 2017-05-03 00:28:12
回答 3查看 13.4K关注 0票数 33

我想识别一个窗口属于Wayland的哪个进程。是否有类似xprop for X的内容允许用户通过单击并输出所有窗口细节(包括PID )来选择窗口?

EN

回答 3

Unix & Linux用户

发布于 2018-04-03 00:15:43

好消息是,Gnome中有类似的东西,与xprop不同,它与Xorg和Wayland一起工作。如果您使用的是KDE、i3或其他工具,那么这最终可能会进入其他工具的领域。

首先,在键盘上键入"ALT+F2“键,这样就会弹出如下菜单:

之后,发出命令lg (用于“外观玻璃”)。

然后,这将打开一个看起来像玻璃的窗口,我们可以从中提取窗口信息。从外观玻璃的右上角选择“窗口”:

在那里,您将看到一个窗口列表,您可以从该列表中单击要标识的窗口的名称。

在本例中,我选择gedit作为示例:

在该输出的顶部,您可能会注意到:

代码语言:javascript
运行
复制
Inspecting object: object instance proxy GType: MetaWindowX11 ...

"GType“将是MetaWindowX11MetaWindowWayland中的一个。

此信息按https://fedoraproject.org/wiki/How_至_调试_韦兰_问题提供

票数 17
EN

Unix & Linux用户

发布于 2022-09-01 03:22:20

在Sway中,您可以针对swaymsg -t get_tree (类似于xprop )的应用程序进行grep,但所有窗口都可以同时使用。

票数 2
EN

Unix & Linux用户

发布于 2019-03-06 17:09:13

还有草案,草案xdg-foreign协议扩展,它允许获取由其他Wayland客户端创建的wl_surface's句柄。有了这个句柄,您可以从客户端的表面获取任何您可以获得的东西。然而,该协议仍然有其局限性:

  • 显然,如果没有在客户端中实现,它将无法工作。
  • 它是针对相互认识的客户端的,因此它不提供触发它的方法:您的客户端以某种方式与外国客户端通信,扩展不包括在内。然后,外部客户端通过这个扩展为您的客户端发布句柄。
  • xprop相比,它获得了太多的控制。事实上,你甚至可以画在外国的表面!

因此,这不太可能成为任何客户端从任何客户端获取表面参数的一般方法。但不要失去希望:在科技史上有很多例子,当一项最初为某种目的而设计的技术被广泛用于其他用途时,就像Android中的汽车打火机或可访问性API一样。此外,在未来,可能会出现一个更适合您的任务的协议扩展,因为确实需要它(例如,时间跟踪器)。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/362731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档