背景:我正在开发一款名为ActivityWatch的软件,它可以记录您在计算机上所做的事情。基本上是尝试解决以下问题:RescueTime、selfspy、arbtt 等。
我们所做的核心工作之一是记录有关活动窗口(类和标题)的信息。过去,这是在 Linux 上使用 xprop 完成的,现在 python-xlib 没有问题。
但是现在我们遇到了一个问题: Wayland 正在兴起,据我所知,Wayland 没有活动窗口的概念。所以我担心的是,我们将不得不为 Wayland 可用的每个桌面环境实现支持(假设它们将提供获取有关活动窗口的信息的能力)。
希望他们最终会融合并有一些共同的界面来完成这项工作,但我并没有屏住呼吸......
我一直在期待这个问题。但是今天我们收到了第一个来自 Wayland实际用户的对 Wayland 支持的用户请求。随着较大的发行版采用 Wayland 作为默认显示服务器协议(Fedora 25 已经在使用它,Ubuntu 将在即将推出的 17.10 中切换),随着时间的推移,情况将变得更加严峻。
ActivityWatch 的相关问题:
- https://github.com/ActivityWatch/aw-watcher-window/issues/18
- https://github.com/ActivityWatch/activitywatch/issues/92
还有其他应用程序,如 ActivityWatch,需要相同的功能(RescueTime、arbtt、selfspy 等),它们现在似乎不支持 Wayland,我找不到有关它们计划这样做的任何详细信息。
我现在有兴趣实现对 Gnome 的支持,以开始并跟进其他人,因为路径变得更加清晰。
关于韦斯顿的一个类似问题在这里被问到:get the list of active windows in wayland weston
编辑:我在 Freenode 上的#wayland 中询问,得到以下答复:
15:20:44 ErikBjare Hello everybody. I'm working on a piece of self-tracking software called ActivityWatch (https://github.com/ActivityWatch/activitywatch). I know this isn't exactly the right place to ask, but I was wondering if anyone knew anything about getting the active window in any Wayland-using DE.
15:20:57 ErikBjare Created a question on SO: https://stackoverflow.com/questions/45465016/how-do-i-get-the-active-window-on-gnome-wayland
15:21:25 ErikBjare Here's the issue in my repo for it: https://github.com/ActivityWatch/activitywatch/issues/92
15:22:54 ErikBjare There are a bunch of other applications that depend on it (RescueTime, selfspy, arbtt, ulogme, etc.) so they'd need it as well
15:24:23 blocage ErikBjare, in the core protocol you cannot know which windnow has the keyboard or cursor focus
15:24:39 blocage ErikBjare, in the wayland core protocol *
15:25:10 blocage ErikBjare, you can just know if your window has the focus or not, it a design choise
15:25:23 blocage avoid client spying each other
15:25:25 ErikBjare blocage: I'm aware, that's my reason for concern. I'm not saying it should be included or anything, but as it looks now every DE would need to implement it themselves if these kind of applications are to be supported
15:25:46 ErikBjare So wondering if anyone knew the teams working with Wayland on Gnome for example
15:26:11 ErikBjare But thanks for confirming
15:26:29 blocage ErikBjare, DE should create a custom extension, or use D-bus or other IPC
15:27:31 blocage ErikBjare, I guess some compositor are around here, but I do not know myself if there is such extension already
15:27:44 blocage compositor developers *
15:28:36 ErikBjare I don't think there is (I've done quite a bit of searching), so I guess I need to catch the attention of some DE developers
15:29:16 ErikBjare Thanks a lot though
15:29:42 ErikBjare blocage: Would you mind if I shared logs of our conversation in the issue?
15:30:05 blocage just use it :) it's public
15:30:19 ErikBjare ty :)
编辑 2:在 Gnome bugtracker 中提交了一个增强问题。
tl;dr:使用 Wayland 时如何在 Gnome 上获得活动窗口?