隐藏启动器中的两个终端之一?
我正在使用Ubuntu 14.04,我试图从启动器中删除正在运行的程序。
具体来说,我想推出两个终端。 一个用于我正常工作的几个选项卡,另一个用于运行ssh连接。 我想隐藏发射器中的第二个并“将它最小化到托盘”(这就是我在Windows中称之为的方式)。
有没有办法做到这一点?
为了让您能够接受您选择作为答案的解决方案,我将重复上述评论。 虽然这只是一个简单的解决方法,并不能真正与@ JacobVlijm令人印象深刻的答案并存!
所以我的暗示是在系统设置面板中启用不同的工作区。 当您在一个工作区中打开一个窗口时,在其他工作区中看不到它。
但是使用Unity时,无论如何,Launcher中的图标都会突出显示,即使唯一打开的窗口位于另一个工作区中。
在其他DE(我知道XFCE和LXDE)中,情况并非如此。 面板/任务栏不显示那里的非活动工作区的运行程序。
使用下面的脚本切换可见性(使用组合键),您可以在最小化时隐藏一个终端窗口(完全),就好像它不存在一样,而另一个终端窗口在最小化时在启动器中保持可见。
为隐藏的终端窗口创建单独的配置文件
诀窍是在gnome-terminal
首选项中创建一个单独的配置文件,在窗口标题中有一个与众不同的名称。 这样就可以使用wmctrl -l
命令识别终端窗口,并使用xdotool
的windowunmap命令取消映射 ,使其在Launcher中不可见。
切换可见性/使用组合键打开“隐藏”窗口
您必须设置一个组合键以切换终端窗口的可见性,因为它在启动器中不可见(请参见下文)。
如何设置
该脚本需要安装xdotool
和wmctrl
:
sudo apt-get install xdotool sudo apt-get install wmctrl
然后:
-
在
gnome-terminal
首选项中创建单独的配置文件:选择“编辑”>“配置文件”,然后单击“新建”。- 将新配置文件命名为(隐藏)“隐藏”
-
在“标题和命令”选项卡中,将窗口标题设置为(确切地)“Hidden_Profile”,放在窗口标题之前:
注意您可能必须注销/以使配置文件“可加载”
-
通过运行命令测试配置文件是否正常工作:
gnome-terminal --window-with-profile=Hidden
应弹出一个窗口,窗口标题中带有“Hidden_profile”:
-
将下面的脚本复制到一个空文件中,将其另存为
run_hidden.py
-
通过命令测试运行它:
python3 /path/to/run_hidden.py
它应该做什么:
- 如果没有来自单独配置文件的终端窗口正在运行,则运行它:应从单独的(“hidable”)配置文件打开一个新终端。
- 再次运行:窗口将(完全)隐藏,也来自启动器
- 第三次运行:窗口应该重新出现
-
如果一切正常,请将脚本(运行命令)添加到快捷方式组合中:选择:系统设置>“键盘”>“快捷方式”>“自定义快捷方式”。 单击“+”并添加命令:
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
,我们就可以用xdotool
的windowunmap
命令取消映射。
为了确保我们可以重新出现窗口, id
存储在一个隐藏文件中; 如果重新映射失败,脚本会断定特殊配置文件没有打开窗口,它会通过命令打开一个窗口:
gnome-terminal --window-with-profile=Hidden
我过去常常使用Tilda 。 它具有很好的显示和隐藏function,就像它在Doom或Quake中的名字一样。 如果您更喜欢Python版本,它也就是名字的Guake 。
它基本上是另一个终端应用程序,它将自己绑定到一个关键组合,并且仅在您按下所述键组合时显示(当然也隐藏它)。
sudo apt-get install guake
– 为Tilda看到它的页面。
现在,显然你可能不想要 另一个终端应用程序,因为有些人就足够了。 但有些人更喜欢不止一个,因为:
- 它是用于不同目的的不同应用程序
- 它向下滑动时很酷,很酷,它在不需要时保持隐藏状态
- 他们喜欢雷神之锤
有一个内置的选项来做到这一点,但它有一点点错误:
- 使用Ctrl + Alt + t打开第一个终端(您想要显示的终端)
- 使用Ctrl + Alt + t打开第二个终端(您要隐藏的终端)。
- 将第二个终端设为活动窗口,然后按Ctrl + Alt + s并单击其他位置。
要恢复隐藏的终端,请单击启动器中的终端图标。
这种方法的问题在于,有时,由于存在错误,您需要先关闭所有可见的终端,以便隐藏终端再次显示。