Veel moderne terminals zijn afgeleid van xterm
of rxvt
en ondersteunen de tot nu toe gebruikte escape sequences.
Een aantal eigen terminals die met diverse varianten van unix worden
meegeleverd maken gebruik van eigen escape sequences.
aixterm
aixterm
herkent de xterm escape
sequences.
wsh
, xwsh
en winterm
Deze terminals zetten de termvariabele in als $TERM=iris-ansi
en gebruiken de volgende escapes:
ESCP1.ystringESC\ Stel de venstertitel in op
string
ESCP3.ystringESC\ Stel de ikoontitel in op
string
xwsh(1G)
voor een volledige lijst met xwsh
escapes.
De Irix terminals ondersteunen ook de xterm
escapes om afzonderlijk
te venstertitel en ikoontitel in te stellen, maar niet de escape om ze beiden
in te stellen.
cmdtool
en shelltool
cmdtool
en shelltool
stellen stellen de termvariabele
beiden in als $TERM=sun-cmd
en maken gebruik van de volgende
escapes:
ESC]lstringESC\ Stel de venster titel in op string
ESC]LstringESC\ Stel de titel van het ikoon in op string
dtterm
dtterm
stelt de termvariabele in op $TERM=dtterm
,
en blijkt standaard zowel de standaard
xterm
als de Sun cmdtool
sequences te herkennen (getest onder Solaris 2.5.1, Digital Unix 4.0, HP-UX 10.20).
hpterm
stelt de termvariabele in als $TERM=hpterm
en
gebruikt de volgende escapes:
ESC&f0klengthDstring Stel venstertitel in op string van lengte length
ESC&f-1klengthDstring Stel ikoontitel in op string met de lengte length
Een basis C-programma om de lengte van de string te berekenen en deze terug te geven, ziet er ongeveer zo uit:
#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);
}
We kunnen een vergelijkbaar script schrijven door gebruik te maken van
de ${#string}
(zsh
, bash
, ksh
) of ${%string}
(tcsh)
's uitbreiding om de lengte van de string te achterhalen.
Het volgende geldt voor 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