Pregunta

Tengo 256 colores funcionando muy bien en mi terminal ( scripts de prueba aquí ), pero deja de funcionar cuando uso ncurses (a través de Ruby-ncurses). La impresión de las secuencias de escape que se muestran en esa página funciona bien, pero cuando inicializo ncurses 'puts' deja de funcionar y no puedo mostrar los colores con ninguna de las diversas funciones de cambio de color / cadena de salida de ncurses que he encontrado. ¿Qué da?

¿Fue útil?

Solución 2

njsf: Estabas parcialmente aquí, y después de hacer muchos más arreglos, eventualmente lo hice funcionar. Gracias por tu ayuda. La historia: XTerm (y rxvt, y Eterm) admiten 256 colores a través de secuencias de escape (lo que estaba viendo) pero 'tput colors' dirá '8' y ncurses no podrá alcanzarlos, porque ncurses está jugando bien e intentar acceder a través de terminfo.

Para el beneficio de cualquier persona con dolor similar:

Encontré que necesito instalar el paquete ncurses-term (Ubuntu) para obtener / lib / terminfo / x / xterm-256color y otros archivos terminfo de 256 colores. Luego puse mi TÉRMINO en xterm-256color y agregué la línea '* personalización: -color' a mi ~ / .Xdefaults, ejecuté 'xrdb -merge ~ / .Xdefaults' para cargarlo, y desde entonces tengo el color 256 correcto Soporte en nuevos xterms.

Otros consejos

No estoy seguro de si esta sería toda la historia, pero asegúrese de que las capacidades de su terminal sí brindan la descripción de 256 colores.

¿Cuál es el valor de la variable de entorno TERM? Intente configurarlo en xterm-256color y vuelva a ejecutarlo. ncurses debería obtener las secuencias de escape de color adecuadas.

También puede probar las capacidades de la terminal y la salida de color de la terminal con el programa que usamos en el desarrollo de SXEmacs:

http://www.triatlantico.org/tmp/tty-colors.c

Compile con gcc -o tty-colors tty-colors.c -lncurses

EDITAR: Tenga en cuenta que solo porque los scripts que se encuentran en la red producen los 256 colores, eso no es " todo está configurado " ;. Los programas de cursas se basan en terminfo y termcap y en la variable de entorno TERM para descubrir cómo interactuar con el terminal. Por lo tanto, para que una aplicación de curses pueda usar los 256 colores, se debe establecer la variable TERM en un nombre de terminal existente que admita 256 colores. El programa de C de arriba le mostrará qué ncurses piensa acerca de su terminal, no solo genera las secuencias xterm como la mayoría de los scripts [incluso el de X.org]

configuración

ENV ['TERM'] + = '-256color' if ENV ['TERM'] == 'xterm' # active 256 colores

funciona en ubuntu 10.04 +

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top