Hex1bAppOptions
Namespace: Hex1b
Assembly: Hex1b.dll
Options for configuring a Hex1bApp.
public class Hex1bAppOptionsInheritance
Object → Hex1bAppOptions
Properties
EnableDefaultCtrlCExit
Whether to inject a default CTRL-C binding that calls RequestStop() to exit the app. When enabled, pressing CTRL-C will gracefully exit the application. This can be disabled if you need custom CTRL-C handling. Default is true.
Returns: Boolean
public bool EnableDefaultCtrlCExit { get; set; }EnableInputCoalescing
Whether to enable input coalescing. When enabled, multiple rapid inputs are batched together before rendering, improving performance under back pressure. Disable for testing to ensure each input triggers a separate frame. Default is true.
Returns: Boolean
public bool EnableInputCoalescing { get; set; }EnableMouse
Whether to enable mouse support. When enabled, the terminal will track mouse movement and clicks, rendering a visible cursor at the mouse position. Default is false.
Returns: Boolean
public bool EnableMouse { get; set; }EnableRenderCaching
Whether to enable widget-tree render caching when Surface rendering is used.
Returns: Boolean
public bool EnableRenderCaching { get; set; }EnableRescue
Whether to wrap the root widget in a RescueWidget for error recovery. When enabled, exceptions during build/reconcile/measure/arrange/render will be caught and a fallback UI will be displayed instead of crashing. Default is true.
Returns: Boolean
public bool EnableRescue { get; set; }EnableSurfacePooling
Whether to enable pooling of temporary instances during rendering. This primarily affects layers and nodes like EffectPanel. Default is false.
Returns: Boolean
public bool EnableSurfacePooling { get; set; }FrameRateLimitMs
Minimum frame interval in milliseconds. This sets the floor for animation timers and effectively caps the maximum frame rate.
Returns: Int32
public int FrameRateLimitMs { get; set; }InputCoalescingInitialDelayMs
Initial delay in milliseconds for input coalescing. After processing an input, the app waits this long to allow additional inputs to arrive before rendering. Only applies when is true. Default is 5ms.
Returns: Int32
public int InputCoalescingInitialDelayMs { get; set; }InputCoalescingMaxDelayMs
Maximum delay in milliseconds for input coalescing. The delay adaptively scales based on output queue depth but will not exceed this value. Only applies when is true. Default is 100ms.
Returns: Int32
public int InputCoalescingMaxDelayMs { get; set; }Metrics
Metrics instance for OpenTelemetry instrumentation. If null, is used.
Returns: Hex1bMetrics
public Hex1bMetrics? Metrics { get; set; }OnRescue
Handler called when the rescue widget catches an exception. Use this for logging or other error tracking.
Returns: Action<RescueEventArgs>
public Action<RescueEventArgs>? OnRescue { get; set; }OnRescueReset
Handler called when the rescue widget is reset (e.g., user clicks Retry). Use this to clear any cached state that may have caused the error.
Returns: Action<RescueResetEventArgs>
public Action<RescueResetEventArgs>? OnRescueReset { get; set; }RescueFallbackBuilder
Custom fallback widget builder for the rescue widget. If null, a default fallback will be used that shows exception details in Debug mode and a friendly message in Release mode.
Returns: Func<RescueContext, Hex1bWidget>
public Func<RescueContext, Hex1bWidget>? RescueFallbackBuilder { get; set; }SurfacePoolMaxIdleFrames
Number of render cycles after which an unused pool bucket is discarded. ("Unused" means "not rented" after X render cycles.) Only applies when is true. Default is 120.
Returns: Int32
public int SurfacePoolMaxIdleFrames { get; set; }SurfacePoolMaxSurfacesPerBucket
Maximum number of pooled surfaces kept per (width, height, cell metrics) bucket. Only applies when is true. Default is 8.
Returns: Int32
public int SurfacePoolMaxSurfacesPerBucket { get; set; }Theme
The theme to use for rendering. If null, the default theme will be used.
Returns: Hex1bTheme
public Hex1bTheme? Theme { get; set; }ThemeProvider
A dynamic theme provider that is called each frame. Takes precedence over Theme if set.
Returns: Func<Hex1bTheme>
public Func<Hex1bTheme>? ThemeProvider { get; set; }WorkloadAdapter
Custom workload adapter. When set, the app uses this directly. This is the preferred way to provide custom terminal infrastructure.
Returns: IHex1bAppTerminalWorkloadAdapter
public IHex1bAppTerminalWorkloadAdapter? WorkloadAdapter { get; set; }