Definindo títulos da guia Terminal


11

Estou tentando abrir algumas abas de terminal no gnome-terminal e até agora consegui fazer alguma coisa , mas estou preso agora.

Então, eu tenho o seguinte requisito:

  • Guias abertas intituladas "X" e "Y"
  • Execute alguns comandos
  • Mantenha as abas abertas e prontas para uso posterior; mantenha o título.

Até agora, consegui atender a alguns dos requisitos, mas nem todos:

gnome-terminal --tab -t "X" -e "bash" --tab -t "Y" -e "top"

Isso abre duas guias:

  1. "X" (e depois altera o título para o título padrão)
  2. "Y", mas a guia fecha assim que eu saio top.

Existe uma maneira de abrir uma guia, iniciar bash, mas não alterar o título? Eu tentei o Google, mas desisti.

EDIT: Não precisa ser um comando.


Tem que ser um comando? Porque a GUI do gnome-terminal funciona bem para isso.
Ne # 10/04

@kikjezrous Bem, eu sei como fazê-lo com atalhos de teclado, ou apenas clicando com o botão direito, mas preciso fazê-lo sempre que trabalho (e são 6 abas), por isso é mais uma questão de conveniência do que uma necessidade real.
Omninonsense

Ah, eu vou editar minha resposta.
N

Respostas:


4

Como você pode ver em outras respostas , o título da guia é alterado pelo shell toda vez que gera um prompt. E depois de executar topsua guia sai porque o comando que você disse para executar termina ...

Eu farei o seguinte:

Etapa 1: chame o terminal com shells, adicionando variáveis ​​de ambiente assim:

gnome-terminal --tab -t X -e "env MYTAB=X bash" --tab -t Y -e "env MYTAB=Y bash" 

Etapa 2: adicione no final do seu .bashrco seguinte código:

#if MYTAB is not set, return
[ -z "$MYTAB" ] && return
# reset the cursor and title 
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
PS1="\[\e]0;$MYTAB \w\a\]$PS1"   #title: $MYTAB and current dir
# execute the commands for every tab
case "$MYTAB" in
        X)
                echo this is X
        ;;

        Y)
                echo this is Y 
                top
        ;;
esac

... o que eu acho fácil de entender e você pode modificar com o comando / ajustes necessários. Testado e funciona bem; depois de sair topda guia, você ainda terá o prompt e a guia para ler.

Captura de tela (depois de pressionar "q" top):

captura de tela


6

Para manter os títulos das guias, você precisa comentar as seguintes linhas no seu .bashrc:

# 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

Em seguida gnome-terminal --tab -t "X" -e "bash" --tab -t "Y" -e "top", funcionará conforme o esperado:

insira a descrição da imagem aqui


Marcando isso como a resposta certa, já que é a mais simples. :-)
omninonsense

Alterei a resposta aceita (e a editei um pouco), porque melhor se adequava aos meus requisitos; ainda é uma ótima resposta!
Omninonsense

1
Não tem problema, é como ele funciona :)
Sylvain Pineau

1

Estou assumindo que não precisa ser um comando e dando uma maneira totalmente gráfica de fazer isso.

Após iniciar o gnome-terminal, o menu 'arquivo' permite abrir novas abas que terão um determinado título atribuído. Isso pode ser alterado pelo menu 'terminal' ou clicando com o botão direito do mouse na guia e fazendo isso no menu de contexto.

Em seguida, você pode abrir o topo e quaisquer outros comandos que desejar, tudo no terminal, rodando como um processo normal e independente que está sendo executado em qualquer outro terminal - apenas no ambiente de desktop - que não morre depois de sentir que foi feito o que é deveria fazer.


Usando o gnome-terminal interno, não há opção para definir o título no menu de contexto das guias ou qualquer opção no menu 'terminal'. Qual versão do terminal você está usando?
Williams

1

Enquanto brincava, descobri que não era o comando - é o perfil.

Vamos para:

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

e altere a opção "Quando os terminais definem seu próprio título" para "Manter o título inicial", na parte inferior da lista. Agora, quando você inicia um comando com um título, ele permanece, portanto seu comando funcionará corretamente.

insira a descrição da imagem aqui


Note que você terá que fazer isso para cada perfis definidos
Sylvain Pineau
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.