在 Linux 中以编程方式隐藏/显示窗口

Jui*_*icy 3 linux window minimize hide

我一直在到处寻找解决方案。

我如何显示/隐藏(或最小化/取消最小化)Linux 窗口。

我对任何语言的任何解决方案感兴趣。

如果相关,我会使用 Debian、Gnome、Metacity 和 Compton 复合管理器

注意:我尝试使用,wmctrl但 的toggle,hidden功能wmctrl已经损坏了一段时间,并且在两年内没有更新,因此不太可能很快起作用。网络上充斥着有关此问题的错误报告。

sle*_*ske 7

您可以使用xdotool

$ xdotool search --name "Stack Overflo"
24415619
$ xdotool windowminimize 24415619
Run Code Online (Sandbox Code Playgroud)

基本上,您首先找到一个窗口(按标题、按活动状态等),它为您提供了它的 ID。然后调用命令。有很多方法可以找到一个窗口,请参见联机帮助页。

xdotool 可在至少 Debian、Ubuntu 和 Fedora 中作为软件包使用。

注意:无耻地从这个答案中窃取:https : //superuser.com/questions/186748/how-to-hide-or-minimize-x11-window-from-console


小智 5

也许你可以尝试这样的事情。它像@sleske 建议的那样使用 xdotool。我使用 xbinkeys 将脚本绑定到鼠标按钮。

#!/bin/bash

file=/tmp/last_active_window
if [[ -s $file ]] ; then
    xdotool windowmap `cat $file`
    cat /dev/null > $file
else 
    wid=`xdotool getactivewindow`      
    xdotool windowunmap $wid
    echo $wid > $file
fi
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以使用隐藏和取消隐藏窗口

xdotool windowunmap id
xdotool windowmap id
Run Code Online (Sandbox Code Playgroud)

你可以通过以下方式获取id

xdotool getactivewindow

这将为您提供当前活动窗口的 id,如果您想通过应用程序名称或 pid 搜索 id

xdotool search --onlyvisible --name nameofapp
xdotool search --pid pid
Run Code Online (Sandbox Code Playgroud)