Ce LDP Howto montre comment changer le titre d'un xterm.
Je sais que cela est également possible en utilisant la xtitle
commande.
Avant d'invoquer une action de longue durée, mon script utilise de telles techniques pour changer le titre de sa fenêtre xterm.
Je voudrais extraire le nom de la fenêtre xterm avant de la changer afin que, une fois l'action longue terminée, je puisse restaurer le titre à sa valeur précédente.
Ce serait en quelque sorte l'inverse de xtitle ... Est-ce même possible?
xterm
avoir une pile pour le titre de la fenêtre, si vous pouvez comprendre comment l'utiliser.Réponses:
Utilisez un
xtitle
script.Il existe de nombreuses variantes sur Internet, cependant, j'ai tendance à en utiliser une qui dépend de
xprop
http://www.shelldorado.com/scripts/cmds/xtitle
la source
xtitle
fonctionne, ne fonctionne que pour les sessions locales.Il existe une séquence de contrôle pour interroger le titre actuel, mais elle est généralement désactivée pour des raisons de sécurité. En effet, il permet à un programme malveillant ou même simplement à un fichier texte enchaîné d'insérer des séquences de caractères arbitraires comme s'il était tapé sur le clavier, en définissant d'abord le titre, puis en demandant qu'il soit renvoyé. Par conséquent, la pile de titres a été introduite à la place.
La commande suivante enregistre les titres des fenêtres et des icônes actuelles dans la pile:
Cela définira le titre sur
my title
:Et cela restaurera les titres des fenêtres et des icônes précédents:
la source
Pour le trivial, (et probablement le cas le plus courant), où l'on peut souhaiter interroger l'invite pour le xterm actuel, utilisez simplement
xprop -id $WINDOWID WM_NAME
. Si vous voulez extraire la valeur de manipulation dans un script shell, vous pouvez faire quelque chose d'un peu plus cher comme:Utiliser bash seul (pour éviter l'invocation de awk et xargs):
L'écho xargs dans le premier exemple et l'eval dans le second exemple sont simplement là pour supprimer les guillemets que xprop met autour de la valeur.
Remplacez WM_NAME par WM_ICON si vous souhaitez obtenir le nom de l'icône plutôt que la chaîne dans la barre de titre.
la source
Si je comprends bien votre question, vous devriez pouvoir obtenir le titre xterm actuel en inspectant la
$PROMPT_COMMAND
variable, par exemple:et vous pouvez le définir comme (saut de ligne pour la lisibilité):
la source
PROMPT_COMMAND
n'est pas le moyen le plus fiable pour obtenir le titre car il n'est pas toujours défini, et toute commande que vous exécutez peut changer le titre entre les invites. Pour la plus grande précision, les séquences de contrôle spécifiques à l'émulateur de terminal sont probablement la voie à suivre.$PROMPT_COMMAND
n'est pas le titre de la fenêtre. Ils ne sont pas liés.