Pergunta

Eu tenho 256 cores grande trabalho no meu terminal ( scripts de teste aqui ), mas ele pára de funcionar quando eu uso ncurses (via rubi-ncurses). Imprimindo as sequências de escape dado nessa página fina funciona, mas quando eu inicializar ncurses 'puts' pára de funcionar e eu não pode saída as cores com uma das cores diversas ncurses funções de saída mudando / string que eu encontrei. O que dá?

Foi útil?

Solução 2

njsf: Você estava parcialmente certo aqui, e depois de mexer muito mais eu finalmente tenho que trabalhar. Obrigado pela ajuda. A história: XTerm (e rxvt e Eterm) apoio 256 cores através de seqüências de escape (que eu estava vendo), mas 'tput cores' vai dizer '8' e ncurses não será capaz de chegar a eles, porque ncurses está jogando bonito e tentando acessar via terminfo.

Para o benefício de qualquer pessoa com dor semelhante:

Eu achei que eu preciso para instalar o pacote ncurses prazo (Ubuntu) para obter / lib / terminfo / x / xterm-256color e outros 256color terminfo arquivos. Então eu definir o meu mandato para xterm-256color e acrescentou a linha '* personalização: -cor' ao meu ~ / .Xdefaults, correu 'xrdb -merge ~ / .Xdefaults' para carregá-lo, e desde então eu tenho adequado 256 cores apoio em novas xterms.

Outras dicas

Eu não tenho certeza se isso seria toda a história, mas certifique-se as suas capacidades de terminais de fato prever a descrição 256 cores.

O que é o valor variável de ambiente TERM? Tentar defini-lo como xterm-256color e executá-lo novamente. ncurses deve então obter as seqüências adequada de fuga cor.

Você também pode testar as capacidades do terminal e saída de cores terminal com o programa que usamos no desenvolvimento SXEmacs:

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

Compilar com gcc -o tty-cores tty-colors.c -lncurses

EDIT: Note-se que só porque os scripts que são encontrados na saída líquida das 256 cores, que não é "tudo pronto". programas maldições contar com terminfo e termcap ea variável de ambiente TERM para descobrir como interagir com o terminal. Então, para um maldições aplicativo para ser capaz de usar as 256 cores deve-se definir a variável TERM para um nome de terminal existente que suporta 256 cores. O programa C acima irá mostrar-lhe o ncurses pensa sobre o seu terminal, não apenas a saída das sequências xterm como a maioria dos scripts fazer [mesmo a partir X.org]

configuração

ENV [ 'TERM'] + = '-256color' se ENV [ 'termo'] == 'xterm' # ativar 256 cores

funciona no Ubuntu 10.04 +

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top