0 votes

Nom d'hôte dans le titre de la fenêtre X11

Comment faire pour que le nom d'hôte apparaisse dans le titre d'une fenêtre X11 ?

Dans les environnements Linux, ssh -Y foohost; ...; bar-gui ouvrira une fenêtre x pour le programme avec le titre "bar-gui (on foohost)". En d'autres termes, le nom d'hôte est automatiquement ajouté au titre de la fenêtre X11 lorsque le programme est exécuté sur un système distant. J'exécute des programmes sur plusieurs systèmes distants et j'ai besoin de les distinguer.

Exemple : Notez le nom d'hôte dans le titre de la fenêtre de droite. forwarded gedit from askubuntu

J'aimerais avoir le même comportement à partir d'un client Mac.

(Je ne cherche pas à changer le titre du terminal).

Solution de rechange : xdotool peut être utilisé pour modifier manuellement le titre d'une fenêtre x.

ssh -Y foohost
...
bar-gui &
pid="$!"
# Wait for bar-gui to actually load
win=$(xdotool search --pid "$pid")
xdotool set_window --name "bar-gui (on foohost)" "$win"

Cette solution de contournement n'est pas idéale et je n'en fais pas une réponse. Il faut que xdotool soit installé pour fonctionner. Cela ne fonctionnerait pas très bien en tant que script ou fonction bash. Il existe peut-être de meilleures façons d'utiliser xdotool, mais c'est la première chose que j'ai réussi à faire fonctionner.

Note : Faire ... --name "bar-gui (on foohost)" ... à partir d'un bureau linux, le titre apparaîtra comme "bar-gui (on foohost) (on foohost)" car le nom de l'hôte sera ajouté automatiquement.

Je cherche toujours à ce que le bureau du Mac inclue automatiquement le nom d'hôte des applications x11 distantes dans le titre de la fenêtre.

1voto

thrig Points 777

Cela dépend de la configuration de l'interpréteur de commandes et du terminal impliqué ; la plupart des choses supportent Séquences de contrôle XTerm bien que les terminaux puissent être configurés pour refuser l'utilisation de ces séquences d'échappement. Ce que les systèmes Linux ont souvent, c'est la configuration de l'interpréteur de commandes (généralement sous le nom de /etc/profile.d ) qui exécute automatiquement la séquence d'échappement pour définir le titre du nom d'hôte. Cela peut également être fait manuellement :

printf "\033]2;this is a test\007"

qui devrait définir le titre

the worlds most boring terminal example

Si ce n'est pas le cas, vous devrez configurer le terminal pour autoriser cette séquence d'échappement, ce qui se trouvera dans les préférences ou dans un fichier de configuration quelque part, selon le cas.

Cela peut être fait automatiquement à partir d'un fichier de configuration du shell en générant la séquence d'échappement appropriée avec le nom d'hôte (ou toute autre donnée que vous souhaitez) :

printf "\033]2;%s\007" $(hostname)

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X