Warning, /utilities/konsole/doc/user/README.fonts is written in an unsupported language. File is not indexed.
0001 [README.fonts] 0002 0003 Fonts need to suit the needs of X11, QT and konsole. 0004 0005 0006 * the font has to be fixed width. 0007 0008 This requirement originate both from X11 and 0009 the way QT and konsole uses it together with 0010 the very idea of what a terminal emulation is 0011 about. 0012 0013 Basically, a terminal emulation is to display 0014 a character cell oriented screen, meaning that 0015 all characters in the same column line up 0016 properly under each other. 0017 0018 Though one could make this with a variable 0019 width font (which are preferably used in text 0020 processing) the outcome would look very poor, 0021 since the glyphs would have to be placed into 0022 a cell fitting the widest character in the 0023 font, which is typically more than two times 0024 wider than the narrowest glyph. Imagine a text 0025 with l o t s o f s p a c e s 0026 inserted between each character to get the idea. 0027 0028 Further, doing this with a variable width font 0029 means to do some operations that slow down the 0030 whole display refreshing dramatically. X11/QT 0031 performs very poor when one draws characters 0032 individually while additionally clearing 0033 background regions instead of drawing a complete 0034 string (as konsole does). If one draws a string 0035 with a variable width font, it is of course 0036 typeset by X11 variable width, not longer 0037 conforming to the character cell model of a 0038 terminal emulation. 0039 0040 So from both perspectives, variable width fonts 0041 are unsuited for terminal emulation purposes. 0042 0043 0044 * the font has to contain some graphical characters 0045 0046 Many full screen applications make use of these 0047 characters to draw boxes, scroll bars and likely 0048 pseudo graphical entities. 0049 0050 Using fonts without this capabilities means to 0051 break the visual appearance of these products. 0052 0053 As a minimum the following glyphs have to be 0054 included within a font to become usable: 0055 0056 - 0x0b U+2518 : BOX DRAWINGS LIGHT UP AND LEFT 0057 - 0x0c U+2510 : BOX DRAWINGS LIGHT DOWN AND LEFT 0058 - 0x0d U+250c : BOX DRAWINGS LIGHT DOWN AND RIGHT 0059 - 0x0e U+2514 : BOX DRAWINGS LIGHT UP AND RIGHT 0060 - 0x0f U+253c : BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL 0061 - 0x10 U+23ba : HORIZONTAL SCAN LINE-1 0062 - 0x11 U+23bb : HORIZONTAL SCAN LINE-3 0063 - 0x12 U+2500 : BOX DRAWINGS LIGHT HORIZONTAL (scan line 5) 0064 - 0x13 U+23bc : HORIZONTAL SCAN LINE-7 0065 - 0x14 U+23bd : HORIZONTAL SCAN LINE-9 0066 - 0x15 U+251c : BOX DRAWINGS LIGHT VERTICAL AND RIGHT 0067 - 0x16 U+2524 : BOX DRAWINGS LIGHT VERTICAL AND LEFT 0068 - 0x17 U+2534 : BOX DRAWINGS LIGHT UP AND HORIZONTAL 0069 - 0x18 U+252c : BOX DRAWINGS LIGHT DOWN AND HORIZONTAL 0070 - 0x19 U+2502 : BOX DRAWINGS LIGHT VERTICAL 0071 0072 - 0x01 U+25c6 : BLACK DIAMOND 0073 - 0x02 U+2592 : MEDIUM SHADE 0074 - 0x1F U+00b7 : MIDDLE DOT 0075 0076 Also, the VT100 knows about the following glyphs, 0077 though omitting them is unlikely to break anything. 0078 0079 - 0x07 U+00b0 : DEGREE SIGN 0080 - 0x08 U+00b1 : PLUS-MINUS SIGN 0081 - 0x1a U+2264 : LESS THAN OR EQUAL TO 0082 - 0x1b U+2265 : GREATER THAN OR EQUAL TO 0083 - 0x1c U+03c0 : GREEK SMALL LETTER PI 0084 - 0x1d U+2260 : NOT EQUAL TO 0085 - 0x1e U+00a3 : POUND SIGN 0086 0087 Additionally, digraphs are provided for some 0088 of the control characters by VT100, too. 0089 0090 - 0x03 U+2409 : DIGRAPH HT 0091 - 0x04 U+240c : DIGRAPH FF 0092 - 0x05 U+240d : DIGRAPH CR 0093 - 0x06 U+240a : DIGRAPH LF 0094 - 0x09 U+240d : DIGRAPH NL 0095 - 0x0a U+240b : DIGRAPH VT 0096 0097 The mapping of non-iso10646 fonts is extended by konsole 0098 with the regular xterm fixed font placement of these 0099 glyphs to 0x00-0x1f. 0100 0101 0102 * Iso10646 fonts needs to have a fall back character 0103 to be properly assigned. 0104 0105 Use the "DEFAULT_CHAR" property with bdf fonts 0106 to do so. Other font representations provide 0107 likely means. The unicode assignment is U+fffd. 0108 0109 If such a character isn't defined, X11 might 0110 choose to void the character completely, causing 0111 inconsistent appearance when refreshing the screen. 0112 0113 One may choose the space glyph to hide the flaw 0114 or a box like one to exhibit it.