diff options
author | ed <ed@FreeBSD.org> | 2009-11-13 05:54:55 +0000 |
---|---|---|
committer | ed <ed@FreeBSD.org> | 2009-11-13 05:54:55 +0000 |
commit | f49c0a7c600c8c62878936032e4c44846070a9b6 (patch) | |
tree | 6e11d518cb9008f7a76b1c206c21c622e2874f34 /usr.sbin | |
parent | 6be882dd7a15b655a994c3205f67ef9393bd866e (diff) | |
download | FreeBSD-src-f49c0a7c600c8c62878936032e4c44846070a9b6.zip FreeBSD-src-f49c0a7c600c8c62878936032e4c44846070a9b6.tar.gz |
Switch the default terminal emulation style to xterm for most platforms.
Right now syscons(4) uses a cons25-style terminal emulator. The
disadvantages of that are:
- Little compatibility with embedded devices with serial interfaces.
- Bad bandwidth efficiency, mainly because of the lack of scrolling
regions.
- A very hard transition path to support for modern character sets like
UTF-8.
Our terminal emulation library, libteken, has been supporting
xterm-style terminal emulation for months, so flip the switch and make
everyone use an xterm-style console driver.
I still have to enable this on i386. Right now pc98 and i386 share the
same /etc/ttys file. I'm not going to switch pc98, because it uses its
own Kanji-capable cons25 emulator.
IMPORTANT: What to do if things go wrong (i.e. graphical artifacts):
- Run the application inside script(1), try to reduce the problem and
send me the log file.
- In the mean time, you can run `vidcontrol -T cons25' and `export
TERM=cons25' so you can run applications the same way you did before.
You can also build your kernel with `options TEKEN_CONS25' to make all
virtual terminals use the cons25 emulator by default.
Discussed on: current@
Diffstat (limited to 'usr.sbin')
-rw-r--r-- | usr.sbin/sade/termcap.c | 4 | ||||
-rw-r--r-- | usr.sbin/sysinstall/termcap.c | 7 |
2 files changed, 11 insertions, 0 deletions
diff --git a/usr.sbin/sade/termcap.c b/usr.sbin/sade/termcap.c index 3e80a41..d5f4892 100644 --- a/usr.sbin/sade/termcap.c +++ b/usr.sbin/sade/termcap.c @@ -83,7 +83,11 @@ set_termcap(void) #else if (ColorDisplay) { if (!term) { +#ifdef __i386__ if (setenv("TERM", "cons25", 1) < 0) +#else + if (setenv("TERM", "xterm", 1) < 0) +#endif return -1; } } diff --git a/usr.sbin/sysinstall/termcap.c b/usr.sbin/sysinstall/termcap.c index 0df0a77..679ef66 100644 --- a/usr.sbin/sysinstall/termcap.c +++ b/usr.sbin/sysinstall/termcap.c @@ -125,10 +125,17 @@ set_termcap(void) #else if (ColorDisplay) { if (!term) { +#ifdef __i386__ if (setenv("TERM", "cons25", 1) < 0) return -1; if (setenv("TERMCAP", termcap_cons25, 1) < 0) return -1; +#else + if (setenv("TERM", "xterm", 1) < 0) + return -1; + if (setenv("TERMCAP", termcap_xterm, 1) < 0) + return -1; +#endif } } else { |