Comment 20 for bug 958142

Revision history for this message
In , Eevee-kdebugs (eevee-kdebugs) wrote :

I'm /reasonably/ sure this has nothing to do with Unicode character width, and everything to do with fonts. (Note that the character in the original screenshot doesn't take up two cells; it takes about one and a half.)

I think the problem is that Konsole is rendering each row as a regular line of text.

The original reporter's terminal font apparently doesn't have an airplane glyph. So the font engine searches for a font that does, and finds one, whatever it may be. But this new font probably isn't monospace, so the glyph isn't the same width as the rest of the characters in the terminal. Konsole blindly prints it anyway and places the next character immediately following it, even though this is now completely misaligned from the grid.

The cursor is apparently rendered separately (makes sense, since it's not a character), so it gets drawn in the appropriate grid cell.

What Konsole /should/ be doing is either shrinking the substituted character to fit in a cell, or forcibly rendering every single character at its correct position (even if this makes some overlap).

This has been a bug for as long as I've used KDE. It makes using non-ASCII characters for any reason basically impossible — my prompt, irssi, vim, roguelikes, anything that uses interesting characters causes the cursor and columns to become misaligned. I've had to switch to a libvte-based terminal, which correctly handles this by overlapping characters when necessary.