Gibt es eine Möglichkeit, die in TTY-Konsolen unter Linux verwendeten Farben zu ändern?

14

Mit „alten Farben“, ich meine so etwas wie ändern schwarz aus #000000zu #111111und durch „TTY - Konsole“, ich meine , was Sie bekommen , wenn Sie tun Ctrl+ Alt+ F1von X11, nicht einen Terminal - Emulator wie xtermoder urxvt.

Ich verwende Arch Linux, aber ich denke, es hat mehr mit dem Programm zu tun, das das TTY bereitstellt ( agettyglaube ich).

Austin Hyde
quelle
Terminals arbeiten nicht mit Hex-Farben - sie verwenden Farbcodes wie die in "/ etc / shell-colours".
new123456
1
@ new123456 - Ich habe keine Datei namens "Shell-Farben" irgendwo unter/
Austin Hyde
Huh. Sie geben hier nicht Ihre Distribution an - ich verwende Zenwalk, daher kann Ihre Distribution variieren. Suchen Sie nach color in bash, um eine Liste aller Fluchten zu erhalten.
New123456
2
@ new123456 - Ich habe erwähnt, dass ich Arch verwendet habe, und ich suche nicht nach Bash-Escape-Sequenzen für Farben, wie \e[0;30mfür Schwarz. Ich suche nach einer Möglichkeit, die tatsächliche Farbe für jede benannte Farbe anzupassen.
Austin Hyde
1. Entschuldigung - ich schaue zuerst auf Tags;) 2. Nur Informationen, die für die Frage nicht ganz relevant sind, aber für die Domain.
new123456

Antworten:

3

Der Befehl setterm ist genau das, wonach Sie suchen.

setterm -foreground black -background white

BEARBEITEN

Nein, es gibt keine Möglichkeit, die Namen der Farben wie gewünscht zu ändern. Sie werden in Flüchen, terminfo oder im Terminal selbst nirgendwo so referenziert. Sie können die Definitionen der Farbindizes ändern (0-15, glaube ich), indem Sie die Kernelquelle bearbeiten und neu kompilieren.

h0tw1r3
quelle
Nein, das ist nicht das, wonach ich suche. Ich möchte die Definitionen von Farben ändern, nicht die Vordergrund- und Hintergrundfarbe.
Austin Hyde
13

Dies ist durchaus möglich und wird in meinem Arch-Setup ausgeführt.

Sie können so etwas in ein Shell-Skript einfügen und es beim Anmelden ausführen lassen:

if [ "$TERM" = "linux" ]; then
    echo -en "\e]P0151515" # Black
    echo -en "\e]P1ac4142" # Red
    ...
    echo -en "\e]PEac4142" # Bright Cyan
    echo -en "\e]PFac4142" # Bright White
    clear # Clear artifacts
fi

Die \e]P0to \e]PF(Basis 16) sind die Escape-Sequenzen, die Sie zum Einstellen der 16 (8 halbhellen, 8 hellen) Farben benötigen. Danach geben Sie Ihre gewünschte Ersatzfarbe ein, z 151515.

Chris Kempson
quelle
scheint in Ubuntu 16.04 mit Bash FWIW nicht zu funktionieren
G Gordon Worley III
2

Dies ist der beste Befehl, den ich kenne:

setterm -clear all -foreground green -bold -store

Sie können nur 8 verschiedene Farben haben, soweit ich das beurteilen kann. Vielleicht noch mehr, indem Sie Bright vor Basic 8 verwenden?

Shubham Chaudhary
quelle