Your contribution
Widget package
- Implements IWidget and lifecycle contracts
- Owns WinUI presentation and domain behavior
- Owns widget settings and private data
PrimaFacie Widget SDK
Create focused WinUI experiences that adapt to the Heads Up dashboard and integrate through a small, purpose-built SDK.
.NET 10 WinUI 3 x64 Preview
public sealed partial class FocusWidget
: UserControl, IWidget
{
public Task InitializeAsync(
WidgetContext context,
CancellationToken cancellationToken);
public Task RefreshAsync(
CancellationToken cancellationToken);
public Task ShutdownAsync(
CancellationToken cancellationToken);
public void OnLayoutChanged(
WidgetLayout layout);
public void OnViewportChanged(
WidgetViewport viewport);
}
Overview
The widget package references the SDK and implements its widget-facing contracts. Heads Up implements the host services, owns package discovery and activation, preserves live dashboard workspaces, and orchestrates the runtime lifecycle.
Your contribution
PrimaFacie SDK
Explicit boundary Referenced by widgets · hosted by Heads UpThe host
Reference the SDK binary without depending on Control Center application, infrastructure, persistence, or Core assemblies.
Adapt to effective layout, viewport dimensions, and Small, Compact, or Normal density supplied by the host.
Define widget settings, observe host-supplied global settings, report failures, persist private data, request user attention, and release owned resources through explicit SDK boundaries.
SDK
The manifest declares the package. The SDK defines how its runtime widget participates in Heads Up without exposing the host’s internal architecture.
Declare the authoritative widget identity, presentation defaults, runtime entry point, capabilities, and supported size.
manifest.jsonWidgetCapabilitiessize · theme · logoReceive the host context, participate in refresh, release owned resources during shutdown, and respond to effective layout and viewport changes.
IWidgetInitializeAsync · RefreshAsyncShutdownAsync · layout · viewportProperty notification, command creation, refresh behavior, cancellation, and protected operation execution.
WidgetViewModelBaseRelayCommandAsyncRelayCommandAdapt presentation using the widget’s effective on-screen layout, dimensions, and density supplied by Heads Up.
WidgetLayoutWidgetViewportWidgetDensityDefine widget settings and an optional settings surface. Observe host-defined global settings and own the data model persisted within the private data-directory boundary.
WidgetSettingsGlobalWidgetSettingsWidgetContext.DataDirectoryRoute failures consistently and request shell-managed user attention without depending on the shell implementation.
IWidgetErrorReporterIWidgetAttentionServiceWidgetAttentionRequest