Définir le titre de la window dynamic en fonction de l'input de la command

Je cherche un moyen de définir dynamicment le titre de la window urxvt en fonction de l'input de la command.

Prenons un exemple.

Si je cours mplayer http://66.197.229.245:8082 dans une window urxvt, je voudrais que le titre de cette window soit réglé sur mplayer http://66.197.229.245:8082 ou encore mieux Terminal | mplayer Terminal | mplayer .

Ou si je lance journalctl -b je veux que le titre de la window soit défini sur Terminal | journalctl -b Terminal | journalctl -b ou mieux Terminal | journalctl Terminal | journalctl .

Est-ce possible?

En supposant que vous utilisez Bash comme votre shell, vous pouvez définir cette variable.

 PROMPT_COMMAND='echo -ne "\033]0;Terminal | mplayer\007"' 

Exemples

ss # 1

ss # 2

ss # 3

Y compris la command précédente dans le titre?

Si vous voulez une barre de titre plus élaborée, vous pouvez utiliser cette méthode pour définir dynamicment la command en cours d'exécution dans la barre de titre.

  $ trap 'echo -ne "\033]0;$BASH_COMMAND\007"' DEBUG 

Exemple

ss # 4

ss # 5

Qu'est-ce que vous cherchez

Pour get ce que vous voulez, vous aurez besoin de faire un travail pour parsingr le nom de l'exécutable, par exemple. Vous devrez donc prendre des décisions quant à la partie de la command que vous voulez. Vous pourriez utiliser .. | awk '{print $1}' .. | awk '{print $1}' pour get le nom de la command.

Le rendre permanent

Si vous voulez faire ce comportement par défaut via vos files /etc/bashrc ou $HOME/.bashrc , vous aurez probablement besoin de suivre les suggestions de @ simon dans ce SO Q & A intitulé: Bash – Mettre à jour le titre du terminal en exécutant une seconde command .

La réponse de Simon est la suivante:

 function settitle () { export PREV_COMMAND=${PREV_COMMAND}${@} echo -ne "\033]0;${PREV_COMMAND}\007" export PREV_COMMAND=${PREV_COMMAND}' | ' } export PROMPT_COMMAND=${PROMPT_COMMAND}';export PREV_COMMAND=""' trap 'settitle "$BASH_COMMAND"' DEBUG 

Les references

  • Afficher la command dans la barre de titre xterm
  • Bash – Mettre à jour le titre du terminal en exécutant une seconde command
  • Comment changer le titre d'un xterm – 3. Titres dynamics