2 - You could say that VTE is something of a research project of mine, based on
3 the simple question: "if programs can use a termcap file (through either
4 libtermcap or curses or ncurses) to determine how to drive a terminal, why
5 can't a terminal emulator use a termcap file to determine how to behave?"
7 * What does VTE include?
8 - VTE includes a library (libvte) which implements such a terminal emulator
9 widget for GTK+ 2.0, and a sample application (vte) which wraps that widget
10 in a GTK window. Because I'm more concerned with whether or not it works,
11 all settings are hard-coded to whatever I needed to test the last time I
12 touched it. If you actually want to use the widget to get work done, you
13 should probably be using profterm.
16 - The VTE library inserts terminal capability strings into a trie, and then
17 uses it to determine if data received from a pseudo-terminal is a control
18 sequence or just random data. The sample program "interpret" illustrates
19 more or less what the widget sees after it filters incoming data.
22 - Accessibility isn't completed yet.
23 - Mouse hilite tracking isn't implemented yet.
24 - Extending the selection using shift+click pays attention to whether or not
25 the existing selection was done word-at-a-time or line-at-a-time, but
27 - Most control sequences are recognized, but many aren't implemented. There
28 are enough to run ls, vim, less, emacs and mutt, but more need to be
29 implemented (ff, fs, i1, i3, is, iP, LF, LO, MC, mh, ML, mm, mo, nw, pf,
30 pk, pl, pf, po, pO, ps, px, r1, r2, r3, RA, RF, rp, rs, RX, SA, SX, wi,
31 several more from the XTerm set).
32 - Bold doesn't work right if the default foreground color isn't gray. Need
33 to move to 20-color palette to fix this right.
34 - I'm not sure the widget implementation itself is correct. There are many
35 changes in going from GTK+ 1.2 to 2.0, and examples of the proper way to do
36 things is currently scarce, so some of it's guesswork.
37 - An actual property interface needs to be retrofitted over the various options
38 which are currently hard-coded at startup-time.
41 - Relative cursor motion is weird. When the character to the right of the
42 cursor is a 3-byte UTF-8 sequence for a character which occupies two
43 columns on the screen, three things may happen when the application sends
44 the "cursor left" control sequence:
45 * the cursor moves two columns (one character) to the left
46 This eliminates the possibility of moving the cursor into the middle of
47 a multi-column character.
48 * the cursor moves one column (one half-character) to the left
49 This makes determining where the cursor is easier, but requires the
50 application to emit a control sequence more than once for multi-column
52 * the cursor moves one "byte" to the left
53 This happens to work for a few locales, and is otherwise just broken.
54 Currently VTE follows the second convention. More on this topic:
55 http://czyborra.com/unicode/terminals.html
56 http://mail.nl.linux.org/linux-utf8/1999-10/msg00014.html
57 http://www.debian.org/doc/manuals/intro-i18n/ch-output.en.html