De nombreux émulateurs de terminaux modernes sont des dérivés de
xterm ou rxvt et acceptent les séquences d'échappement
que nous avons utilisées jusqu'ici. Certains terminaux propriétaires
fournis avec les diverses variantes d'unix utilisent leur propres
séquences.
aixterm d'IBM
aixterm reconnaît les séquences d'échappement de xterm.
wsh, xwsh et winterm de SGI
Ces terminaux définissent $TERM=iris-ansi et utilisent :
ESCP1.ytexteESC\ Pour le titre de la fenêtreESCP3.ytexteESC\ Pour le titre de l'icônexwsh(1G).
Les terminaux d'Irix supportent également les séquences de xterm
pour définir individuellement le titre de la fenêtre et de l'icône, mais
pas celle pour définir les deux en même temps.
cmdtool et shelltool de Sun
cmdtool et shelltool définissent $TERM=sun-cmd et
utilisent :
ESC]ltexteESC\ Pour le titre de la fenêtreESC]LtexteESC\ Pour le titre de l'icône
dtterm définit $TERM=dtterm. Il semble qu'il reconnaisse à la fois les
séquences xterm standard ainsi que celles du cmdtool de
Sun (testé sur Solaris 2.5.1, Digital Unix 4.0, HP-UX 10.20).
hpterm définit $TERM=hpterm et utilise les séquences
suivantes :
ESC&f0klongueurDtexte Donne le texte
texte de longueur longueur comme titre de fenêtreESC&f-1klongueurDtexte Donne le texte
texte de longueur longueur comme nom de l'icône
Un programme C simple pour calculer la longueur et afficher la bonne séquence ressemble à :
#include <string.h>
int main(int argc, char *argv[])
{
printf("\033&f0k%dD%s", strlen(argv[1]), argv[1]);
printf("\033&f-1k%dD%s", strlen(argv[1]), argv[1]);
return(0);
}
On peut également écrire un shell-script équivalent, utilisant
${#string} (zsh, bash, ksh) ou
${%string} (tcsh) pour obtenir la longueur d'une
chaîne. L'exemple suivant est pour zsh :
case $TERM in
hpterm)
str="\e]0;%n@%m: %~\a"
precmd () {print -Pn "\e&f0k${#str}D${str}"}
precmd () {print -Pn "\e&f-1k${#str}D${str}"}
;;
esac