Executando a tela GNU com 256 cores no OS X Lion

8

O Terminal.app no ​​Mac OS X Lion possui um recurso que levou muito tempo para ser implementado: suporte para 256 cores. As cores funcionam bem. O problema que estou tendo é que, quando executo o GNU Screen, não tenho acesso a 256 cores. Na tela, $ TERM está definido como "tela".

Eu li coisas diferentes em lugares diferentes e estou muito confuso. Alguns destes incluem:

  • A tela GNU deve ser compilada com suporte a cores (como posso saber se a tela do OS X foi compilada dessa maneira?)
  • Um arquivo terminfo especial para screen-256color deve ser instalado. O OS X tem isso?
  • Em .screenrc, o termo deve ser definido como "screen-256color".
  • Certas funções no Emacs devem ser chamadas para que o Emacs seja colorido ( http://www.emacswiki.org/emacs/GnuScreen#toc6 )

Tentei variações desses procedimentos e não tive sucesso e não sei por que falhei. Qual é a maneira mais direta de ativar 256 cores no GNU Screen?

hekevintran
fonte
11
@PaulR Você está certo, mas é uma boa pergunta, no entanto.

Respostas:

6

Por padrão, screennão está ciente de que está sendo executado em um compatível com 256 cores xterm. Para fazer com que os programas screenreconheçam esse recurso, é necessário definir algumas coisas no seu ~/.screenrc:

term "screen-256color"
# terminfo and termcap for nice 256 color terminal
# allow bold colors - necessary for some reason
attrcolor b ".I" 
# tell screen how to set colors. AB = background, AF=foreground 
termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm' 
# erase background with current bg color 
defbce "on" 

Se isso não funcionar, sua versão screenprovavelmente não foi compilada ./configure --enable-colors256. Você pode verificar isso na tela de boas-vindas ao iniciar screen. A versão padrão que acompanha o OS X não suporta 256 cores. Você pode verificar o código-fonte e compilar sua própria versão, colocando o binário resultante no seu $PATH(eu coloquei no ~/binqual eu adicionei ao meu $PATH):

git clone git://git.savannah.gnu.org/screen.git
cd screen/src
./autogen.sh
./configure --enable-colors256
make   # I got a lot of warnings here, but they don't seem to matter
sudo make install
cp screen ~/bin/screen

Fontes: 1 e 2

Mathias Bynens
fonte
11
Muito obrigado. Esse problema me irrita há tanto tempo. Alguém na Apple achou uma boa ideia enviar um emulador de terminal com 256 cores e um multiplexador de terminal com 8 haha!
hekevintran
FWIW, relatei isso como um bug no bugreport.apple.com , portanto, espero que isso seja corrigido no Mountain Lion.
Mathias Bynens
2
Usuários de Homebrew: homebrew-dupes tem uma receita para incluir na tela--enable-colors256 . $ Homebrew cerveja tap / engana # se você não tiver $ bebida tela de instalação
chrisk
1

Adicione o seguinte ao seu ~/.screenrc

term "screen-256color"

E então tente, deve funcionar.

jrg
fonte
FWIW, é tudo o que eu preciso em 10.7.5 e 10.8.2.
tvon 19/12/12
@tvon Não consigo fazê-lo funcionar no meu OSX 10.7.5. Alguma idéia do porquê?
Phani