Skip to content

Hex1bAppOptions

Namespace: Hex1b

Assembly: Hex1b.dll

Options for configuring a Hex1bApp.

csharp
public class Hex1bAppOptions

Inheritance

ObjectHex1bAppOptions

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

csharp
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

csharp
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

csharp
public bool EnableMouse { get; set; }

EnableRenderCaching

Whether to enable widget-tree render caching when Surface rendering is used.

Returns: Boolean

csharp
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

csharp
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

csharp
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

csharp
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

csharp
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

csharp
public int InputCoalescingMaxDelayMs { get; set; }

Metrics

Metrics instance for OpenTelemetry instrumentation. If null, is used.

Returns: Hex1bMetrics

csharp
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>

csharp
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>

csharp
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>

csharp
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

csharp
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

csharp
public int SurfacePoolMaxSurfacesPerBucket { get; set; }

Theme

The theme to use for rendering. If null, the default theme will be used.

Returns: Hex1bTheme

csharp
public Hex1bTheme? Theme { get; set; }

ThemeProvider

A dynamic theme provider that is called each frame. Takes precedence over Theme if set.

Returns: Func<Hex1bTheme>

csharp
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

csharp
public IHex1bAppTerminalWorkloadAdapter? WorkloadAdapter { get; set; }

Released under the MIT License.