Est-il possible de modifier la couleur d'arrière-plan d'une session rxvt-unicode à la volée? Comme avec la Ctrlclé?
J'ai un tas de fenêtres Urxvt et je voudrais en colorier dynamiquement pour m'aider à les distinguer. Mais encore une fois, je veux dire à la volée ...
Réponses:
urxvt
2.6 en 2004 a ajouté la prise en charge de la fonction de couleurs dynamiques de xterm . Dans XTerm Control Sequences , il s'agit deOSC
11.OSC
10 définit la couleur de texte par défaut. Le changelog mentionne une partie du changement:mais le code source raconte l'histoire, comme d'habitude:
Le manuel
rxvt(7)
ne donne aucune information utile:Cet exemple simple définit les couleurs par défaut du premier plan (texte) et du fond :
Comme
xterm
, ces couleurs par défaut peuvent être remplacées temporairement par des couleurs "ANSI".La fonctionnalité peut être désactivée lors de l'
xterm
utilisation de ladynamicColors
ressource. Contrairement àxterm
,urxvt
n'a aucun paramètre de ressources pour la fonctionnalité.VTE implémente également la fonctionnalité et ne la documente pas non plus.
urxvt
au moins commencé avec la documentation derxvt
. Pour VTE, vous devez lire le code source. La fonctionnalité pertinente dansvteseq.cc
ressemble à ceci:Ce code remonte à quelque temps en 2003 (quand il a été écrit en C):
Lectures complémentaires:
la source
J'ai ajouté ce qui suit à mon
~/.Xresources
fichier pour changer les couleurs à la volée en appuyant sur Ctrlet 7ou 8ou 9.Si vous souhaitez définir la couleur de premier plan et d'arrière-plan en même temps, il suffit de concaténer les commandes (certaines couleurs sont définies par des noms):
Vous pouvez tester vos couleurs avec une simple
echo
commande, comme celle-ci:Attention
J'ai utilisé le code 11 pour la couleur d' arrière-plan et le code 10 pour la couleur de premier plan . Les définitions d'Urxvt citées par Thomas Dickey indiquent d'utiliser 49 et 39 à la place (que j'ai testé et aussi travaillé).
la source
Dynamic Colors est un exemple de changement de couleur dynamique. Il commence par utiliser ces deux .Xresources:
xterm*dynamicColors: true urxvt*dynamicColors: on
Malgré le plomb, je n'ai pas réussi à changer de couleur avec urxvt! Cette technique fonctionne très bien avec xterm. Dynamic Colors appelle ces "séquences d'échappement OSC" qui modifient le terminal, l'exemple pour rendre l'arrière-plan rouge est:
echo -e "\03echo -e "\033]11;#ff0000\007"3]11;#ff0000\007"
la source
echo -e "\033]11;#ff0000\007"
J'ai les éléments suivants dans mes Xresources pour une commutation rapide (oui, c'est basé sur des couleurs dynamiques).
Vous pouvez également consulter une autre approche ici: https://github.com/sos4nt/dynamic-colors
la source
J'ai écrit une extension appelée urxvt-theme qui ajoute cette fonctionnalité à rxvt-unicode (avec un menu contextuel simple) en utilisant des ressources X et des couleurs dynamiques.
la source