web-dev-qa-db-fra.com

Urxvt: changer la couleur de fond à la volée

Est-ce que là-bas pour changer la couleur de fond d'une session RXVT-Unicode à la volée? Comme avec Ctrl clé?

J'ai un tas d'urxvt windows et je voudrais colorier de manière dynamique pour m'aider à les distinguer. Mais encore une fois, je veux dire à la volée ...

12
dman

urxvt 2.6 En 2004 Ajout de la prise en charge de Xterm's Couleurs dynamiques Fonction. Dans séquences de contrôle de xterm , ceci est OSC 11. OSC 10 définit la couleur de texte par défaut. Le changelog a mentionné une partie du changement:

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 "?".

mais le code source raconte l'histoire, comme d'habitude:

 /*
  * 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 
  */

Le manuel rxvt(7) ne donne aucune information utile:

 Commandes du système d'exploitation Xterm [.____] "ESC] PS; PT ST" [.____] Définir les paramètres XTERM. 8 bits ST: 0x9c, Séquence ST 7 bits: ESC\
 (0x1b, 0x5c), Terminator compatible à l'envers Bel (0x07) est également 
 Accepté. Tout octet peut être échappé en le préfixant avec syn (0x16, [.____] ^ v). [.____]

Cet exemple simple définit à la fois le premier plan (texte) et l'arrière-plan par défaut Couleurs:

#!/bin/sh
printf '\033]10;red\007'
printf '\033]11;green\007'

Comme xterm, ces par défaut Les couleurs peuvent être remplacées temporairement par des couleurs "ANSI".

La fonctionnalité peut être désactivée dans xterm à l'aide du dynamicColors. Contrairement à xterm, urxvt n'a pas de paramètre de ressources pour la fonctionnalité.

VTE implémente également la fonctionnalité et également ne le documente pas. urxvt au moins commencé avec la documentation de rxvt. Pour la VTE, vous devez lire le code source. La fonctionnalité correspondante dans vteseq.cc On dirait que ceci:

/* 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);
}

Ce code remonte à un jour en 2003 (quand il a été écrit en C):

commit f39e281529827f68fd0e9bba41785d66a21efc1c
Author: Nalin Dahyabhai <[email protected]>
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).

En plus de lecture:

16
Thomas Dickey

J'ai ce qui suit dans mes xresources pour une commutation rapide (oui, elle est basée sur des couleurs dynamiques).

URxvt*keysym.Control-Shift-F10: command:\033]11;#2c2c2c\007\033]10;#dcdcdc\007\033]12;#dcdcdc\007\033]4;0;#3f3f3f\007\033]4;1;#705050\007\033]4;2;#60b48a\007\033]4;3;#dfaf8f\007\033]4;4;#9ab8d7\007\033]4;5;#dc8cc3\007\033]4;6;#8cd0d3\007\033]4;7;#dcdcdc\007\033]4;8;#709080\007\033]4;9;#dca3a3\007\033]4;10;#72d5a3\007\033]4;11;#f0dfaf\007\033]4;12;#94bff3\007\033]4;13;#ec93d3\007\033]4;14;#93e0e3\007\033]4;15;#ffffff\007
URxvt*keysym.Control-Shift-F11: command:\033]11;#000000\007\033]10;#ffffff\007\033]12;#ffffff\007\033]4;0;#000000\007\033]4;1;#cc0000\007\033]4;2;#4e9a06\007\033]4;3;#c4a000\007\033]4;4;#3465a4\007\033]4;5;#75507b\007\033]4;6;#06989a\007\033]4;7;#d3d7cf\007\033]4;8;#555753\007\033]4;9;#ef2929\007\033]4;10;#8ae234\007\033]4;11;#fce94f\007\033]4;12;#729fcf\007\033]4;13;#ad7fa8\007\033]4;14;#34e2e2\007\033]4;15;#eeeeec\007
URxvt*keysym.Control-Shift-F12: command:\033]11;#000000\007\033]10;#a9a9a9\007\033]12;#a9a9a9\007\033]4;0;#000000\007\033]4;1;#cc0000\007\033]4;2;#00cc00\007\033]4;3;#cccc00\007\033]4;4;#0000cc\007\033]4;5;#cc00cc\007\033]4;6;#00cccc\007\033]4;7;#cccccc\007\033]4;8;#555555\007\033]4;9;#ff0000\007\033]4;10;#00ff00\007\033]4;11;#ffff00\007\033]4;12;#0000ff\007\033]4;13;#ff00ff\007\033]4;14;#00ffff\007\033]4;15;#ffffff\007

Vous pouvez également consulter une autre approche ici: https://github.com/sos4nt/dynamic-Colors

2
coding_drunk

Les couleurs dynamiques sont un exemple de couleurs de commutation dynamique. Il commence par l'utilisation de ces deux .xResources:

xterm*dynamicColors: true urxvt*dynamicColors: on

En dépit de la tête, je n'ai pas eu de couleur changeant de travailler avec UrXVT! Cette technique fonctionne bien avec Xterm. Les couleurs dynamiques appellent ces "séquences d'échappement de la CVMO" qui modifient le terminal, l'exemple pour faire le fond de l'arrière-plan est le suivant: echo -e "\03echo -e "\033]11;#ff0000\007"3]11;#ff0000\007"

2
rektide

J'ai écrit une extension appelée RXVT-theme qui ajoute cette fonctionnalité à RXVT-Unicode (avec un menu contextuel simple) en utilisant X ressources et couleurs dynamiques.

1
pera