Ejecutando la pantalla GNU con 256 colores en OS X Lion

8

Terminal.app en Mac OS X Lion tiene una característica que tardó mucho en implementarse: compatibilidad con 256 colores. Los colores funcionan bien. El problema que tengo es que cuando ejecuto GNU Screen no tengo acceso a 256 colores. En la pantalla, $ TERM se establece en "pantalla".

He leído diferentes cosas en diferentes lugares y estoy muy confundido. Algunos de estos incluyen:

  • La pantalla GNU debe compilarse con soporte de color (¿Cómo puedo saber si la pantalla de OS X se compiló de esta manera?)
  • Se debe instalar un archivo terminfo especial para screen-256color. ¿OS X tiene esto?
  • En .screenrc, el término debe establecerse en "screen-256color".
  • Ciertas funciones en Emacs deben llamarse para que Emacs sea colorido ( http://www.emacswiki.org/emacs/GnuScreen#toc6 )

Intenté variaciones de estos procedimientos y no he tenido éxito y no estoy seguro de por qué he fallado. ¿Cuál es la forma más directa para mí de habilitar 256 colores en la pantalla GNU?

Hekevintran
fuente
1
@PaulR Tienes razón, pero es una buena pregunta de todos modos.

Respuestas:

6

Por defecto, screenno es consciente de que se está ejecutando en una capacidad de 256 colores xterm. Para que los programas screenreconozcan esta función, debe configurar un par de cosas en su ~/.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" 

Si esto no funciona para usted, su versión de screenprobablemente no fue compilada ./configure --enable-colors256. Puede verificar esto en la pantalla de bienvenida al comenzar screen. La versión predeterminada que viene con OS X no admite 256 colores. Puede consultar la fuente y compilar su propia versión, poniendo el binario resultante en su $PATH(lo puse en el ~/binque agregué a mi $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

Fuentes: 1 y 2

Mathias Bynens
fuente
1
Muchas gracias. Este problema me ha estado irritando durante tanto tiempo. ¡Alguien en Apple pensó que era una buena idea enviar un emulador de terminal con 256 colores y un multiplexor de terminales con 8 jaja!
hekevintran 01 de
FWIW, informé esto como un error en bugreport.apple.com , así que espero que esto se solucione en Mountain Lion.
Mathias Bynens
2
Usuarios de Homebrew: homebrew-dupes tiene una receta para la pantalla incluida --enable-colors256. $ brew tap homebrew / dupes # si aún no lo ha hecho $ brew install screen
chrisk
1

Agregue lo siguiente a su ~/.screenrc

term "screen-256color"

Y luego intenta, debería funcionar.

jrg
fuente
FWIW esto es todo lo que necesitaba en 10.7.5 y 10.8.2.
tvon
@tvon No puedo hacer que funcione en mi OSX 10.7.5. ¿Alguna idea de por qué?
Phani