我可以更改 guake 选项卡的名称来显示当前命令吗?

我可以更改 guake 选项卡的名称来显示当前命令吗?

我非常频繁地使用 guake,并且随时都可以通过 ssh 连接到 3 台以上的计算机。我还在一些选项卡(终端)上运行守护进程。我想知道的是,是否可以将当前命令的名称作为终端的名称?右键单击选项卡并更改其名称会导致这种情况:(查看终端 5 之后的选项卡)

查看 5 号航站楼后面的标签

谢谢。

答案1

这是 guake (0.4.1) 的一个 bug。我刚刚通过这个 bug 报告看到并解决了这个问题,尽管作者说这不是最好的方法: https://github.com/Guake/guake/issues/205

我发现将对话框销毁代码(guake.py 第 983 行)移到设置选项卡标签的代码(第 986 行)之后实际上可以解决问题。所以对我有用的代码如下所示:

    response = dialog.run()
    # dialog.destroy() 

    if response == gtk.RESPONSE_ACCEPT:
        self.selected_tab.set_label(entry.get_text())

    dialog.destroy()

也许 gtk 和对话框存在一些问题,但我没有发现版本 0.4.1 差异中与 gtk 相关的任何代码更改。

编辑:guake 0.4.2 可以正确更改选项卡名称

答案2

我不确定这是否适用于 guake,但它适用于大多数终端仿真器。您可以在脚本中包含 echo 来更改终端标题:

echo -ne "\033]0;your_title_here\007"

答案3

有点像黑客攻击,但是这会将当前终端重命名为您通过 ssh 所用的名称。

function ssh() {
    guake -r "$@";
    /usr/bin/ssh $@
}

另外,如果您更新了 PROMPT_COMMAND,则可以使用每次更新终端名称的功能。尽管这对您的 ssh 问题不起作用,因为它只会在命令运行后更改名称。

例如

export PROMPT_COMMAND=renameTerminal

function renameTerminal() {
    guake -r "$SOMENAME";
}

答案4

你可以简单地用

guake -r newtabname

如果你想获取最新运行的命令,例如使用

echo "!!" | cut -f 1 -d " "

!!键入时,bash 会对其进行扩展。它不会通过别名替换进行扩展。因此,您必须使用history内置函数进行扩展,以将其放入别名中:

alias setguaketitle='guake -r $(echo "$(history -p !! )"| cut -f 1 -d " ")'

当你的最后一个命令是

echo this is a test

然后调用

setguaketitle

将标题设置为“echo”。

相关内容