The Kitty text sizing protocol (OSC 66) is not implemented — no reference in the source. ucs-detect reports Kitty Text Sizing? No.
What it is. OSC 66 ; <key=value pairs> ; <text> ST draws a run of text at a multiple of the cell size — s=2 for double size, with w= (width in cells), n=/d= for fractional scaling, and v=/h= for vertical and horizontal alignment within the enlarged area. Used for headings and banners in TUIs, and it is the modern successor to DECDWL/DECDHL.
This is the largest of the OSC gaps. Unlike the others in this batch, it is not a query-and-reply — it changes what the renderer draws. It needs:
- cell attributes (or a per-line side table) carrying scale and alignment
- the renderer honouring them, which means a text run whose glyphs are laid out at a multiple of the cell metrics
- reflow, selection, and cursor positioning all agreeing about how many cells a scaled run occupies
Iciclecreek.Avalonia.Terminal already has related machinery — RenderDoubleWidthLine handles DECDWL/DECDHL with a transform and a clip — so there is a precedent for the drawing half, but that path is per-line and this is per-run.
Suggestion. Worth scoping before starting, and worth being explicit that partial support is not obviously better than none: an application that sees the capability advertised and gets unscaled text has a broken heading, where one that sees nothing falls back to something that works. That is the same argument made in #46 about DECSLRM.
Lowest priority of this batch unless there is a specific application driving it.
The Kitty text sizing protocol (
OSC 66) is not implemented — no reference in the source.ucs-detectreportsKitty Text Sizing? No.What it is.
OSC 66 ; <key=value pairs> ; <text> STdraws a run of text at a multiple of the cell size —s=2for double size, withw=(width in cells),n=/d=for fractional scaling, andv=/h=for vertical and horizontal alignment within the enlarged area. Used for headings and banners in TUIs, and it is the modern successor to DECDWL/DECDHL.This is the largest of the OSC gaps. Unlike the others in this batch, it is not a query-and-reply — it changes what the renderer draws. It needs:
Iciclecreek.Avalonia.Terminalalready has related machinery —RenderDoubleWidthLinehandles DECDWL/DECDHL with a transform and a clip — so there is a precedent for the drawing half, but that path is per-line and this is per-run.Suggestion. Worth scoping before starting, and worth being explicit that partial support is not obviously better than none: an application that sees the capability advertised and gets unscaled text has a broken heading, where one that sees nothing falls back to something that works. That is the same argument made in #46 about DECSLRM.
Lowest priority of this batch unless there is a specific application driving it.