0

我想在 Python 中每 X 秒检查一次窗口标题 - 到目前为止没有什么大问题,我发现了很多像 xprop 这样的东西。
现在这是棘手的部分:当使用 xprop -id [id] 而不是指针时,我只得到 2 或 3 行

_KDE_NET_WM_USER_CREATION_TIME(CARDINAL) = 24625202
SM_CLIENT_ID(STRING) = "1028c1d320b210000136266856800000015460035"
WM_CLIENT_LEADER(WINDOW): window id # 0x3a00004

这不是我在其他地方看到的,也不是我需要的——那么我怎样才能得到那个标题呢?这是一些错误配置还是我对所有事情都大错特错?

PS:我正在使用 Fedora 18 顺便说一句

4

2 回答 2

0

只要您在两种情况下都选择相同的窗口,您-id就可以通过鼠标单击获得相同的属性集。要获取窗口 ID,请使用并单击窗口。xwininfo

您获得的一小部分属性可能仅仅是因为列表很大并且包含许多空白行。尝试向上滚动终端。

于 2013-03-08T09:27:10.537 回答
0

使用时,xprop -name somewindowname ...您将获得所有信息。但是,如果somewindowname是您要查找的内容,则该表格可能没有用。

另一种方法,假设窗口 id 是一个十六进制数(例如,0x04a27cf6)是使用wmctrl -l和 grep 的数字。例如,在我的机器(tini)上,窗口 0x04a27cf6 标题为“xprop 手册页”,

wmctrl  -l | grep 0x04a27cf6

生产

0x04a27cf6  4 tini xprop man page

请注意,“wmctrl 是一个 UNIX/Linux 命令行工具,用于与兼容 EWMH/NetWM 的 X 窗口管理器进行交互”,如tomas.styblo.namewikipedia中所述。几个 linux 发行版的包管理器可以安装它。

编辑:xprop阅读 nm 的答案后,我进行了更多测试。在昨天的测试中,xprop -id 0x4a27cf7只输出一行,_NET_WM_USER_TIME(CARDINAL) = 440569797. 这不是“向上滚动终端”的问题。不幸的是,我没有可用的窗口 0x4a27cf7 了,现在所有类似的测试似乎都可以正常工作,如 nm 的回答所示。例如,在命令之后

for i in $(wmctrl -l |tee w-wmctrl | cut -c-10); do xprop -id $i | grep ^WM_NAME; done > w-xprop

文件w-wmctrlw-xprop每个文件都有 39 行,通过并排比较diff -y w-*|less无一例外地显示两个文件中的名称相同。

于 2013-03-07T18:46:32.213 回答