Frontend capabilities reported during the ready handshake.
When a frontend starts, it sends a ready event with optional capability
fields. The BEAM uses these to adapt rendering strategy: skipping image
commands on terminals without image support, using native floating windows
on GUIs, using native floating windows, etc.
Frontends that send the short 5-byte ready format get default/0 caps
(TUI, RGB, wcwidth, no images, emulated floats, monospace).
Summary
Functions
Returns the default capabilities (TUI with full RGB, monospace).
Decodes capability fields from the binary payload (7 bytes with semantic_ui; 6- and 5-byte legacy forms decode with semantic_ui false).
Returns true if the frontend is a native GUI (not a terminal).
Returns true if the frontend supports inline images (kitty, sixel, or native).
Returns true if the frontend supports native floating windows (not emulated overlays).
Returns true if the frontend reports proportional text rendering.
Returns true if the frontend supports full 24-bit RGB color.
Returns true if the frontend can consume semantic render-model protocol commands.
Returns the safe production width oracle, monospace for now.
Returns a measured oracle only when the caller passes an owned measurement cache.
Types
@type color_depth() :: :mono | :color_256 | :rgb
@type float_support() :: :emulated | :native
@type frontend_type() :: :tui | :native_gui | :web
@type image_support() :: :none | :kitty | :sixel | :native
@type t() :: %MingaEditor.Frontend.Capabilities{ color_depth: color_depth(), float_support: float_support(), frontend_type: frontend_type(), image_support: image_support(), semantic_ui: boolean(), text_rendering: text_rendering(), unicode_width: unicode_width() }
@type text_rendering() :: :monospace | :proportional
@type unicode_width() :: :wcwidth | :unicode_15
Functions
@spec default() :: t()
Returns the default capabilities (TUI with full RGB, monospace).
Decodes capability fields from the binary payload (7 bytes with semantic_ui; 6- and 5-byte legacy forms decode with semantic_ui false).
Returns true if the frontend is a native GUI (not a terminal).
Returns true if the frontend supports inline images (kitty, sixel, or native).
Returns true if the frontend supports native floating windows (not emulated overlays).
Returns true if the frontend reports proportional text rendering.
Returns true if the frontend supports full 24-bit RGB color.
Returns true if the frontend can consume semantic render-model protocol commands.
@spec width_oracle(t()) :: Minga.Core.WidthOracle.t()
Returns the safe production width oracle, monospace for now.
@spec width_oracle(t(), map() | nil) :: Minga.Core.WidthOracle.t()
Returns a measured oracle only when the caller passes an owned measurement cache.