Posso alterar o nome da guia guake para mostrar o comando atual?


13

Eu uso o guake com muita força e ssh em mais de 3 computadores a qualquer momento. Eu também tenho daemons rodando em algumas abas (terminais). O que eu quero saber: É possível ter o nome do comando atual como o nome do Terminal? Clicar com o botão direito em uma guia e alterar seu nome faz com que: (Veja a guia após o Terminal 5)

Veja a guia após o Terminal 5

Obrigado.


Veja minha resposta a uma pergunta relacionada para mostrar uma representação abreviada do diretório atual como título da guia.
Krlmlr #

O que você quer dizer com "comando atual"? existe sempre um comando em execução em cada terminal? qual deve ser o título quando não há nada em execução?
rubo77

Respostas:


4

Este é um bug do guake (0.4.1). Acabei de ver e resolver esse problema através deste relatório de erros, embora o autor diga que este não é o melhor método: https://github.com/Guake/guake/issues/205

Descobri que mover o código de destruição de diálogo (linha 983.py) após o código que define o rótulo da guia (linha 986) resolve o problema. então o código que funciona para mim fica assim:

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

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

    dialog.destroy()

talvez haja algum problema com o gtk e as caixas de diálogo, mas não encontrei nenhuma alteração de código conectada ao gtk na versão 0.4.1 diff.

EDIT : guake 0.4.2 pode alterar o nome da guia corretamente


1
Isso não responde à pergunta #
16929

3

Não sei se isso funciona para o guake, funciona para a maioria dos emuladores de terminal. Você pode incluir um eco em seus scripts para alterar o título do terminal:

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

isso não funcionou, quando eu digitei no terminal.
theTuxRacer

1
Isso ocorre porque o prompt do seu shell normalmente o define no diretório de trabalho atual. Verifique a variável PS1.
AK2

Também não funciona no meu Ubuntu 15.10. Eu verifiquei o echo $PS1que mostra algo como \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$o que isso me ajuda a resolver isso?
rubo77

3

Um pouco, mas isso renomeará o terminal atual para o que você deseja.

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

Além disso, se você atualizar seu PROMPT_COMMAND, poderá ter uma função para atualizar o nome do terminal a cada vez. Embora isso não funcione para o seu problema ssh, pois apenas altera o nome após a execução do comando.

por exemplo

export PROMPT_COMMAND=renameTerminal

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

2

Quando quero alterar o nome da guia no guake, apenas clique com o botão direito do mouse no nome da guia e clique com o botão esquerdo do mouse em renomear. Uma caixa pop-up é aberta para digitar o novo nome.


claro, mas como você pode adicionar isso a um script?
rubo77

1

Você pode simplesmente mudar o nome da guia com

guake -r newtabname

Se você deseja obter o último comando em execução, use, por exemplo

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

!!é expandido pelo bash quando você o digita. Não é expandido por substituição de alias. Portanto, você deve usar o historybuilt-in para fazer a expansão e colocá-lo em um alias:

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

quando seu último comando foi

echo this is a test

então chamando

setguaketitle

irá definir o título para "eco".


0

Se você alterar seu shell para zsh, poderá adicioná-lo ao seu ~/.zshrc:

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

e mostrará o comando atual e o diretório de trabalho atual. Isso funciona para todos os emuladores de terminal, e não apenas para falhas.

Para instalar o zsh:

sudo apt-get install zsh

para experimentar basta dizer

zsh

para torná-lo o padrão para novos terminais:

chsh -s /bin/zsh 

1
O zsh não funciona com guake :(
theTuxRacer 11/11

Ah, claro, eu lembro de ter encontrado esse problema antes. Mas pelo menos alguns dos bugs relacionados a ele agora parecem estar corrigidos, por exemplo, < guake.org/ticket/49 >.
poolieby
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.