O Gnome-Terminal reporta $ TERM como sendo 'xterm'

21

Em uma instalação limpa do Ubuntu 12.10, o terminal-gnome padrão está reportando $ TERM para ser xterm onde deveria estar reportando xterm-256color. Qual é a melhor maneira de mudar isso? Eu estou evitando colocar isso no meu .bashrc como isso é apenas pedir problemas.

    
por Freddy 27.12.2012 / 17:03

3 respostas

15

Você foi bem aconselhado a não alterar seus scripts de inicialização, especialmente ~/.bashrc . Qualquer "detecção de terminal" usando $TERM ou $COLORTERM em ~/.profile é meramente um palpite, e pode, como você disse, causar problemas ao usar outros terminais (digamos, Putty ou xterm). O emulador de terminal deve definir $TERM , e isso deve não ser alterado de dentro do shell.

O terminal Gnome, AFAIK, não oferece uma configuração para alterar seu TERM , mas permite que você altere seu comando de inicialização, e isso é tudo que você precisa. Aqui está o truque:

Profile Preferences => Title and Command => Run a custom command instead of my shell

Em seguida, use o seguinte comando:

env TERM=xterm-256color /bin/bash

Apenas substitua /bin/bash pelo seu shell preferido, se for diferente. E não, você não pode usar "$SHELL" nessa linha para detecção automática de shell;) Você tem que codificar isso

    
por MestreLion 28.01.2015 / 12:18
12

Para conexão com um terminal que não consegue fazer 256 cores.

Seria muito melhor detectar o terminal especificamente com $COLORTERM . Procure por gnome-terminal, xfce4-terminal, etc, e então defina a variável $TERM para xterm-256color .

Eu faço isso com:

if [ "$COLORTERM" = "gnome-terminal" ] || [ "$COLORTERM" = "xfce4-terminal" ]
then
    export TERM=xterm-256color
elif [ "$COLORTERM" = "rxvt-xpm" ]
then
    export TERM=rxvt-256color
fi
    
por Jordan 19.11.2013 / 19:19
6

Embora seja verdade que o terminfo tem xterm + 256 cores ( /usr/share/terminfo/x/xterm+256color ), o termcap tem apenas xterm ( /usr/share/vte/termcap/xterm ), portanto, mudar $TERM não deve ser aconselhável.

De qualquer forma, $TERM não é definido pelo gnome-terminal, mas por vte. O valor padrão para essa variável de ambiente pode ser alterado em tempo de compilação (dando uma opção ao script de configuração) ou chamando a função vte_pty_set_term() . Olhando para as fontes do gnome-terminal, vejo que vte_pty_set_term nunca é chamado, então posso dizer que não há maneiras de modificar $TERM editando as configurações do gnome-terminal.

O que você precisa fazer é colocar o seguinte código no seu ~/.profile :

if [ "$TERM" = "xterm" ]
then
    export TERM=xterm-256color
fi
    
por Andrea Corbellini 27.12.2012 / 17:32