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

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

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

注意-我看过此问答- 我问的是如何从终端执行此操作...而不是如何添加按钮...按钮已经存在,我不需要添加它们。

答案1

有两个重要的工具可用于操作窗口clixdotoolwmctrl。这两个工具在功能上相互重叠,但与您的问题相关的最重要的命令是:

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

关闭窗口

控制:

wmctrl -ic <window_id>

最小化窗口

xdotool:

xdotool windowminimize <window_id>

取消最小化窗口

控制:

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

wmctrl -ia <window_id>

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

最大化窗口

xdotool:

xdotool windowsize <window_id> 100% 100%

控制:

wmctrl -ir <window_id> -b add,maximized_vert,maximized_horz

取消最大化窗口:

wmctrl -ir <window_id> -b remove,maximized_vert,maximized_horz

笔记

  • xdotool默认情况下,和wmctrl都不在您的系统上:

    sudo apt-get install xdotool wmctrl
    
  • 要运行当前积极的窗户:

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

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

  • 在许多情况下,可以使用窗口 ID或者窗口名称-i选项wmctrl告诉wmctrl使用窗口 ID。我建议不是使用窗口名称作为标识符,以防止名称冲突。这种情况比您想象的更容易发生。

  • 根据我自己的经验,在脚本中使用最大化;使用最大化/取消最大化在和wmctrl上都可能有点问题,而根据我的经验,该选项工作得更可靠。在大多数脚本中,我最终会混合使用和。UnityGnomexdotoolwmctrlxdotool

更多信息人机控制人xdotool(主要是这一部分:窗口命令)。

答案2

添加 Jacob Vlijm 的回答:

xdotool windowactivate $minwinid
xdotool windowraise $minwinid
xdotool windowfocus $minwinid

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

答案3

添加 Jacob Vlijm 的回答:

使用 xdotool 根据窗口名称最小化窗口:

xdotool search -name '<window_name>' windowminimize

要获取窗口名称列表,请使用:

wmctrl -l

答案4

隐藏当前窗口:

wmctrl -r :ACTIVE: -b toggle,hidden 

相关内容