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être
ESCP3.ytexteESC\ Pour le titre de l'icône
xwsh(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être
ESC]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être
ESC&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