Gibt es eine Möglichkeit, die Hintergrundfarbe einer rxvt-Unicode-Sitzung im laufenden Betrieb zu ändern? Wie mit CtrlSchlüssel?
Ich habe eine Reihe von Urxvt-Fenstern und möchte einige dynamisch einfärben, um sie besser unterscheiden zu können. Aber wieder meine ich on the fly ...
Antworten:
urxvt
2.6 im Jahr 2004 wurde die Unterstützung für die dynamische Farbfunktion von xterm hinzugefügt . In XTerm-Steuersequenzen ist diesOSC
11.OSC
10 legt die Standardtextfarbe fest. Das Änderungsprotokoll erwähnte einen Teil der Änderung:aber der Quellcode erzählt die Geschichte wie immer:
Das Handbuch
rxvt(7)
enthält keine nützlichen Informationen:In diesem einfachen Beispiel werden sowohl die Standardfarben für den Vordergrund (Text) als auch für den Hintergrund festgelegt :
Ebenso
xterm
können diese Standardfarben vorübergehend durch "ANSI" -Farben überschrieben werden.Die Funktion kann bei der
xterm
Verwendung derdynamicColors
Ressource deaktiviert werden . Im Gegensatzxterm
,urxvt
hat für die Funktion keine Ressource-Einstellung.VTE implementiert die Funktion auch und dokumentiert sie ebenfalls nicht.
urxvt
Zumindest begann mit der Dokumentation vonrxvt
. Für VTE müssen Sie den Quellcode lesen. Die relevante Funktion invteseq.cc
sieht folgendermaßen aus:Dieser Code stammt aus dem Jahr 2003 (als er in C geschrieben wurde):
Weiterführende Literatur:
quelle
Ich habe meiner
~/.Xresources
Datei Folgendes hinzugefügt , um die Farben im laufenden Betrieb durch Drücken von Ctrlund 7oder 8oder zu ändern 9.Wenn Sie die Vordergrund- und Hintergrundfarbe gleichzeitig einstellen möchten, verketten Sie einfach die Befehle (einige Farben werden durch Namen definiert):
Sie können Ihre Farben mit einem einfachen
echo
Befehl wie diesem testen :Beachtung
Ich habe Code 11 für die Hintergrundfarbe und Code 10 für die Vordergrundfarbe verwendet . Die von Thomas Dickey zitierten Definitionen für Urxvt geben an, stattdessen 49 und 39 zu verwenden (die ich getestet habe und auch arbeite).
quelle
Dynamische Farben ist ein Beispiel für das dynamische Umschalten von Farben. Es beginnt mit der Verwendung dieser beiden .Xresources:
xterm*dynamicColors: true urxvt*dynamicColors: on
Trotz des Vorsprungs habe ich bei urxvt keinen Farbwechsel bekommen! Diese Technik funktioniert hervorragend mit xterm. Dynamic Colors nennt diese "OSC-Escape-Sequenzen", die das Terminal verändern. Das Beispiel, um den Hintergrund rot zu machen, lautet:
echo -e "\03echo -e "\033]11;#ff0000\007"3]11;#ff0000\007"
quelle
echo -e "\033]11;#ff0000\007"
Ich habe Folgendes in meinen Xresources zum schnellen Umschalten (ja, es basiert auf dynamischen Farben).
Sie können hier auch nach einem anderen Ansatz suchen: https://github.com/sos4nt/dynamic-colors
quelle
Ich habe eine Erweiterung namens urxvt-theme geschrieben , die diese Funktionalität rxvt-unicode (mit einem einfachen Kontextmenü) mithilfe von X-Ressourcen und dynamischen Farben hinzufügt.
quelle