![当前工作区中有哪些窗口?](https://linux22.com/image/1118861/%E5%BD%93%E5%89%8D%E5%B7%A5%E4%BD%9C%E5%8C%BA%E4%B8%AD%E6%9C%89%E5%93%AA%E4%BA%9B%E7%AA%97%E5%8F%A3%EF%BC%9F.png)
有没有办法可以轻松知道哪些窗口位于当前工作区(统一)?
这看起来像是一个愚蠢的问题但事实并非如此:如果一个窗口位于其他窗口后面因此不可见,那么就不可能确定该程序是否在当前工作区上,除非我决定移动所有窗口,这显然很烦人。
我正在使用 Ubuntu 12.04,今天升级了 apt-get。
谢谢您的回答!:)
答案1
您可以安装wmctrl
:
sudo apt-get install wmctrl
这是apt-cache show wmctrl
我的系统(13.10)所具有的:
描述:控制兼容 EWMH/NetWM 的 X 窗口管理器
Wmctrl 是一个命令行工具,用于与
兼容 EWMH/NetWM 的 X 窗口管理器交互(示例包括
Enlightenment、icewm、kwin、metacity 和 sawfish)。
.
Wmctrl 提供对 EWMH 规范中定义的几乎所有功能的命令行访问
。 例如,它可以最大化
窗口、使窗口粘滞、将它们设置为始终位于顶部。 它可以
切换和调整桌面大小以及执行许多其他有用的
操作。
然后,man wmctrl
告诉我们该-l
选项将:
列出由窗口管理器管理的窗口。
每个窗口输出一行,该行被
分成空格分隔的列。第一列始终包含
窗口标识(十六进制整数),
第二列始终包含桌面编号(-1 用于
标识粘性窗口)。如果指定了 -p 选项,则
下一列将包含窗口的 PID(
十进制整数)。如果指定了 -G 选项,
则接下来将有四个整数列:x 偏移、y 偏移、
宽度和高度。下一列始终包含
客户端计算机名称。该行的其余部分包含
窗口标题(标题中可能包含多个空格)。
那-x
将会
将 WM_CLASS 包含在窗口列表中或解释为 WM_CLASS 名称。
这是我在wmctrl -lx
打开六个不同的应用程序运行时看到的内容:
[07:37 AM] ~ $ wmctrl -lx
0x01c00008 -1 tint2.Tint2 N/A tint2
0x02400096 0 Navigator.Firefox vasa1-Inspiron-1545 12.04 - Which are the windows that are in the current workspace? - Ask Ubuntu - Mozilla Firefox
0x02600004 0 Thunar.Thunar vasa1-Inspiron-1545 _MyMkd - File Manager
0x01a00004 0 lxterminal.Lxterminal vasa1-Inspiron-1545 LXTerminal
0x02200021 0 geany.Geany vasa1-Inspiron-1545 wmctrl.mkd - /home/vasa1/Dropbox/_MyMkd - Geany
0x02800003 0 leafpad.Leafpad vasa1-Inspiron-1545 (Untitled)
0x02a00003 0 gcolor2.Gcolor2 vasa1-Inspiron-1545 gcolor2
[07:37 AM] ~ $