Instalação nova do Ubuntu 15.04: Não é possível renomear as guias do gnome-terminal


38

No Ubuntu 14.10, se eu tivesse várias guias de terminal abertas, poderia clicar com o botão direito do mouse em uma guia de terminal e renomeá-la. No Ubuntu 15.04, não consigo encontrar esse recurso.

Existe uma maneira fácil de recuperá-lo?

Esta é a versão atual:

$ gnome-terminal --version
GNOME Terminal 3.14.2

Respostas:


21

Respondeu aqui

Eu cito:

O user titlecódigo foi removido 1 de gnome-terminal 3.14. Há apenas uma maneira de definir o título, usando uma sequência de escape - por exemplo, com bash:

PROMPT_COMMAND='echo -ne "\033]0;YOUR TITLE GOES HERE\007"'

1: veja o bug do gnomo 724110 e o bug do gnomo 740188 .


10
Obrigado pela resposta. É uma pena, espero que eles o adicionem novamente no próximo lançamento. Enquanto isso, usarei a sequência de escape em vez do método do botão direito.
Tom

2
@Tom Escreva um relatório de bug =)
AB

13
não é apenas uma vergonha: não faz sentido. Eu tive a idéia de “atualizar” o Debian Wheezy para Jessie apenas para ter tudo (ainda não tenho certeza, de fato) que eu tinha antes, mas pior; más decisões e falhas tolas (por exemplo, no gdm3, a lista de possíveis wm / sessões que instalei não se encaixa nem rola, por isso é simples e, portanto, não posso escolher todas as umas que tenho). Para mim, o GNOME está condenado desde então gnome-shell. Também desapareceu o menu para abrir um novo terminal em uma nova janela ou guia (mas você ainda pode fazê-lo através do atalho. Por quê ?! Substitua tudo por um grande botão inteligente: um clique e faz qualquer coisa!)
ShinTakezou

2
Geralmente, novos lançamentos adicionam e não removem recursos.
angelcervera

2
Eu criei um comando (um script de shell) chamado tab que contém simplesmente echo -ne "\ 033] 0; $ 1 \ 007"; agora, em qualquer guia, basta executar a guia TABNAME para definir o título da guia. Não é tão conveniente quanto clicar com o botão direito do mouse na guia para renomear, mas servirá por enquanto. Graças AB!
Brian Pipa

31

A .bashrcsolução proposta por Kirby funcionou para mim:

set-title(){
  ORIG=$PS1
  TITLE="\e]2;$@\a"
  PS1=${ORIG}${TITLE}
}

então do meu prompt: $ set-title test-title


2
Funciona bem para mim em 15.10, a única ressalva é que toda vez que você o executa, você anexa ao PS1, portanto, não faça isso a partir de um script. Depois que eu liguei algumas vezes com set-title "longer and ":echo $PS1 \[\e]0; \u@\h: \w \a\]\u@\h:\w\[\033[m\]$(__git_ps1)$ \e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a
ahcox 20/02

1
funciona para mim no ubuntu 16.04!
Programster

1
funciona como charme !!
Sharadendu sinha 30/08/16

Como altero o título enquanto um processo em primeiro plano está em execução, que não quero abortar?
Jānis Elmeris 2/11

1
Eu acho que você pode fazer isso pausando o processo usando Control + Z, então set-title X, fgpara retomar o processo.
Rogan_mac #

18

Não acredito que eles removeram um recurso tão amigável como este.

Estou mudando para o ROXTerm ( http://roxterm.sourceforge.net ), que faz o trabalho perfeitamente. Está empacotado no Ubuntu:

sudo apt-get install roxterm

Então, deixe o dinossauro continuar seu próprio caminho ;-)


1
Como posso alterar o título da guia no roxterm? Não consegui encontrar.
Halil

também funcionará para o 16.04 #
prusswan

Uau, não é possível definir um terminal para segundo plano com o gnome-terminal e eu nunca entendi o porquê ... é um problema com o próprio terminal. O fundo do terminal devilspie funciona bem com o roxterm.
M3nda

1
RoxTerm é incrível e ainda funciona, mas infelizmente não vai ser continuar por muito mais tempo: sadface:: sourceforge.net/p/roxterm/discussion/422638/thread/60da6975
Williams

Eu mudei para Terminator desde então, e não tem que usar RoxTerm mais ....
Michael Opdenacker

14

Eu tentei o RoxTerm como sugerido acima, com bons resultados. Mas eu decidi no MATE Terminal, que faz parte do Projeto MATE, uma continuação do Gnome 2, em 15.04:

sudo apt-get install mate-terminal

Esse terminal é baseado no código do terminal Gnome.


Comentário: É difícil entender a mentalidade dos desenvolvedores do Gnome Terminal. Há muita discussão por aí sobre "como" nomear guias de terminal e como é difícil acertar. Se for esse o caso, por que dificultar o nome do usuário? Não é muito inteligente.


6

Agora, investiguei isso a maior parte do dia e finalmente encontrei uma maneira de definir esse título. Isso é feito através de seqüências de escape que começam com \ e] 0; e termine com um caractere BEL (= \ 007 = \ a). Ao contrário do que afirmei acima, as comunicações do shell de volta ao aplicativo do terminal são possíveis, muito limitadas, por meio de tais seqüências de escape (existem mais algumas).

Sobre isso de cima:

PROMPT_COMMAND='echo -ne "\e]0;YOUR TITLE GOES HERE\a"'

Ele pode trabalhar, mas nem sempre faz. PROMPT_COMMANDé uma variável cujo conteúdo é executado toda vez que você envia um comando, e também envia essa sequência de escape. No entanto, isso pode ser substituído por uma sequência de escape na variável PS1, que define o prompt da linha de comando. É por isso que o exposto acima não teve efeito aqui.

Em uma instalação mais antiga do Ubuntu, peguei isso, que define o prompt de comando (parte direita, após o ]) e também envia a sequência de escape necessária (parte esquerda, incluindo o ]):

PS1="\[\e]0;\u@\h: \w\a\]\u@\h:\w\$ "

Isso provavelmente tem um desempenho melhor, porque não há necessidade de interpretar $PROMPT_COMMANDcada vez. Ele também tem muito mais opções, porque o Bash tem mais seqüências de escape aqui, por exemplo, \upara o nome de usuário atual, \Wpara o nome do diretório atual ou \wpara todo o caminho do diretório de trabalho atual, opcionalmente aparado apenas para os últimos pelo número $PROMPT_DIRTRIM. Veja o capítulo PROMPTINGna página de manual do Bash. Observe também que a sequência de escape também deve ser cercada por \[e \]aqui.

Para definir um título fixo, isso funciona:

PS1="\[\e]0;YOUR TITLE GOES HERE\a\]\u@\h:\w\$ "

Apreciar!


Durante minha investigação, também tentei entender o código-fonte do terminal gnome, o que leva ao código-fonte vte e, portanto, o suporte à definição de títulos e às seqüências de escape de leitura é considerado um risco à segurança: veja aqui (caso 20, caso 21) e aqui ("Relatório do título da janela").


Isso define o título, mas também elimina qualquer definição anterior PS1para outros usos, como definir um prompt de comando personalizado. Eu apenas tentei adicionar sua sequência de escape ao PS1conteúdo existente e parece funcionar. Assim: PS1+="\[\e]0;YOUR TITLE GOES HERE\a\]\u@\h:\w\$ "
ahcox 20/02

5

Definir $ PROMPT_COMMAND como mostrado acima não tem efeito aqui. Não é surpresa, porque o Bash é executado dentro do terminal e os processos pai (aqui: gnome-terminal) não podem ler o ambiente de uma criança em um sistema operacional semelhante ao unix. Usando algo mais simples, como

PROMPT_COMMAND='echo bla'

Executa echo bla , nada mais acontece.

Edit: um tem que envolver isso em seqüências de escape, veja minha outra resposta. Apesar de não ser possível ler o ambiente filho, é possível alguma comunicação com os pais através dessas seqüências.

No bug do Gnome 740188, eles falam sobre a definição de uma função title () no .bashrc. Um diferente para cada guia aberta? Corte feio e grave à frente, se possível!

Outras explicações no Stackexchange falam sobre a configuração de $ PS1 (e são votadas). Desculpe, não, esse não é o título, é o prompt de comando.

Resumindo: eles estragaram tudo além do reparo para economizar um pouco de espaço na caixa de diálogo de preferências. AMD

Agora, a única chance de reverter uma decisão do desenvolvedor é provocar uma tempestade de merda severa; caso contrário, eles simplesmente fecham o relatório de erros em segundos (tentado muitas e muitas vezes). Como criaríamos essa tempestade de merda?

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.