[BRLTTY] Linux console hacking (was: Re: Footsteps towards better accessibility in Linux)
Nicolas Pitre
nico at fluxnic.net
Fri Apr 10 03:12:06 UTC 2026
On Thu, 9 Apr 2026, Aura Kelloniemi wrote:
> Hi,
>
> On 2026-04-09 at 01:46 +0200, Samuel Thibault <samuel.thibault at ens-lyon.org> wrote:
> > There is one missing thing here: unicode include combining codepoints,
> > which mix with the base codepoint within the same cell. That's
> > required for quite a few scripts. In theory there is no limit in the
> > number of combining letters used, but usually there aren't that many
> > combining codepoints for cell. Some reference says “The longest known
> > natural-language grapheme cluster is the Tibetan Hakṣhmalawarayaṁ at
> > 1 base plus 8 combiners”
>
> Yes, I also thought about this and forgot to bring it up.
>
> Even if kmscon does not support combining codepoints, I think the base
> protocol should support them.
On the kmscon side, libtsm already provides the complete grapheme
cluster via its draw callback. The pango font backend renders them
correctly; unifont and freetype currently don't, but the data flows
through regardless.
> The protocol needs to differentiate between codepoints and grapheme clusters
> and it should transfer the width of the grapheme cluster in some way.
Done — the protocol now handles grapheme clusters with a three-layer
approach (single codepoint, continuation cells, overflow area) and the
cell width field covers the whole cluster. See the updated design
document attached.
There have been quite a few changes since the last version. Among
others, the protocol is now called VTX (VT Export) since it is meant to
be implementable by any terminal emulator, not just kmscon. If anyone
has a better name suggestion, feel free.
Attached:
- vtx-protocol.md — the design document
- vtx_protocol.h — the C header defining all protocol structures, types,
and constants
Nicolas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: vtx-protocol.md
Type: text/markdown
Size: 53418 bytes
Desc:
URL: <http://brltty.app/pipermail/brltty/attachments/20260409/23e2f232/attachment-0001.md>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: vtx_protocol.h
URL: <http://brltty.app/pipermail/brltty/attachments/20260409/23e2f232/attachment-0001.h>
More information about the BRLTTY
mailing list