Domanda

Ho 256 colori che funzionano alla grande nel mio terminale ( script di test qui ), ma smette di funzionare quando utilizzo ncurses (tramite Ruby-ncurses). La stampa delle sequenze di escape fornite su quella pagina funziona bene, ma quando inizializzo ncurses 'put' smette di funzionare e non riesco a produrre i colori con nessuna delle varie funzioni di cambio colore / stringa di ncurses che ho trovato. Cosa dà?

È stato utile?

Soluzione 2

njsf: eri parzialmente qui, e dopo aver armeggiato molto di più alla fine sono riuscito a farlo funzionare. Grazie per l'aiuto. La storia: XTerm (e rxvt ed Eterm) supportano 256 colori tramite sequenze di escape (quello che stavo vedendo) ma 'tput colors' dirà '8' e ncurses non sarà in grado di raggiungerli, perché ncurses sta giocando bene e tentando di accedere tramite terminfo.

A beneficio di chiunque abbia un dolore simile:

Ho scoperto che devo installare il pacchetto ncurses-term (Ubuntu) per ottenere / lib / terminfo / x / xterm-256color e altri file terminfo a 256 colori. Quindi ho impostato il mio TERM su xterm-256color e ho aggiunto la riga '* personalizzazione: -color' ai miei ~ / .Xdefaults, ho eseguito 'xrdb -merge ~ / .Xdefaults' per caricarlo e da allora ho 256 colori corretti supporto in nuovi xterm.

Altri suggerimenti

Non sono sicuro che questa sia tutta la storia, ma assicurati che le funzionalità del tuo terminale forniscano effettivamente la descrizione di 256 colori.

Qual è il valore della variabile di ambiente TERM? Prova a impostarlo su xterm-256color ed eseguilo nuovamente. ncurses dovrebbe quindi ottenere le sequenze di escape colore appropriate.

Puoi anche testare le capacità del terminale e l'output del colore del terminale con il programma che usiamo allo sviluppo di SXEmacs:

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

Compila con gcc -o tty-colors tty-colours -lncurses

EDIT: Nota che solo perché gli script che si trovano in rete generano 256 colori, questo non è "tutto impostato". I programmi di maledizioni si basano su terminfo e termcap e sulla variabile d'ambiente TERM per scoprire come interagire con il terminale. Quindi, affinché un'app maledizioni sia in grado di utilizzare i 256 colori, è necessario impostare la variabile TERM su un nome terminale esistente che supporti 256 colori. Il programma C sopra ti mostrerà cosa ncurses pensa al tuo terminale, non solo emette le sequenze xterm come fanno la maggior parte degli script [anche quello di X.org]

impostazione

ENV ['TERM'] + = '-256color' se ENV ['TERM'] == 'xterm' # attiva 256 colori

funziona su Ubuntu 10.04 +

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top