Supposons que j'ai un système sans X server
. Je ne peux me connecter qu'à partir de la console. Il semble, par défaut, la console Linux ne prend en charge que 8 couleurs:
# tput colors
8
Est-il possible d'utiliser 256 couleurs dans la console, comme j'utiliserais dans un émulateur de terminal (c'est-à-dire un terminateur)?
En cherchant sur Google, j'ai trouvé de nombreuses questions similaires (beaucoup d'entre elles ont plus de 10 ans), mais aucune réponse claire. Quelqu'un suggère d'utiliser framebuffer, d'autres suggèrent d'ajouter l'argument TERM aux options de démarrage du noyau.
Pour le moment, je ne passe qu'une option supplémentaire comme paramètre de démarrage du noyau:
append="video=1280x720"
Je crois que l'adoption de la résolution vidéo ne fonctionne que dans les noyaux modernes avec kernel mode setting
support, mais je n'en suis pas sûr.
Est-il possible d'utiliser 256 couleurs dans une console Linux moderne (tty)
Comment?
J'utilise Debian Wheezy avec le noyau 4.1
MISE À JOUR:
basé sur la suggestion de @muru, j'ai essayé fbterm
. Bien qu'il fonctionne avec 256 couleurs, il a des polices très laides / déformées. En outre, il y a un curseur clignotant constamment dans le coin inférieur gauche, ce qui me dérange.
Puis-je utiliser 256 couleurs dans la console sans fbterm / framebuffer?
D'où vient la limite de 8 couleurs dans la console?
la source
TERM
àxterm-256color
la console Linux, vous suffit d' ouvrir une autre boîte de Pandore. Ce lien donne un indice.$TERM
(doit êtrefbterm
avant de commencerfbterm
) ou pas le mode vidéo 32 bits ou les deux. Désactivez le curseur de la console avant de commencerfbterm
et activez-le une fois que vous y êtes, à l'aide detput
. unix.stackexchange.com/questions/220330/…fbterm
source, et il serait simple (mais long) de convertir les séquences de code d'échappement à utiliser à laxterm-256color
place (fbterm-xterm
). L'$TERM
aurait aussi besoin d'être inline avecterminfo
et lestermcap
conventions de nommage (fbterm-xterm-256color
oufbterm-256color
) à « slot » dans les scripts shell existants. Notez quefbterm
utiliseTERM=fbterm
comme interrupteur pour activer l'option 256 couleurs, sinon ses 16 couleurs (ou peut-être les mêmes que le sous-jacent).Réponses:
La vraie question se compose de ces deux éléments:
Puis-je utiliser 256 couleurs dans la console sans fbterm / framebuffer?
D'où vient la limite de 8 couleurs dans la console?
Pour le premier: apparemment non. Toutes les approches suggérées utilisent fbterm. Pour le second: il vient de la description du terminal (aka "terminfo entry"). Pour la console Linux, avec
TERM
défini surlinux
, cela signifie que le terminal prend en charge 8 couleurs. tput obtient ses informations de la base de données du terminal.L'un des éléments du fil cité indique que fbterm utilise des séquences d'échappement différentes pour définir les couleurs que xterm. Si tel est le cas (et compte tenu de la propension des utilisateurs d'Emacs à coder en dur), il n'y a pas d'entrée de terminal appropriée pour fbterm.
la source
linux-256color
). Ce correctif ne serait jamais accepté en amont pour la même raison que Thomas Dickey commente ci-dessus, "en raison de limitations matérielles". IE Linux doit fonctionner sur le plus petit dénominateur commun.