Como posso iniciar o gnome-terminal com títulos exclusivos para várias guias?

5

Eu vi vários posts sobre o lançamento do gnome-terminal com várias abas e o script abaixo está funcionando para mim. Isto é, este script irá iniciar o gnome-terminal com vários diretórios ou perfis de trabalho. . .

#!/bin/sh
gnome-terminal \
--tab --working-directory=$HOME/notes  \
--tab --working-directory=$HOME/puppet \
--tab --profile=root-beamish           \
--tab --profile=odyssey                \
--tab --profile=root

... mas gostaria de definir um título exclusivo para cada guia.

No caso de uma guia ter seu próprio perfil, posso alterar o título de dentro do gnome-terminal com Edit | Profiles | (NAME) | Edit | Title and Command e depois alterar "Título Inicial" para o que eu quero e "Quando os comandos do terminal definirem seus próprios títulos" de " Substitua o título inicial "por" Manter título inicial ". No entanto, prefiro não criar um perfil exclusivo para cada guia. Eu gostaria de uma solução genérica.

Eu tentei adicionar --title='MyTitle' , mas não parece ajudar. Estou usando o GNOME 2.28.2 no CentOS 6.

    
por Philip Durbin 16.11.2011 / 16:25

3 respostas

5

Use a opção -t . (veja gnome-terminal --help-terminal-options )

gnome-terminal \
--tab -t "notes" --working-directory=$HOME/notes  \
--tab -t "puppet" --working-directory=$HOME/puppet \
--tab -t "beamish" --profile=root-beamish           \
--tab -t "odyssey" --profile=odyssey                \
--tab -t "root" --profile=root

-------- atualizado em 2011-11-15 22:00:00 --------

Então ... isso funcionou para mim no Solaris 11 Express, com o gnome-terminal 2.30.2.

Desde então, eu pude testá-lo no Ubuntu 11.04 (Natty), que usa o 2.32.1, e encontrei exatamente o mesmo comportamento que você.

No caso do Ubuntu, eu consegui rastreá-lo no arquivo ubuntu .bashrc . Em particular, a seção que se parece com:

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

Nesse caso, a variável PS1 está sendo expandida para tipos de terminal correspondentes a xterm* e rxvt* .

PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"

especificamente a parte entre PS1="\[\e]0; e \a\] . Eles são transformados no título da janela.

Uma vez que eu comentei toda a declaração case , o comportamento do gnome-terminal com a opção -t funcionou como esperado. Vou ver se consigo encontrar uma caixa do CentOS 6 para testar isso também.

-------- atualizado em 2017-11-1 09:38:00 --------

Portanto, parece que versões mais recentes do Gnome-Terminal acabaram com alguns recursos úteis, como a simples opção -t para definir os títulos dos terminais.

ainda é possível definir títulos de terminais em tempo de execução, é feio agora. Você pode usar printf ou echo no comando para efetuar um título.

Por exemplo:

Para iniciar uma janela de terminal com 1 aba, intitulada 'Meu Título Extravagante' usando printf :

gnome-terminal --tab -e 'bash -c "printf \"\e]2;My Fancy Title\a\"; bash -i"'

Para iniciar uma janela de terminal com duas guias, uma em execução e outra com um título, usando echo :

gnome-terminal \
--tab -e 'bash -c "echo -ne \"3]0;my tab running top
gnome-terminal \
--tab -t "notes" --working-directory=$HOME/notes  \
--tab -t "puppet" --working-directory=$HOME/puppet \
--tab -t "beamish" --profile=root-beamish           \
--tab -t "odyssey" --profile=odyssey                \
--tab -t "root" --profile=root
7\"; top"' \ --tab -e 'bash -c "echo -ne \"3]0;My Fancy Title
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac
7\"; bash -i"'

Isso, pelo menos, oferece uma opção para definir o título do terminal em tempo de execução.

Veja nesta uma opção para colocar uma função simples no seu ~/.bashrc para permitir a configuração e redefinição do título em vai .

    
por 16.11.2011 / 18:45
3

Quando fiz um

$ gnome-terminal -t "MyTitle"

O novo terminal teve "MyTitle" como título por um momento e foi imediatamente substituído pelo título padrão.

Eu fui para

Edit | Profiles | (Default) | Edit | Title and Command

E mudou "Quando o comando terminal definiu seus próprios títulos:" para "Manter título inicial", o comando acima lançou um terminal com "MyTitle" como título.

Espero que isso ajude.

    
por 15.11.2013 / 18:09
0

Isso cria duas guias, cada uma aberta em um diretório "foo" ou "bar", com títulos de guias "foo" e "bar"

gnome-terminal --tab -t foo -e 'sh -c "cd foo; sh"' --tab -t bar -e 'sh -c "cd bar; sh"'

    
por 08.12.2015 / 19:34