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 /sys/dev/syscons | |
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 'sys/dev/syscons')
-rw-r--r-- | sys/dev/syscons/scterm-teken.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/sys/dev/syscons/scterm-teken.c b/sys/dev/syscons/scterm-teken.c index 12b040e..fe8a186 100644 --- a/sys/dev/syscons/scterm-teken.c +++ b/sys/dev/syscons/scterm-teken.c @@ -50,6 +50,15 @@ __FBSDID("$FreeBSD$"); #include <teken/teken.h> +#if defined(TEKEN_XTERM) && defined(TEKEN_CONS25) +#error "xterm and cons25 are mutually exclusive." +#endif + +/* XXX: Use cons25 on i386, for compatibility with pc98. */ +#if defined(__i386__) && !defined(TEKEN_XTERM) && !defined(TEKEN_CONS25) +#define TEKEN_CONS25 +#endif + static void scteken_revattr(unsigned char, teken_attr_t *); static unsigned int scteken_attr(const teken_attr_t *); @@ -132,9 +141,9 @@ scteken_init(scr_stat *scp, void **softc, int code) #ifndef TEKEN_UTF8 teken_set_8bit(&ts->ts_teken); #endif /* !TEKEN_UTF8 */ -#ifndef TEKEN_XTERM +#ifdef TEKEN_CONS25 teken_set_cons25(&ts->ts_teken); -#endif /* !TEKEN_XTERM */ +#endif /* TEKEN_CONS25 */ tp.tp_row = scp->ysize; tp.tp_col = scp->xsize; |