如何从终端关闭、最小化和最大化指定窗口?

21 gnome window-manager window window-control

我正在使用 GNOME 3.18 运行 Ubuntu GNOME 15.10,我想知道终端是否有办法关闭、最小化、取消最小化、最大化和取消最大化指定的窗口?

注意 - 我看过这个问答- 我问的是如何从终端做到这一点......不是如何添加按钮......按钮已经存在,我不需要添加它们。

Jac*_*ijm 28

有两个重要的工具可以用来操作窗口clixdotoolwmctrl。这两种工具在功能上相互重叠,但最重要的命令涉及您的问题:

在(无疑是不完整的)概述中,列出了我最常用的命令:

关闭窗口

wmctl:

wmctrl -ic <window_id>
Run Code Online (Sandbox Code Playgroud)

最小化窗口

xdotool:

xdotool windowminimize <window_id>
Run Code Online (Sandbox Code Playgroud)

取消最小化窗口

wmctl:

有效地取消最小化是通过以下方式完成的:

wmctrl -ia <window_id>
Run Code Online (Sandbox Code Playgroud)

有效地提到,因为命令移动到相应的桌面,取消最小化并提升窗口,但该命令也在未最小化的窗口上执行此操作。

最大化窗口

xdotool:

xdotool windowsize <window_id> 100% 100%
Run Code Online (Sandbox Code Playgroud)

wmctl:

wmctrl -ir <window_id> -b add,maximized_vert,maximized_horz
Run Code Online (Sandbox Code Playgroud)

取消最大化窗口:

wmctrl -ir <window_id> -b remove,maximized_vert,maximized_horz
Run Code Online (Sandbox Code Playgroud)

笔记

  • 双方xdotoolwmctrl没有在系统默认情况下:

    sudo apt-get install xdotool wmctrl
    
    Run Code Online (Sandbox Code Playgroud)
  • 要在当前活动的窗口上运行任何命令:

    • 对于wmctrl命令,删除-i选项,替换<window_id>:ACTIVE:

    • 对于xdotool命令:替换<window_id>$(xdotool getactivewindow)

  • 在许多情况下,可以使用window idwindow name来运行命令。中的-i选项wmctrl告诉wmctrl使用窗口 ID。我建议不要使用窗口的名称作为标识符,以防止名称冲突。它比您预期的更容易发生。

  • 根据我自己的经验,在脚本中使用最大化;使用wmctrl最大化/取消最大化在Unity和上都可能有点问题Gnome,而根据xdotool我的经验,该选项更有效。在大多数脚本中,我最终混合使用wmctrlxdotool.

有关man wmctrlman xdotool 的更多信息(主要是部分:WINDOW COMMANDS)。


小智 6

添加 Jacob Vlijm 的答案:

xdotool windowactivate $minwinid
xdotool windowraise $minwinid
xdotool windowfocus $minwinid
Run Code Online (Sandbox Code Playgroud)

也适用于取消最小化窗口。动画对我来说更快。