~ubuntu-branches/ubuntu/lucid/kdebase/lucid

« back to all changes in this revision

Viewing changes to konsole/README.unicode

  • Committer: Bazaar Package Importer
  • Author(s): Jonathan Riddell
  • Date: 2008-05-27 12:09:48 UTC
  • mfrom: (1.1.13 upstream)
  • Revision ID: james.westby@ubuntu.com-20080527120948-dottsyd5rcwhzd36
Tags: 4:4.0.80-1ubuntu1
* Merge with Debian
 - remove 97_fix_target_link_libraries.diff
 - Add replaces/conflicts on -kde4 packages

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
[README.unicode]
2
 
 
3
 
Konsole supports unicode, which means one can display up
4
 
to 64K different glyphs at the same time on one screen.
5
 
 
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.
11
 
 
12
 
To fully install it, please get a complete set of unicode
13
 
enhanced fixed fonts from
14
 
 
15
 
   <http://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html>.
16
 
 
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.
21
 
 
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.
27
 
 
28
 
Also, a new linux console font has been converted for X11.
29
 
This font has iso10646-1 encoding and the usual vga glyphs.
30
 
 
31
 
 
32
 
* A more precise anatomy of unicode support within konsole
33
 
 
34
 
The internal character representation is uniquely 16 bit unicode.
35
 
 
36
 
All in- and output connections of konsole (beside the mouse)
37
 
are filtered through three different codecs (corresponding to
38
 
2 different codes):
39
 
 
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.
45
 
 
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.
48
 
 
49
 
Thus, unicode support mainly turns out to be a potter's wheel of
50
 
code conversions.
51
 
 
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.
55
 
 
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.
60
 
 
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.
65
 
 
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.
68
 
 
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.
77
 
 
78
 
---
79
 
TODO: Example of non-locale client code
80
 
    = Discontining Linux console support
81
 
 
82
 
As a nice side effect, the Linux console support can be reduced
83
 
to a konsole configuration example. See README.linux.console.
84
 
---