web-dev-qa-db-fra.com

URXVT Paramètres - Recharger sans le terminal de redémarrage?

J'ai deux urxvt thèmes de couleur que j'utilise, un pour fond clair et un pour sombre, en fonction de la peau ensoleillée.

Il est assez facile de les changer en modifiant ~/.Xresources et courir xrdb ~/.Xresources Encore une fois, mais cela n'affecte pas les terminaux qui fonctionnent déjà.

J'utilise TMUX pour que je puisse me détacher, redémarrer le terminal et se redonner, mais cela devient très gênant très rapidement quand il y en a 8 déjà mis en place sur la manière dont je veux sur divers espaces de travail.

La solution, semble-t-il, est destinée à UrXVT de recharger ses paramètres d'une manière ou d'une autre, mais je ne trouve aucune information sur la manière de faire cela ou si c'est même possible. Est-ce que quelqu'un sait comment?

Remarque: je n'exécute aucun des principaux de De la majeure et je ne vais pas installer tous les Libs KDE ou Gnome, pour un terminal.

Éditer: man 7 urxvt montre des codes à la recherche de wizardly à faire ... bien ... quelque chose. Je ne vois pas comment il s'applique à la modification des ensembles de couleurs entiers. Des conseils?

20
John Tyree

J'ai créé une extension Perl qui recharge la configuration URXVT lors de la réception SIGUSR1: https://github.com/regnarg/urxvt-config-reload

Actuellement, il prend en charge la configuration de la couleur de rechargement uniquement, mais d'autres choses (comme des polices telles que des polices) peuvent être ajoutées facilement. Signalez des bugs sous forme de problèmes GITUB.

4
regnarg

Le script suivant peut être utilisé avec URXVT (ou tout autre terminal supportant les séquences d'échappement XTERM OSC) pour modifier la palette de couleurs à la volée. Il accepte les définitions de style .xresources comme entrée et génère les séquences d'échappement. Il vous suffit d'exécuter le script dans le terminal et de coller une liste de couleurs dans celle-ci changera la palette de couleurs - utile pour essayer rapidement différents schémas.

#!/bin/sh
tr -d ' \t' | sed -n '
s/.*background:/\x1b]11;/p
s/.*foreground:/\x1b]10;/p
s/.*color\([0-9][^:]*\):/\x1b]4;\1;/p
' | tr \\n \\a

La redirection de la coque peut également être utilisée: ~/bin/term-recolor < .Xdefaults.solarized.dark.

3
amonakov

Je sais que cela fait longtemps, mais je consultais votre code Perl avec un œil vers la définition des couleurs URXVT par défaut en fonction de l'hôte SSH que j'étais connecté à.

Ensuite, j'ai trébuché sur les définitions de séquence d'évacuation de la CVMO à http://invisible-island.net/xterm/ctlseqs/clseqs.html#h2-Opérating-system-control et proposé ce qui suit:

printf '\x1b]10;%s\a\x1b]11;%s\a' yellow blue

Où dans ce cas "Jaune" est le premier plan et "bleu" est la couleur d'arrière-plan. Les définitions de couleur peuvent être une chaîne acceptable pour XPARSECOLOR E.G. Lemonchiffon ou # FF4455.

Ceci de manière permanente remplace les couleurs par défaut du terminal, de sorte qu'une réinitialisation du terminal utilise de nouvelles couleurs. Il est donc collant par rapport aux séquences d'échappement d'ANSI normales, ce qui est exactement ce dont j'avais besoin. Fonctionne sur RXVT et URXVT, probablement d'autres consoles également (OSC est même mentionnée dans Man Console_Codes).

Il semble également y avoir des codes pour remplacer les couleurs individuelles ANSI, je n'ai pas essayé ceux mais s'ils travaillent, je pense que c'est le meilleur moyen de themer de manière dynamique votre console, vous pouvez littéralement juste "chat sombre" ou "la lumière du chat".

0
rich

La configuration est lue une fois dans la durée de vie d'un processus urxvtd ou d'une URXVT autonome. Il n'est pas possible de recharger la configuration et de disposer des effets dans une instance déjà exécutée du programme. Il existe des exceptions à cette règle, lorsqu'il s'agit de paramètres de police et de paramètres régionaux.

Vous pouvez faire défiler jusqu'à la section appropriée de votre terminal. Voici quelques faqs pertinents

Q Pourquoi ne rxvt-unicode n'a-t-il pas lu mes ressources?

A (raccourci), utilisez XRDB. Vous devez vous reconnecter après chaque changement (ou exécuter XRDB -Merge $ HOME/.XRESources).

Cela implique de recharger le terminal binaire à moi.

Q Je n'aime pas les couleurs de l'écran. Comment puis-je les changer?

A Vous pouvez modifier les couleurs d'écran au moment de l'exécution à l'aide des ressources ~/.xdefault (ou en options longues).

Je pense que cela signifie "quand vous démarrez la demande".


Vous pouvez faire un certain texte dans une certaine couleur, mais les couleurs sont définies dans les fichiers X-Ressources et doivent être reluées (en redémarrant) chaque fois qu'ils sont modifiés. Je me trompe peut-être, mais je ne pense pas que UrXVT prend en charge la modification des définitions de couleur après son démarrage. Il y a peut-être une séquence de contrôle pour cela, je ne suis pas sûr.

PAR EXEMPLE.

$ cat colors-in-bash
#!/bin/bash
for code in {0..255}; do
        if [[ code%8 -eq 0 ]];then echo ;fi
        printf "%5s" `echo -n -e "\e[38;05;${code}m $code: Test"`
done

info plus pertinent:

http://pod.tst.eu/http://cvs.schmorp.de/rxvt-unicode/doc/rxvt.7.pod#xterm_operating_system_commands

http://www.xfree86.org/current/xterm.1.html#toc19

http://fr.wikipedia.org/wiki/control_Suence_introducer# peeplence_éléments

http://invisible-island.net/xterm/ctlseqs/ctlseqs.html