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"'
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
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.
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