当应用程序窗口最小化时,我需要仅使用命令行来最大化其窗口。
那么在知道进程 ID 的情况下如何做到这一点?
执行wmctrl
命令时出现以下错误:
X Error of failed request: BadWindow (invalid Window parameter)
Major opcode of failed request: 20 (X_GetProperty)
Resource id in failed request: 0x6718
Serial number of failed request: 11
Current serial number in output stream: 11
答案1
这应该有效:
xdotool windowactivate `xdotool search --pid YOUR_PID_HERE | tail -1`
xdootool 在通过 pid 查找时会报告相当多的窗口 id,因此我“跟踪”输出以仅从输出中获取最后一个窗口 id。对我来说,它与 Firefox 和 gnome-calculator 配合得很好。如果 xdotool 只为您的 pid 报告一个窗口 id,那么尾管当然是不必要的。
答案2
您可以使用wmctrl
(手册页)从命令行操作窗口。
sudo apt-get install wmctrl
使用或任何您觉得合适的其他包管理器来安装程序。- 获取属于您的 PID 的窗口 ID。
wmctrl -lp
将列出所有现有窗口,并在输出的第一列中列出它们的窗口 ID,在第二列中列出 PID。 wmctrl -iR <window ID>
使用或升起窗口wmctrl -ia <window ID>
,具体取决于您是要切换到其桌面还是将其移动到当前桌面。
答案3
这应该可以做到:
awk '$3 == 17213 {print $1}' <(wmctrl -lp) | xargs -i% sh -c "xwit -id % -pop -raise; wmctrl -i -r % -b add,maximized_vert,maximized_horz"
您需要更改awk
语句中的 ID,但这将最大化并激活窗口。您还需要安装xwit
( sudo apt-get install xwit
) 以使非最小化功能正常工作。
这之所以如此复杂,是因为没有一个工具可以满足你所有的需求,而那些功能稍强的工具也存在终端问题:
xdotool
无法通过 PID 查找(尽管这是广告宣传的功能)wmctrl
不知道如何最小化和最大化事物xwit
不能改变窗口提示,但它可以取消最小化
理想情况下,您应该能够仅使用xdotool
或来执行此wmctrl
操作,但它们的 PID 查找分别不起作用或不存在。