Skip to content

Kitty text sizing protocol (OSC 66) not implemented #59

Description

@tomlm

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

enhancementNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions