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 (6 bytes).
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 supports full 24-bit RGB color.
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(), unicode_width: unicode_width() }
@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 (6 bytes).
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 supports full 24-bit RGB color.