| @@ -4,35 +4,84 @@ $Id$ | |||
| many terminal emulators and tried to summarise which combinations | |||
| 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 | |||
| 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 MS-DOS: all bright colours, bright backgrounds, and bright combinations | |||
| work using <conio.h>. | |||
| work using <conio.h>. No need to kludge anything. | |||