許多新式的終端機都衍生自 xterm
或 rxvt
並且支援我們所使用的溢位序列. 某些專利的終端機隨著各種不同的 unix
販賣則會使用他們字訂的溢位序列.
aixterm
aixterm
可以辨識出 xterm 的溢位序列
.
wsh
, xwsh
及 winterm
這類終端機會設定 $TERM=iris-ansi
並採用下列的溢位序列:
ESCP1.ystringESC\ 設定視窗主題為 string
ESCP3.ystringESC\ 設定圖示主題為 string
xwsh
完整的溢位序列可以參考 xwsh(1G)
的使用說明.
Irix 的終端機支援 xterm
各別設定視窗與圖示主題的功能,
但不能兩者都設定.
cmdtool
及 shelltool
cmdtool
及 shelltool
會設定 $TERM=sun-cmd
並採用下列的溢位序列:
ESC]lstringESC\ 設定視窗主題為 string
ESC]LstringESC\ 設定圖示主題為 string
dtterm
dtterm
會設定 $TERM=dtterm
, 似乎是可以識別出標準的
xterm
溢位序列及 Sun cmdtool
的溢位序列
(在 Solaris 2.5.1, Digital Unix 4.0, HP-UX 10.20 測試過).
hpterm
會設定 $TERM=hpterm
並採用下列的溢位序列:
ESC&f0klengthDstring 設定視窗主題為長 length 的 string
ESC&f-1klengthDstring 設定圖示主題為長 length 的 string
一個簡單的 C 語言的程式用來計算長度並回應字串, 如下:
#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);
}
我們也可以寫一個小的命令腳本程序, 用 ${#string}
(zsh
, bash
, ksh
) 或 ${%string}
(tcsh)
的延伸功能來找出字串長度. 以下可用在 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