不久前,我编写了一个wmctrl
基于 - 的脚本,用于实现热键以专注于运行gnome 终端实例,以避免当我需要在终端中运行任何内容时使用鼠标。升级到 Fedora 33 后似乎wmctrl -l
没有列出gnome 终端窗户了。但它确实列出了其他窗口 - 例如 Chrome 浏览器或 Electron 应用程序。
mdulko:~/ $ wmctrl -l
0x00a00001 3 fedora The Dandy Warhols - Country Leaver
0x02a0004c 2 fedora release – lower-constraints.txt
0x01c00007 1 fedora Slack | <redacted> | <redacted>
0x01000007 0 fedora Chrome/Chromium 85.0.4183.83 regression workaround : swaywm - Brave
这可能与 Fedora 默认使用的 Wayland 和我使用的 Wayland 的使用有关。为了编写脚本,我可能需要通过 gdbus 调用lookingGlass API。这是个好线索吗?
答案1
在Ubuntu上:
我通过禁用 Wayland(默认显示服务器)并使用 Xorg(较旧的显示服务器)wmctrl -l
来列出窗口。 要禁用 Wayland,gnome-terminal
取消注释以下行在/etc/gdm/custom.conf
WaylandEnable=false
我必须重新启动 Ubuntu 才能看到变化。
有关禁用 Wayland 的更多说明是这里。