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).


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.


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.


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?

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.