我试图将多个Chrome独立窗口分组在Ubuntu14.04中的同一个发射器下。在WM_CLASS文件中指定多个.desktop变量似乎是不可能的(参见关于这个答案的注释)。
我遇到的第一个解决方案是,在短时间延迟之后,使用xprop将额外窗口的WM_CLASS更改为与选择的主窗口相同。如果我不指定要在命令行中更改哪个窗口,让它给我一个交叉窗口,然后单击“任性”窗口,并使用如下命令进行操作,这是可行的:
xprop -f WM_CLASS 8s -set WM_CLASS crx_kphgejagakmceapfinpoopapfdnkkepf(从这对同一问题的回答中得不到太多的理解)
它获得了新的WM_CLASS,Ubuntu立即将其重新组合到所选的启动程序下,而不是Chrome。
但是,尽管所有外观的窗口都有非常简单的名称Todoist (这是标题栏上显示的,而xprop | grep -i name给出的是
WM_NAME(UTF8_STRING) = "Todoist"
_NET_WM_NAME(UTF8_STRING) = "Todoist"
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"所以,我决定不能信任X道具。
相反,我发现我可以使用python包wnck来访问这个窗口,按照某种方式:
import wnck
todoist = [w for w in wnck.screen.get_defaults().get_windows()
if 'todoist' in w.get_name().lower()][0]因此,如何使用此对象todoist更改基础WM_CLASS
我意识到这完全是一个xy问题,所以我愿意接受完全不同的方法。
发布于 2016-09-08 16:36:48
发布于 2020-11-11 20:33:00
发布于 2021-12-02 11:14:26
在使用名称时找到了答案。
我使用window类在桌面上显示窗口列表,并使用类的右侧获取应用程序名称,如:
0x0320002c 0 Navigator.Firefox LSA-XPS-13-9310 Messages pour le Web - Mozilla Firefox将显示"Firefox“
然而,团队正在使用类名中的一个空格:
0x04800005 0 microsoft teams - preview.Microsoft Teams - Preview LSA-XPS-13-9310 Microsoft Teams所以我的任务栏根本没有显示名字。
我用:
xdotool search --name "Teams" set_window --class "Microsoft"
xdotool search --name "Teams" set_window --classname "Teams"要同时修改类的右和左部分,由xprop:WM_CLASS(STRING) = "Microsoft", "Teams"、这样我的任务栏就可以工作了以如下方式显示。
https://stackoverflow.com/questions/36650865
复制相似问题