| @@ -4,35 +4,84 @@ $Id$ | |||||
| many terminal emulators and tried to summarise which combinations | many terminal emulators and tried to summarise which combinations | ||||
| worked properly and which ones did not. | worked properly and which ones did not. | ||||
| o In an XTerm terminal, the following shell commands output all possible | |||||
| foreground/background combinations: | |||||
| o I tested the following terminals: | |||||
| for fgpre in "" '\e[0;1m'; do for fg in 0 4 2 6 1 5 3 7; do | |||||
| for bgpre in 4 10; do | |||||
| echo -ne "$fgpre"'\e[3'$fg'm' | |||||
| for bg in 0 4 2 6 1 5 3 7; do echo -ne '\e['$bgpre$bg'm# '; done | |||||
| echo -ne '\e[0;0m ' | |||||
| name $TERM $COLORTERM | |||||
| ------------------------------------------ | |||||
| Linux console linux | |||||
| pterm xterm | |||||
| aterm xterm rxvt-xpm | |||||
| wterm xterm wterm-xpm | |||||
| Eterm xterm Eterm | |||||
| xterm xterm | |||||
| gnome-terminal xterm | |||||
| konsole xterm | |||||
| mlterm mlterm | |||||
| uxterm xterm | |||||
| o In most terminals, \e[3xm and \[4xm respectively set the foreground | |||||
| and background colours. x is an colour between 0 and 7 or the value | |||||
| 9 for default value. | |||||
| \e[0m sets everything to normal, \e[1m sets bold, \e[5m sets blink | |||||
| and \e[7m sets inverse video. | |||||
| In ncurses, only 64 colour pairs are created, and A_BOLD (\e[1m) and | |||||
| A_BLINK (\e[5m) are used for foreground/background colour highlighting, | |||||
| hence creating 256 possible colour pairs. | |||||
| Different tests of blue on yellow: | |||||
| for invert in '' '\e[7m'; do | |||||
| for blink in '' '\e[5m'; do | |||||
| for bold in '' '\e[1m'; do | |||||
| echo -ne "$bold$blink$invert"'\e[34m\e[43m'hop'\e[0m ' | |||||
| echo "($bold$blink$invert)" | |||||
| done | |||||
| done | done | ||||
| echo '' | |||||
| done; echo ''; done | |||||
| done | |||||
| Successfully works on: | |||||
| + Linux console | |||||
| + pterm | |||||
| + Eterm | |||||
| + aterm, wterm, rxvt | |||||
| Successfully tested | |||||
| Almost works on: | |||||
| + xterm (bright bg works for blue, but not for red or yellow) | |||||
| o ncurses: | |||||
| Fails on: | |||||
| + mlterm (no bright colours, neither fg nor bg) | |||||
| + gnome-terminal (no bright bg) | |||||
| + konsole (no bright bg, $blink really blinks) | |||||
| * bright combinations work in the following terminals: | |||||
| o In an XTerm-compatible terminal, \e[9xm sets bright foreground and | |||||
| \e[10xm bright background colours. Unfortunately all terminals don't | |||||
| support these escape sequences. Here is a testcase: | |||||
| - Linux console (TERM=linux) | |||||
| - pterm (TERM=xterm) | |||||
| for fgpre in 3 9; do for fg in 0 4 2 6 1 5 3 7; do | |||||
| for bgpre in 4 10; do | |||||
| echo -ne '\e['$fgpre$fg'm' | |||||
| for bg in 0 4 2 6 1 5 3 7; do echo -ne '\e['$bgpre$bg'm# '; done | |||||
| echo -ne '\e[0m ' | |||||
| done | |||||
| echo '' | |||||
| done; echo ''; done | |||||
| * bright text on bright background is rendered as bright text on | |||||
| normal background in the following terminals: | |||||
| Successfully tested on: | |||||
| + gnome-terminal | |||||
| + konsole | |||||
| + xterm | |||||
| + pterm | |||||
| - xterm (TERM=xterm) | |||||
| - gnome-terminal (TERM=xterm) | |||||
| Failed (\e[9x and \e[10x don't work) on: | |||||
| + Eterm | |||||
| + aterm, wterm, rxvt | |||||
| + mlterm | |||||
| + linux | |||||
| o S-Lang: | o S-Lang: | ||||
| o MS-DOS: all bright colours, bright backgrounds, and bright combinations | o MS-DOS: all bright colours, bright backgrounds, and bright combinations | ||||
| work using <conio.h>. | |||||
| work using <conio.h>. No need to kludge anything. | |||||