pub struct Capabilities {
pub truecolor: bool,
pub sixel: bool,
pub iterm2: bool,
pub kitty_graphics: bool,
pub kitty_keyboard: bool,
pub sync_output: bool,
pub blitters: BlitterSupport,
}crossterm only.Expand description
Runtime terminal capability probe (issue #264): read-only Capabilities
snapshot plus the Blitter ladder it drives. Diagnostics-only — image
rendering routes through the ladder automatically.
Read-only snapshot of negotiated terminal capabilities, populated once at
session enter via DA1/DA2/XTGETTCAP.
App code must not be required to branch on this — it exists for
diagnostics and to drive the automatic blitter ladder (see
Capabilities::best_blitter). On a headless backend (TestBackend / piped
stdout) or when the probe gets no reply, every field falls back to a
conservative default.
Available since 0.21.0.
§Example
let caps = ui.capabilities();
if caps.sixel {
// Diagnostics only — image rendering already routes through the ladder.
}Fields§
§truecolor: bool24-bit color confirmed (XTGETTCAP Tc/RGB or COLORTERM).
sixel: boolSixel graphics confirmed (DA1 attribute 4).
iterm2: booliTerm2 OSC 1337 inline-image protocol confirmed (env identity for iTerm2 / WezTerm / Tabby / mintty; issue #265).
kitty_graphics: boolKitty graphics protocol confirmed (DA2 terminal-ID heuristic).
kitty_keyboard: boolKitty keyboard protocol confirmed.
sync_output: boolSynchronized output (DECSET 2026) confirmed.
blitters: BlitterSupportSet of cell-art blitters the terminal can drive.
Implementations§
Source§impl Capabilities
impl Capabilities
Sourcepub fn best_blitter(&self) -> Blitter
pub fn best_blitter(&self) -> Blitter
Resolve the best available image blitter for this terminal.
Returns the first supported rung of the ladder
(Kitty > Sixel > iTerm2 > Sextant > HalfBlock). This is total: it always
returns a Blitter, falling through to Blitter::HalfBlock which
every terminal supports.
§Example
let _ = ui.capabilities().best_blitter();Trait Implementations§
Source§impl Clone for Capabilities
impl Clone for Capabilities
Source§fn clone(&self) -> Capabilities
fn clone(&self) -> Capabilities
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for Capabilities
Source§impl Debug for Capabilities
impl Debug for Capabilities
Source§impl Default for Capabilities
impl Default for Capabilities
Source§fn default() -> Capabilities
fn default() -> Capabilities
impl Eq for Capabilities
Source§impl PartialEq for Capabilities
impl PartialEq for Capabilities
Source§fn eq(&self, other: &Capabilities) -> bool
fn eq(&self, other: &Capabilities) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for Capabilities
Auto Trait Implementations§
impl Freeze for Capabilities
impl RefUnwindSafe for Capabilities
impl Send for Capabilities
impl Sync for Capabilities
impl Unpin for Capabilities
impl UnsafeUnpin for Capabilities
impl UnwindSafe for Capabilities
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.