Zpět na projekty
TUIX v0.6Beta

Naposledy aktualizováno: 2026-08-14

Probing terminálu a vyjednávání schopností

TUIX v0.6 zavádí aktivní probing terminálu pro zjištění schopností emulátoru před spuštěním renderovací smyčky. Protože se emulátory terminálu výrazně liší v podpoře širokých znaků, RGB truecolor, odezev na dotazy pozice kurzoru a escape kódů, probing umožňuje TUIX automaticky zvolit optimální strategii renderování.

Životní cyklus probingu

  1. `tuix_terminal_prepare()`: Přepne terminál do raw režimu, aktivuje alternativní obrazovku a vypne lokální echo.
  2. `tuix_terminal_probe()`: Odešle escape sekvence Device Status Report (DSR) a dotazy na kurzor pro změření latence odezvy, rozměrů terminálu a příznaků schopností.
  3. `tuix_terminal_select_policy()`: Vyhodnotí výsledky probingu a vybere politiku fallbacku glyfů (např. povolení plného Unicode nebo přechod na bezpečné ASCII rámečky).
  4. `tuix_terminal_restore()`: Uklidí stav terminálu, obnoví viditelnost kurzoru a opustí alternativní obrazovku při ukončení aplikace.

Režimy probingu a konfigurace

Nastavení / RežimFunkcePopis
Strict Probe Modetuix.tuix_terminal_config_set_probe_mode(0)Kompletní dotazovací sekvence s validací DSR odezev kurzoru.
Fast Probe Modetuix.tuix_terminal_config_set_probe_mode(1)Zkrácený timeout probingu preferující rychlost spuštění.
ASCII Fallbacktuix.tuix_terminal_config_set_ascii_fallback(True)Vynutí bezpečné ASCII znaky pro rámečky (`+`, `-`, `|`) místo Unicode glyfů.
from tuix.core import tuix

# Configure probe policy
tuix.tuix_terminal_config_ensure_defaults()
tuix.tuix_terminal_config_set_ascii_fallback(False)

# Run active probing
tuix.tuix_terminal_prepare()
tuix.tuix_terminal_probe()
tuix.tuix_terminal_select_policy()

# Inspect detected terminal capabilities
info = tuix.tuix_terminal_get_info()
print('Terminal Info:', info)