mirror of
https://github.com/KDE/konsole.git
synced 2026-01-29 01:11:39 -05:00
Four characters in DEC Special Graphics (Line Drawing)[⁽¹⁾] charset were translated by Konsole into codepoints in private use area. This patch uses the same code points that xterm uses. | Index | Previously | Should be | | ------ | ---------- | ----------| | `0x6F` | `U+F800` | `U+23BA` | | `0x70` | `U+F801` | `U+23BB` | | `0x72` | `U+F803` | `U+23BC` | | `0x73` | `U+F804` | `U+23BD` | The old behavior used the same mapping used by Linux consoles, as stated in `unicode.txt`[⁽²⁾] in Linux's documents. This has been changed long ago when Unicode 3.2.0 introduced the codepoints `U+23BA`, `U+23BB`, `U+23BC`, `U+23BD`, as the following excerpt of `unicode.txt` says: ``` In addition, the following characters not present in Unicode 1.1.4 have been defined; these are used by the DEC VT graphics map. [v1.2] THIS USE IS OBSOLETE AND SHOULD NO LONGER BE USED; PLEASE SEE BELOW. ====== ====================================== U+F800 DEC VT GRAPHICS HORIZONTAL LINE SCAN 1 U+F801 DEC VT GRAPHICS HORIZONTAL LINE SCAN 3 U+F803 DEC VT GRAPHICS HORIZONTAL LINE SCAN 7 U+F804 DEC VT GRAPHICS HORIZONTAL LINE SCAN 9 ====== ====================================== [...] [v1.3]: These characters have been officially added to Unicode 3.2.0; they are added at U+23BA, U+23BB, U+23BC, U+23BD. Linux now uses the new values. ``` [⁽¹⁾]: https://vt100.net/docs/vt220-rm/chapter2.html#T2-4 [⁽²⁾]: https://raw.githubusercontent.com/torvalds/linux/5bfc75d92efd494db37f5c4c173d3639d4772966/Documentation/admin-guide/unicode.rst
115 lines
3.8 KiB
Plaintext
115 lines
3.8 KiB
Plaintext
[README.fonts]
|
|
|
|
Fonts need to suit the needs of X11, QT and konsole.
|
|
|
|
|
|
* the font has to be fixed width.
|
|
|
|
This requirement originate both from X11 and
|
|
the way QT and konsole uses it together with
|
|
the very idea of what a terminal emulation is
|
|
about.
|
|
|
|
Basically, a terminal emulation is to display
|
|
a character cell oriented screen, meaning that
|
|
all characters in the same column line up
|
|
properly under each other.
|
|
|
|
Though one could make this with a variable
|
|
width font (which are preferably used in text
|
|
processing) the outcome would look very poor,
|
|
since the glyphs would have to be placed into
|
|
a cell fitting the widest character in the
|
|
font, which is typically more than two times
|
|
wider than the narrowest glyph. Imagine a text
|
|
with l o t s o f s p a c e s
|
|
inserted between each character to get the idea.
|
|
|
|
Further, doing this with a variable width font
|
|
means to do some operations that slow down the
|
|
whole display refreshing dramatically. X11/QT
|
|
performs very poor when one draws characters
|
|
individually while additionally clearing
|
|
background regions instead of drawing a complete
|
|
string (as konsole does). If one draws a string
|
|
with a variable width font, it is of course
|
|
typeset by X11 variable width, not longer
|
|
conforming to the character cell model of a
|
|
terminal emulation.
|
|
|
|
So from both perspectives, variable width fonts
|
|
are unsuited for terminal emulation purposes.
|
|
|
|
|
|
* the font has to contain some graphical characters
|
|
|
|
Many full screen applications make use of these
|
|
characters to draw boxes, scroll bars and likely
|
|
pseudo graphical entities.
|
|
|
|
Using fonts without this capabilities means to
|
|
break the visual appearance of these products.
|
|
|
|
As a minimum the following glyphs have to be
|
|
included within a font to become usable:
|
|
|
|
- 0x0b U+2518 : BOX DRAWINGS LIGHT UP AND LEFT
|
|
- 0x0c U+2510 : BOX DRAWINGS LIGHT DOWN AND LEFT
|
|
- 0x0d U+250c : BOX DRAWINGS LIGHT DOWN AND RIGHT
|
|
- 0x0e U+2514 : BOX DRAWINGS LIGHT UP AND RIGHT
|
|
- 0x0f U+253c : BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
|
- 0x10 U+23ba : HORIZONTAL SCAN LINE-1
|
|
- 0x11 U+23bb : HORIZONTAL SCAN LINE-3
|
|
- 0x12 U+2500 : BOX DRAWINGS LIGHT HORIZONTAL (scan line 5)
|
|
- 0x13 U+23bc : HORIZONTAL SCAN LINE-7
|
|
- 0x14 U+23bd : HORIZONTAL SCAN LINE-9
|
|
- 0x15 U+251c : BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
|
- 0x16 U+2524 : BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
|
- 0x17 U+2534 : BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
|
- 0x18 U+252c : BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
|
- 0x19 U+2502 : BOX DRAWINGS LIGHT VERTICAL
|
|
|
|
- 0x01 U+25c6 : BLACK DIAMOND
|
|
- 0x02 U+2592 : MEDIUM SHADE
|
|
- 0x1F U+00b7 : MIDDLE DOT
|
|
|
|
Also, the VT100 knows about the following glyphs,
|
|
though omitting them is unlikely to break anything.
|
|
|
|
- 0x07 U+00b0 : DEGREE SIGN
|
|
- 0x08 U+00b1 : PLUS-MINUS SIGN
|
|
- 0x1a U+2264 : LESS THAN OR EQUAL TO
|
|
- 0x1b U+2265 : GREATER THAN OR EQUAL TO
|
|
- 0x1c U+03c0 : GREEK SMALL LETTER PI
|
|
- 0x1d U+2260 : NOT EQUAL TO
|
|
- 0x1e U+00a3 : POUND SIGN
|
|
|
|
Additionally, digraphs are provided for some
|
|
of the control characters by VT100, too.
|
|
|
|
- 0x03 U+2409 : DIGRAPH HT
|
|
- 0x04 U+240c : DIGRAPH FF
|
|
- 0x05 U+240d : DIGRAPH CR
|
|
- 0x06 U+240a : DIGRAPH LF
|
|
- 0x09 U+240d : DIGRAPH NL
|
|
- 0x0a U+240b : DIGRAPH VT
|
|
|
|
The mapping of non-iso10646 fonts is extended by konsole
|
|
with the regular xterm fixed font placement of these
|
|
glyphs to 0x00-0x1f.
|
|
|
|
|
|
* Iso10646 fonts needs to have a fall back character
|
|
to be properly assigned.
|
|
|
|
Use the "DEFAULT_CHAR" property with bdf fonts
|
|
to do so. Other font representations provide
|
|
likely means. The unicode assignment is U+fffd.
|
|
|
|
If such a character isn't defined, X11 might
|
|
choose to void the character completely, causing
|
|
inconsistent appearance when refreshing the screen.
|
|
|
|
One may choose the space glyph to hide the flaw
|
|
or a box like one to exhibit it.
|