Make a branch to make krunner Good Enough For Aaron™.
[kdebase/uwolfer.git] / apps / konsole / user-doc / historic / README.unicode
blobbf8134674e1b64bfae4d9c4abc8cab2f44296d05
1 [README.unicode]
3 Konsole supports unicode, which means one can display up
4 to 64K different glyphs at the same time on one screen.
6 The enhancement is pretty complete and the main current
7 advantage should be more a smooth operation of konsole
8 within localed environments. At least the european locales
9 should be enabled to use their local scripts when running
10 konsole.
12 To fully install it, please get a complete set of unicode
13 enhanced fixed fonts from
15    <http://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html>.
17 These fonts are expected to be distributed with the next X11
18 release. Konsole distributes one of this fonts for your
19 convenience. Please add the other fonts to your local
20 installation to make best use of the enhancement.
22 Though Asiatic supplements are also available from that
23 site, it is not clear at the time of writing, whether
24 the current implementation copes well with these scripts.
25 Since i like to support these scripts, too, any feed back
26 is appreachiated.
28 Also, a new linux console font has been converted for X11.
29 This font has iso10646-1 encoding and the usual vga glyphs.
32 * A more precise anatomy of unicode support within konsole
34 The internal character representation is uniquely 16 bit unicode.
36 All in- and output connections of konsole (beside the mouse)
37 are filtered through three different codecs (corresponding to
38 2 different codes):
40  1) Font Code - The renderer converts from unicode to the code of
41     the font to the degree that code is supported within Qt.
42     Non-iso10646 (unicode) codes are considered to be VT100
43     enhanced, meaning that 0x00 .. 0x1f contains the VT100
44     graphical characters.
46  2) Client Code - This is used for bytes from and to the pty.
47     Often, the clients code is identical with the locale setting.
49 Thus, unicode support mainly turns out to be a potter's wheel of
50 code conversions.
52 Beside these conversions, up to 2^16 diffent glyphs can be
53 displayed now. Though it is not possible to type each of these
54 codes, one can use utf-8 encoding on the clients side.
56 Please note that unicode support is still under development in
57 the freeware community and is not supported by terminal aware
58 applications, since ncurses does currently not provide wide
59 character operations.
61 Because utf-8 contains ascii-7 properly, one can work with utf-8
62 enabled as long as no international characters are used. Try to
63 cat 9x15.repertoire-utf8 from the test when having utf-8 encoding
64 enabled.
66 Utf-8 code is enabled and disabled by sending <ESC>%G or <ESC>%@.
67 The utf8.sh utility in the test directory does this.
69 Though utf8 properly contains ascii-7 note that the length of a
70 utf8 encoded string differs from the length of the string itself.
71 This confuses many length aware programs as soon as proper (non-
72 ascii-7 characters) are used, this may result in deviating cursor
73 positions, corruption of the utf8 encoding by newlines inserted
74 in the middle of a multibyte character, etc. This cannot be
75 handled within konsole, but requieres those applications to
76 become utf8 extended. Examples are readline, vi.
78 ---
79 TODO: Example of non-locale client code
80     = Discontining Linux console support
82 As a nice side effect, the Linux console support can be reduced
83 to a konsole configuration example. See README.linux.console.
84 ---