delay a few things on startup, such as setting the visibility mode, which ensures...
[personal-kdebase.git] / apps / konsole / user-doc / README.fonts
blob548f02f3af4c59a6466367dd8a346f432bab24f3
1 [README.fonts]
3 Fonts need to suit the needs of X11, QT and konsole.
6 * the font has to be fixed width.
8   This requierement originate both from X11 and
9   the way QT and konsole uses it together with
10   the very idea of what a terminal emulation is
11   about.
13   Basically, a terminal emulation is to display
14   a character cell oriented screen, meaning that
15   all characters in the same column line up
16   properly under each other.
18   Though one could make this with a variable
19   width font (which are preferably used in text
20   processing) the outcome would look very poor,
21   since the glyphs would have to be placed into
22   a cell fitting the widest character in the
23   font, which is typically more than two times
24   wider than the narrowest glyph. Imagine a text
25   with  l  o  t  s     o  f     s  p  a  c  e  s
26   inserted between each character to get the idea.
28   Further, doing this with a variable width font
29   means to do some operations that slow down the
30   whole display refreshing dramatically. X11/QT
31   performs very poor when one draws characters
32   individually while additionally clearing
33   background regions instead of drawing a complete
34   string (as konsole does). If one draws a string
35   with a variable width font, it is of course 
36   typeset by X11 variable width, not longer
37   conforming to the character cell model of a
38   terminal emulation.
40   So from both perspectives, variable width fonts
41   are unsuited for terminal emulation purposes.
44 * the font has to contain some graphical characters
46   Many full screen applications make use of these
47   characters to draw boxes, scroll bars and likely
48   pseudo graphical entities.
50   Using fonts without this capabilities means to
51   break the visual apearence of these products.
53   As a minimum the following glyphs have to be
54   included within a font to become usable:
56   - 0x0b U+2518 : BOX DRAWINGS LIGHT UP AND LEFT
57   - 0x0c U+2510 : BOX DRAWINGS LIGHT DOWN AND LEFT
58   - 0x0d U+250c : BOX DRAWINGS LIGHT DOWN AND RIGHT
59   - 0x0e U+2514 : BOX DRAWINGS LIGHT UP AND RIGHT
60   - 0x0f U+253c : BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
61   - 0x12 U+2500 : BOX DRAWINGS LIGHT HORIZONTAL (scan line 5)
62   - 0x15 U+251c : BOX DRAWINGS LIGHT VERTICAL AND RIGHT
63   - 0x16 U+2524 : BOX DRAWINGS LIGHT VERTICAL AND LEFT
64   - 0x17 U+2534 : BOX DRAWINGS LIGHT UP AND HORIZONTAL
65   - 0x18 U+252c : BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
66   - 0x19 U+2502 : BOX DRAWINGS LIGHT VERTICAL
68   - 0x01 U+25c6 : BLACK DIAMOND
69   - 0x02 U+2592 : MEDIUM SHADE
70   - 0x1F U+00b7 : MIDDLE DOT
72   The following graphical glyphs are defined in
73   VT100 fonts, too, but are not used in any program
74   i know about. Codes for them have been assigned
75   in the private unicode page. See the linux kernel
76   documentation file [unicode.txt] about this assignment.
78   - 0x10 U+f800 : DEC VT GRAPHICS HORIZONTAL LINE SCAN 1
79   - 0x11 U+f801 : DEC VT GRAPHICS HORIZONTAL LINE SCAN 3
80   - 0x13 U+f803 : DEC VT GRAPHICS HORIZONTAL LINE SCAN 7
81   - 0x14 U+f804 : DEC VT GRAPHICS HORIZONTAL LINE SCAN 9
83   Also, the VT100 knows about the following glyphs,
84   though omitting them is unlikely to break anything.
86   - 0x07 U+00b0 : DEGREE SIGN
87   - 0x08 U+00b1 : PLUS-MINUS SIGN
88   - 0x1a U+2264 : LESS THAN OR EQUAL TO
89   - 0x1b U+2265 : GREATER THAN OR EQUAL TO
90   - 0x1c U+03c0 : GREEK SMALL LETTER PI
91   - 0x1d U+2260 : NOT EQUAL TO
92   - 0x1e U+00a3 : POUND SIGN
94   Additionally, digraphs are provided for some
95   of the control characters by VT100, too.
97   - 0x03 U+2409 : DIGRAPH HT
98   - 0x04 U+240c : DIGRAPH FF
99   - 0x05 U+240d : DIGRAPH CR
100   - 0x06 U+240a : DIGRAPH LF
101   - 0x09 U+240d : DIGRAPH NL
102   - 0x0a U+240b : DIGRAPH VT
104   The mapping of non-iso10646 fonts is extended by konsole
105   with the regular xterm fixed font placement of these
106   glyphs to 0x00-0x1f.
109 * Iso10646 fonts needs to have a fall back character
110   to be properly assigned.
112   Use the "DEFAULT_CHAR" property with bdf fonts
113   to do so. Other font representations provide
114   likely means. The unicode assignment is U+fffd.
116   If such a character isn't defined, X11 might
117   choose to void the character completely, causing
118   inconsistent appearence when refreshing the screen.
120   One may choose the space glyph to hide the flaw
121   or a box like one to exhibit it.