Linux常用命令指南 - wmctrl命令 窗口管理器
文章目录
一、wmctrl 是什么?
示例:pandas 是管理窗口的一种工具。
二、wmctrl help 中文手册
以下是翻译的 wmctrl help 中文手册:
wmctrl 1.07
用法:wmctrl [选项]...
行动:
-m 显示有关窗口管理器的信息和
关于环境。
-l 列出由窗口管理器管理的窗口。
-d 列出桌面。当前桌面已标记
带星号。
-s <DESK> 切换到指定的桌面。
-a <WIN> 通过切换到桌面来激活窗口并
提高它。
-c <WIN> 优雅地关闭窗口。
-R <WIN> 将窗口移动到当前桌面并
激活它。
-r <WIN> -t <DESK> 将窗口移动到指定的桌面。
-r <WIN> -e <MVARG> 调整窗口大小并在桌面上移动窗口。
<MVARG> 参数的格式如下所述。
-r <WIN> -b <STARG> 更改窗口的状态。使用这个选项是
例如可以使窗口最大化,
最小化或全屏。<STARG> 的格式
下面给出了参数和可能状态的列表。
-r <WIN> -N <STR> 设置窗口的名称(长标题)。
-r <WIN> -I <STR> 设置窗口的图标名称(短标题)。
-r <WIN> -T <STR> 设置窗口的名称和图标名称。
-k(开|关)激活或停用窗口管理器
“显示桌面”模式。许多窗口管理器
不实现该模式。
-o <X>,<Y> 更改当前桌面的视口。
X 和 Y 值用逗号分隔。
它们定义视口的左上角。
窗口管理器可以忽略该请求。
-n <NUM> 更改桌面数量。
窗口管理器可以忽略该请求。
-g <W>,<H> 更改所有桌面的几何形状(通用大小)。
窗口管理器可以忽略该请求。
-h 打印帮助。
选项:
-i 将 <WIN> 解释为数字窗口 ID。
-p 在窗口列表中包含 PID。很少
X 应用程序支持此功能。
-G 在窗口列表中包含几何图形。
-x 在窗口列表中包含 WM_CLASS 或
将 <WIN> 解释为 WM_CLASS 名称。
-u 覆盖自动检测并强制使用 UTF-8 模式。
-F 修改窗口标题匹配的行为
算法。它将仅匹配完整的窗口标题
当使用此选项时,而不是子字符串。
此外,它使匹配区分大小写。
-v 冗长。对于调试很有用。
-w <WA> 使用解决方法。该选项可能会出现多个
次。下面列出了可用的解决方法。
论据:
<WIN> 该参数指定窗口。默认情况下是
解释为字符串。字符串已匹配
针对窗口标题和第一个匹配的
使用窗口。匹配不区分大小写
并且该字符串可能出现在任何位置
标题的。
-i 选项可用于解释参数
作为以十进制表示的数字窗口 ID
数字。如果以“0x”开头,那么
它将被解释为十六进制数。
-x 选项可用于解释参数
作为字符串,与窗口的匹配
类名(WM_CLASS 属性)。第一个匹配
使用窗口。匹配不区分大小写
并且该字符串可能出现在任何位置
的类名。所以建议始终使用
-F 选项与 -x 选项结合使用。
特殊字符串“:SELECT:”(不带引号)
可用于指示 wmctrl 让您选择
窗口,点击它。
特殊字符串“:ACTIVE:”(不带引号)
可用于指示 wmctrl 使用当前
操作的活动窗口。
<DESK> 桌面号码。桌面从零开始计数。
<MVRG> 指定位置和大小的更改
窗户的。参数的格式为:
<G>、<X>、<Y>、<W>、<H>
<G>:指定为数字的重力。数字是
EWMH 规范中定义。的价值
零特别有用,它意味着“使用
窗口的默认重力”。
<X>,<Y>:窗口新位置的坐标。
<W>、<H>:窗口的新宽度和高度。
-1 的值可能会出现在
任何 <X>、<Y>、<W> 和 <H> 属性
保持财产不变。
<STARG> 指定窗口状态的更改
通过 _NET_WM_STATE 请求。
此选项允许更改两个属性
同时,特别是允许两者
水平和垂直最大化
一起改变。
参数的格式为:
(删除|添加|切换),<PROP1>[,<PROP2>]
EWMH 规范定义了
以下属性:
模态、粘性、最大化垂直、最大化水平、
阴影、skip_taskbar、skip_pager、隐藏、
全屏、上方、下方
解决方法:
DESKTOP_TITLES_INVALID_UTF8 正确打印非 ASCII 桌面标题
使用窗口制作器时。
窗口列表的格式:
<窗口 ID> <桌面 ID> <客户端计算机> <窗口标题>
桌面列表的格式:
<桌面 ID> [-*] <几何图形> <视口> <工作区域> <标题>
作者,现任维护者:Tomas Styblo <tripie@cpan.org>
根据 GNU 通用公共许可证发布。
版权所有 (C) 2003
三、wmctrl 常用使用场景
3.1 查看当前打开窗口对应的进程号
可以借助 wmctrl -lp
查看当前打开窗口对应的进程号,然后通过 ps -ef
查看对应的进程名进行指定进程分析。
$ wmctrl -lp
0x00c0000a 0 2830 xxx xxx: ~
0x02200003 0 3217 xxx xxx - SegmentFault 思否 - Google Chrome
$ ps -ef |grep 3217
xxx 3217 2166 0 11月07 ? 00:04:20 /opt/google/chrome/chrome
其他可以查看当前打开窗口对应的进程号的方式还有:xprop
, xwininfo
, xdotool
。
四、总结
可以借助 wmctrl -lp
查看当前打开窗口对应的进程号,然后通过 ps -ef
查看对应的进程名进行指定进程分析。