urxvt2.6 im Jahr 2004 wurde die Unterstützung für die dynamische Farbfunktion von xterm hinzugefügt . In XTerm-Steuersequenzen ist dies OSC11. OSC10 legt die Standardtextfarbe fest. Das Änderungsprotokoll erwähnte einen Teil der Änderung:
2.6 Fri Apr 2 03:24:10 CEST 2004
- minor doc corrections.
- WARNING: changed menu sequence from ESC ] 10 to ESC ] 703 to
avoid clashes with xterm.
- changed OSC701/OSC702 sequence to return standard escaped reports.
- xterm-compat: make set window colour and other requests report
window colour when arg is "?".
aber der Quellcode erzählt die Geschichte wie immer:
/*
* XTerm escape sequences: ESC ] Ps;Pt (ST|BEL)
* 0 = change iconName/title
* 1 = change iconName
* 2 = change title
* 4 = change color
+ * 10 = change fg color
+ * 11 = change bg color
* 12 = change text color
* 13 = change mouse foreground color
* 17 = change highlight character colour
@@ -2949,20 +3236,21 @@
* 50 = change font
*
* rxvt extensions:
- * 10 = menu (may change in future)
* 20 = bg pixmap
* 39 = change default fg color
* 49 = change default bg color
* 55 = dump scrollback buffer and all of screen
* 701 = change locale
* 702 = find font
+ * 703 = menu
*/
Das Handbuch rxvt(7)enthält keine nützlichen Informationen:
XTerm-Betriebssystembefehle
ESC] Ps; Pt ST
Stellen Sie die XTerm-Parameter ein. 8-Bit-ST: 0x9c, 7-Bit-ST-Sequenz: ESC \
(0x1b, 0x5c) ist auch der abwärtskompatible Terminator BEL (0x07)
akzeptiert. Jedes Oktett kann durch Präfixieren von SYN (0x16,
^ V).
In diesem einfachen Beispiel werden sowohl die Standardfarben für den Vordergrund (Text) als auch für den Hintergrund festgelegt :
#!/bin/sh
printf '\033]10;red\007'
printf '\033]11;green\007'
Ebenso xtermkönnen diese Standardfarben vorübergehend durch "ANSI" -Farben überschrieben werden.
Die Funktion kann bei der xtermVerwendung der dynamicColorsRessource deaktiviert werden . Im Gegensatz xterm, urxvthat für die Funktion keine Ressource-Einstellung.
VTE implementiert die Funktion auch und dokumentiert sie ebenfalls nicht. urxvtZumindest begann mit der Dokumentation von rxvt. Für VTE müssen Sie den Quellcode lesen. Die relevante Funktion in vteseq.ccsieht folgendermaßen aus:
/* Change the default background cursor, BEL terminated */
static void
vte_sequence_handler_change_background_color_bel (VteTerminalPrivate *that, GValueArray *params)
{
vte_sequence_handler_change_special_color_internal (that, params,
VTE_DEFAULT_BG, -1, 11, BEL);
}
/* Change the default background cursor, ST terminated */
static void
vte_sequence_handler_change_background_color_st (VteTerminalPrivate *that, GValueArray *params)
{
vte_sequence_handler_change_special_color_internal (that, params,
VTE_DEFAULT_BG, -1, 11, ST);
}
Dieser Code stammt aus dem Jahr 2003 (als er in C geschrieben wurde):
commit f39e281529827f68fd0e9bba41785d66a21efc1c
Author: Nalin Dahyabhai <nalin@src.gnome.org>
Date: Wed Jan 22 21:35:22 2003 +0000
accept OSC{number};{string}ST as set-text-parameters, per XTerm docs (part
* src/caps.c: accept OSC{number};{string}ST as set-text-parameters, per XTerm
docs (part of #104154).
* src/keymap.c: revert change to prepend "1;" to keys with modifiers (#104139).
Weiterführende Literatur: