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

我非常沉重地使用guake,并且在任何时候都可以使用3台以上的计算机。 我也有一些标签(终端)上运行的守护进程。 我想知道的是,是否可以将当前命令的名称作为终端的名称? 右键单击选项卡并更改其名称会导致:(查看5号终端后的选项卡)

查看5号航站楼后的标签

谢谢。

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

我发现在设置标签标签(第986行)的代码实际上解决了问题后,将对话框销毁代码(guake.py第983行)向下移动。 所以适合我的代码看起来像这样:

response = dialog.run() # dialog.destroy() if response == gtk.RESPONSE_ACCEPT: self.selected_tab.set_label(entry.get_text()) dialog.destroy() 

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

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

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

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

当我想在guake中更改选项卡名称时,我只需右键单击选项卡名称并左键单击重命名。 将打开一个弹出框以输入新名称。

有点破解,但这会将当前的终端重命名为你所拥有的任何东西。

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

此外,如果您更新PROMPT_COMMAND,则可以使用每次更新终端名称的function。 虽然这不适用于您的ssh问题,因为它只在命令运行后更改名称。

例如

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

您只需更改tabname即可

 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”。

如果将shell更改为zsh,可以将其添加到~/.zshrc

 preexec() { echo -n '\e]0;' echo -nE "$1" print -nP ' (%~)' echo -n '\a' } 

它将显示当前命令和当前工作目录。 这适用于所有终端仿真器,而不仅仅是guake。

要安装zsh:

 sudo apt-get install zsh 

尝试一下就说吧

 zsh 

使其成为新终端的默认值:

 chsh -s /bin/zsh