【问题标题】:Programmatically hide/show a window in Linux在 Linux 中以编程方式隐藏/显示窗口
【发布时间】:2014-12-29 12:23:22
【问题描述】:

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

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

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

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

注意:我尝试使用wmctrl,但wmctrltoggle,hidden 功能已经损坏了一段时间,并且两年内没有更新,因此不太可能很快使用。网上到处都是关于此的错误报告。

【问题讨论】:

    标签: linux window hide minimize


    【解决方案1】:

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

    xdotool windowunmap id
    xdotool windowmap id
    

    你可以通过

    获取id

    xdotool getactivewindow

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

    xdotool search --onlyvisible --name nameofapp
    xdotool search --pid pid
    

    【讨论】:

      【解决方案2】:

      也许你可以尝试这样的事情。它像@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
      

      【讨论】:

      • 有一个错字:使用xbinkeys
      • 我一直在使用一个非常相似的脚本,windowmap 行是xdotool search --class terminator windowmap windowsize 1920 1080 windowmove 1920 0。这工作正常,但不知何故,只是一点点。 1-2小时后,或者可能使用了几十次后?我不知道? ...它停止工作。该窗口实际上不再无法映射,我不知道如何修复它。 TL;DR 对于终端,我建议改用 Guake。
      【解决方案3】:

      你可以使用xdotool

      $ xdotool search --name "Stack Overflo"
      24415619
      $ xdotool windowminimize 24415619
      

      基本上,您首先会找到一个窗口(按标题、按活动状态等),它会为您提供其 ID。然后调用命令。有很多方法可以找到一个窗口,请参阅手册页。

      xdotool 至少在 Debian、Ubuntu 和 Fedora 中以软件包的形式提供。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-21
        • 1970-01-01
        • 2017-07-06
        • 2018-12-29
        相关资源
        最近更新 更多