GNOME 3.14+ lança novo terminal gnome e define o título

3

Para o desapontamento de muitos, o título da guia / janela não pode mais ser definido com --title

Eu uso o bash. Eu tive alguns aliases que usei para conectar servidores remotos.

alias c:prod='gnome-terminal --hide-menubar --profile=Production \
--title="Production Server" -e "ssh <url>" &'

Eu encontrei uma solução alternativa para o GNOME 3.14+ para definir o título que funciona bem na linha de comando, uma vez colocado em .bashrc

function set-title() {
  if [[ -z "$ORIG" ]]; then
    ORIG=$PS1
  fi
  TITLE="\[\e]2;$@\a\]"
  PS1=${ORIG}${TITLE}
}

No entanto, isso só parece ser eficaz se for colocado e chamado no .bashrc do servidor remoto, ou seja, só posso alterar o título após o login.

Não tem efeito algum, se tentar alterar o título da nova janela antes de se conectar:

alias c:prod='gnome-terminal --hide-menubar --profile=Production \
-e "bash -c \"source ~/.bashrc;set-title Production;ssh <url>\"" &'

A definição do título da janela no controle remoto parece errada, quando o terminal está sendo executado em minha caixa e não consigo fazê-lo funcionar em servidores onde meu usuário não possui um diretório inicial para colocar um .bashrc in. / p>

Existe uma floresta que não consigo ver para as árvores?

    
por Levente Huszko 25.06.2015 / 10:43

1 resposta

2
  1. Anexe a função set-title a ~/.bashrc :

    function set-title() {
      if [[ -z "$ORIG" ]]; then
        ORIG=$PS1
      fi
      TITLE="\[\e]2;$@\a\]"
      PS1=${ORIG}${TITLE}
    }
    
  2. Instale expect , se você não tiver:

    sudo apt-get install expect
    
  3. Crie ProductionServer.sh com conteúdo:

    #!/usr/bin/env expect
    
    spawn bash
    expect -re $ {send -- "set-title \"Production Server\"\rclear\rssh [email protected]\rclear\r"}
    interact
    exit
    
  4. Exec gnome-terminal com argumentos:

    gnome-terminal --hide-menubar -e ~/ProductionServer.sh
    

Talvez esse processo possa ser otimizado, mas o problema já foi resolvido.

    
por 11.04.2016 / 08:32