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