256 Farben in der Konsole (tty)

11

Angenommen, ich habe ein System ohne X server. Ich kann mich nur über die Konsole anmelden. Es scheint, dass die Linux-Konsole standardmäßig nur 8 Farben unterstützt:

# tput colors
8

Ist es möglich, 256 Farben in der Konsole zu verwenden, wie ich es in einem Terminalemulator (dh einem Terminator) tun würde?

Beim Googeln habe ich viele ähnliche Fragen gefunden (viele davon über 10 Jahre alt), aber keine klare Antwort. Jemand schlägt vor, Framebuffer zu verwenden, andere schlagen vor, das TERM-Argument an die Kernel-Boot-Optionen anzuhängen.

Im Moment übergebe ich nur eine zusätzliche Option als Kernel-Boot-Parameter:

append="video=1280x720"

Ich glaube, dass das Übergeben der Videoauflösung nur in modernen Kerneln mit kernel mode settingUnterstützung funktioniert , aber ich bin mir nicht sicher.

Ist es möglich, 256 Farben in der modernen Linux-Konsole (tty) zu verwenden?

Wie?

Ich benutze Debian Wheezy mit Kernel 4.1

AKTUALISIEREN:

Auf Vorschlag von @muru habe ich es versucht fbterm. Während es mit 256 Farben arbeitet, hat es sehr hässliche / verstümmelte Schriftarten. Außerdem gibt es in der unteren linken Ecke einen ständig blinkenden Cursor, der mich ablenkt.

Kann ich 256 Farben in der Konsole ohne fbterm / framebuffer verwenden?

Woher kommt die 8-Farben-Grenze in der Konsole?

Martin Vegter
quelle
@muru - danke für den Vorschlag. Ich habe meine Frage aktualisiert.
Martin Vegter
Natürlich, wenn Sie festgelegt , TERMum xterm-256colorfür die Linux - Konsole, werden Sie einfach eine andere Dose Würmer zu öffnen. Dieser Link gibt einen Hinweis.
Thomas Dickey

Antworten:

2

Die eigentliche Frage besteht aus diesen beiden Punkten:

  • Kann ich 256 Farben in der Konsole ohne fbterm / framebuffer verwenden?

  • Woher kommt die 8-Farben-Grenze in der Konsole?

Zum ersten: anscheinend nicht. Alle vorgeschlagenen Ansätze verwenden fbterm. Zum zweiten: Es stammt aus der Terminalbeschreibung (auch bekannt als "terminfo entry"). Für die Linux-Konsole mit TERMset to bedeutet dies linux, dass das Terminal 8 Farben unterstützt. tput bezieht seine Informationen aus der Terminaldatenbank.

Einer der Punkte im zitierten Thread besagt, dass fbterm andere Escape-Sequenzen zum Festlegen von Farben verwendet als xterm. Wenn dies der Fall ist (und angesichts der Neigung der Emacs-Benutzer, Dinge fest zu codieren), gibt es keinen geeigneten Terminaleintrag für fbterm.

Thomas Dickey
quelle
Der Linux-Kernel-Terminalemulator hat in den letzten Jahren zusätzliche SGR-Unterstützung erhalten: github.com/torvalds/linux/commit/… github.com/torvalds/linux/commit/… github.com/torvalds/linux/commit/…
JdeBP
sicher - Sie haben den Check-in-Kommentar möglicherweise nicht gelesen: Aufgrund der Hardwareeinschränkungen von VGA-Konsolen werden die Farben * auf 16 Vorder- und 8 Hintergründe herabgestuft . Auf fbdev-Konsolen wäre es möglich, sie ohne Qualitätsverlust zu unterstützen, aber das Hinzufügen würde eine ziemlich große Menge an Code erfordern. *
Thomas Dickey
Ich habe den Kommentar schon vor langer Zeit gelesen, weshalb ich schrieb, dass er zusätzliche SGR-Unterstützung erhalten hat . (-: Aber beachten Sie, dass es daher nicht immer eine 8-Farben-Grenze ist, wie Sie 2016 hier geschrieben haben.
JdeBP
Es ist immer noch die gleiche Palette von 8 ANSI und 8 fett / hell ANSI wie seit mehr als 25 Jahren (und ncurses hat seit 2009 einen Linux-16-Farben-Eintrag ).
Thomas Dickey