[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