隐藏启动器中的两个终端之一?

隐藏启动器中的两个终端之一?

我正在使用 Ubuntu 14.04,并且正在尝试从启动器中删除一个正在运行的程序。

具体来说,我想启动两个终端。一个用于我正常工作,有多个选项卡,另一个用于运行 ssh 连接。我想从启动器中隐藏第二个终端,并“将其最小化到托盘”(这是我在 Windows 中对它的称呼)。

有没有办法做到这一点?

答案1

使用下面的脚本来切换可见性(使用组合键),您可以让一个终端窗口在最小化时(完全)隐藏,就好像它不存在一样,而另一个终端窗口在最小化时在启动器中保持可见。

为隐藏的终端窗口创建单独的配置文件

诀窍是在gnome-terminal首选项中创建一个单独的配置文件,并在窗口标题中使用独特的名称。这样就可以使用命令wmctrl -l取消映射xdotool它与窗口取消映射命令,使其在启动器中不可见。

使用组合键切换可见性/打开“可隐藏”窗口

您必须设置一个组合键来切换终端窗口的可见性,因为它在启动器中不可见(见下文)。

如何设置

该脚本需要安装xdotool和:wmctrl

sudo apt-get install xdotool
sudo apt-get install wmctrl

然后:

  1. 在偏好设置中创建一个单独的配置文件gnome-terminal:选择“编辑”>“配置文件”,单击“新建”。

    • 将新配置文件命名为(准确)“隐藏”
    • 在“标题和命令”选项卡中,将窗口标题设置为(精确地)“Hidden_​​Profile”,并放置在窗口标题之前:

      在此处输入图片描述

      注意:您可能需要注销/登录才能使个人资料“可加载”

  2. 通过运行以下命令测试配置文件是否有效:

    gnome-terminal --window-with-profile=Hidden
    

    应该会弹出一个窗口,窗口标题为“Hidden_​​profile”:

    在此处输入图片描述

  3. 将以下脚本复制到一个空文件中,并将其另存为run_hidden.py

  4. 通过命令测试运行:

    python3 /path/to/run_hidden.py
    

    它应该做什么:

    • 如果没有运行单独配置文件中的终端窗口,则运行它:应该从单独(“可隐藏”)配置文件打开一个新终端。
    • 再次运行:窗口将(完全)隐藏,从启动器中也是如此
    • 第三次运行:窗口应该会重新出现
  5. 如果一切正常,请将脚本(运行命令)添加到快捷键组合中:选择:系统设置 > “键盘” > “快捷键” > “自定义快捷键”。单击“+”并添加命令:

    python3 /path/to/run_hidden.py
    

剧本

#!/usr/bin/env python3
import subprocess
import os

home = os.environ["HOME"]
hidden_windowid = home+"/.window_id.txt"

get = lambda cmd: subprocess.check_output(cmd).decode("utf-8")

def execute(cmd):
    subprocess.check_call(cmd)

try:
    w_id = [l.split()[0] for l in get(["wmctrl", "-l"]).splitlines() if "Hidden_Profile" in l][0]
    execute(["xdotool", "windowunmap", w_id])
    with open(hidden_windowid, "wt") as out:
        out.write(w_id)
except IndexError:
    try:
        with open(hidden_windowid) as read:
            w_id = read.read()
        execute(["xdotool", "windowmap", w_id])
    except subprocess.CalledProcessError:
        execute(["gnome-terminal", "--window-with-profile=Hidden"])

解释

脚本使用wmctrl窗口名称来识别窗口,正如我们在为此目的单独创建的配置文件中给出的那样。一旦我们有了id,我们就可以使用命令取消映射xdotoolwindowunmap

为了确保我们可以使窗口重新出现,它将id被存储在一个隐藏文件中;如果重新映射失败,脚本将断定没有从特殊配置文件打开窗口,并通过以下命令打开一个窗口:

gnome-terminal --window-with-profile=Hidden

答案2

为了让您能够接受您选择的解决方案作为答案,我重复了上面的评论。虽然这只是一个简单的解决方法,并且无法真正与@JacobVlijm的令人印象深刻的回答

所以我给你的建议是,只需在系统设置面板中启用不同的工作区即可。当你在一个工作区中打开一个窗口时,它在其他工作区中是不可见的。

但是使用 Unity 时,启动器中的图标无论如何都会突出显示,即使唯一打开的窗口位于另一个工作区中。
在其他桌面环境(我知道 XFCE 和 LXDE)中,情况并非如此。面板/任务栏不会显示非活动工作区的正在运行的程序。

答案3

我用了蒂尔达过去曾有过这种体验。它具有显示和隐藏的出色功能,就像 Doom 或 Quake 中的同名版本一样。如果您更喜欢 Python 版本,也可以找到它,名字是瓜克

它基本上是另一个终端应用程序,将自身绑定到组合键,并且仅在按下所述组合键时显示(当然也会隐藏)。

sudo apt-get install guake- 有关 Tilda,请参阅其页面。

现在,显然你可能不会 其他对于某些人来说,一个终端应用程序就足够了。但有些人更喜欢多个,因为:

  • 这是用于不同目的的不同应用程序
  • 滑下来的时候很酷,不需要的时候隐藏起来也很酷
  • 他们喜欢Quake

答案4

有一个内置选项可以执行此操作,但有点问题:

  1. Ctrl使用+ Alt+打开第一个终端(您想要显示的终端)t
  2. Ctrl使用+ Alt+打开第二个终端(您想要隐藏的终端)t
  3. 使第二个终端成为活动窗口,然后点击Ctrl+ Alt+s并单击其他地方。

要恢复隐藏的终端,请单击启动器中的终端图标。

此方法的问题是,有时由于错误,您需要先关闭所有可见的终端,才能再次显示隐藏的终端。

相关内容