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


13

我非常频繁地使用guake,并在任何时间将ssh放入3台以上的计算机中。我还在某些选项卡(终端)上运行守护程序。我想知道的是,是否可以将当前命令的名称作为终端的名称?右击选项卡并更改其名称会导致以下情况:(在5号航站楼后查看选项卡)

查看5号航站楼后的标签

谢谢。


请参阅对一个相关问题的回答,以将当前目录的缩写形式显示为选项卡标题。
krlmlr

“当前命令”是什么意思?每个终端中总是有一个命令在运行吗?什么都没有运行时标题应该是什么?
rubo77 '16

Answers:


4

这是一个古克(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.4k版本diff中的gtk相关的任何代码更改。

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


1
这不能回答问题
phil294

3

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

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

当我在终端中键入它时,那没有用。
theTuxRacer 2010年

1
这是因为shell的提示符通常会将其设置为当前工作目录。检查PS1变量。
ak2 2010年

它在我的Ubuntu 15.10上也不起作用。我检查echo $PS1了显示的\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$内容,这对我有什么帮助?
rubo77

3

有点麻烦,但这会将当前终端重命名为您想要的内容。

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

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

例如

export PROMPT_COMMAND=renameTerminal

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

2

当我想在guake中更改选项卡名称时,只需右键单击选项卡名称,然后单击鼠标左键重命名即可。打开一个弹出框,输入新名称。


当然可以,但是如何将其添加到脚本中呢?
rubo77

1

您可以使用

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


0

如果将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 

1
zsh与guake完全不起作用:(
theTuxRacer

哦,对,我记得以前遇到过这个问题。但是,至少一些与之相关的错误现在似乎已修复,例如< guake.org/ticket/49 >。
poolie 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.