如何使用快捷键调出最后一个终端窗口?

如何使用快捷键调出最后一个终端窗口?

我经常使用终端来快速输入命令,然后将其留在后台,这样我在工作时就会打开 20 多个终端会话。这是因为只需使用快捷键并输入命令即可,非常快捷。

有没有办法设置快捷键,以便我调出最后一个终端窗口而不是创建一个新的终端窗口?

答案1

我已将终端固定在 Unity 启动器侧栏的第 10 位。这样,我可以按Super+0来“单击”启动器图标,将最新的终端窗口置于顶部。

在此处输入图片描述

如果您觉得将其放在启动器中没问题(前 10 个位置之一,否则它将不会获得快捷方式!),那么它将会起作用。

答案2

我用瓜克我对此非常满意。按 F12,会出现一个终端窗口,再次按 F12,它会消失但仍在后台运行。另外:看起来真的很酷。

答案3

您可以将下面的脚本放在组合键下。如果按下组合键,终端窗口将完全消失。再次按下它,它们将再次弹出,与你之前的状态完全相同。

您只需(一次)在终端窗口名称中添加标识字符串(大多数情况下,终端窗口具有相同的名称)

使用它

安装xdotoolwmctrl

sudo apt-get install xdotool
sudo apt-get install wmctrl
  1. 将脚本复制到一个空文件中,另存为hide_terminal.py
  2. 在 head 部分,设置终端窗口名称的标识字符串
  3. 通过组合键运行它:

    python3 /path/to/hide_terminal.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")
# --- set the identifying string in the terminal window's name below (you mentioned "Terminal"
window_idstring = "Special_window"
# ---
def execute(cmd):
    subprocess.check_call(cmd)

w_id = [l.split()[0] for l in get(["wmctrl", "-l"]).splitlines() if window_idstring in l]
if len(w_id) !=0:
    for w in w_id:
        execute(["xdotool", "windowunmap", w])
        with open(hidden_windowid, "a") as out:
            out.write(w+"\n")
else:
    try:
        with open(hidden_windowid) as read:
            for w in [w.strip() for w in read.readlines()]:
                try:
                    execute(["xdotool", "windowmap", w])
                except subprocess.CalledProcessError:
                    pass
        with open(hidden_windowid, "wt") as clear:
            clear.write("")
    except FileNotFoundError:
        pass

答案4

我正在使用gnome-shell“下拉终端”扩展,默认快捷方式是,TAB但它很容易更改。

相关内容