Skip to main content

gnome source import

Conformance input is the official application's UI source, not a hand-authored mockup. A source-derived document can only be marked ready when its declared templates resolve and every visual widget is either generically supported or explicitly reported as a custom-widget boundary.

AppOfficial entry UIFirst generic support neededSource-only boundary
Calculatorsrc/ui/math-window.blpsource-bundle template resolution, GtkScrolledWindow, text editor surfaceMathButtons is Vala-constructed; display uses GtkSourceView
Calendarsrc/gui/gcal-window.blptemplate resolution, navigation/stack pages, scrollersmonth grid is a custom C widget
Clocksdata/ui/window.uiGtkBuilder template resolution, stack pages, scrollersclock/alarm faces are custom widgets
Filessrc/resources/ui/nautilus-window.blptab bar, action bar, stacks, overlays, scrollersdirectory list/grid and sidebar are runtime C widgets
Settingsshell/cc-window.blpnavigation split/page, search bar, scrollerpanel list and selected panel are runtime C widgets
Softwaresrc/gs-shell.ui, src/gs-overview-page.uileaflet/page, search bar, stacks, scrollersoverview tiles/carousel are runtime package data/widgets
Text Editorsrc/editor-window.uimulti-layout view, stacks, revealers, imageeditor panels and open/status controls are custom widgets
Weatherdata/window.ui, data/weather-widget.uistacks, overlays, scrollers, list viewforecast widget is custom GJS/template content
Webprogrammatic src/ephy-window.cC/GObject construction extractormain window is not declarative UI markup
Diskssrc/resources/ui/gdu-window.blpscrollers, stacks/pages, popoversdrive/detail rows are linked custom templates/widgets

Loop​

  1. Fetch the official source at its revision used for validation.
  2. Resolve its declared .blp/.ui template bundle into a typed document.
  3. Render only the supported declared structure; list unresolved custom widgets in the artifact metadata.
  4. Compare the source-derived render with native Broadway output and record raw pixel delta plus foreground IoU.
  5. Add a generic widget, slot, or layout rule only when the source input identifies it; rerun the same app and record the percentage change.

Success criteria​

Each source-derived capture records unresolvedWidgetCoverage and rawSimilarityCeiling = 1 - unresolvedWidgetCoverage. The latter is the fraction of the native surface for which the generic renderer has source evidence; a custom-widget placeholder is never counted as a claimed native implementation.

After an app's first source-derived capture, set its CI gate from that calibration:

  1. BROADWAY_MIN_SOURCE_RESOLVED_SIMILARITY gates visual similarity outside custom-widget boundaries.
  2. BROADWAY_MAX_UNRESOLVED_WIDGET_COVERAGE gates how much of the surface is still only a declared source boundary.
  3. BROADWAY_MAX_DIFF_RATIO remains available for fully source-resolved apps.

An app passes only when its calibrated resolved similarity is met and its unresolved coverage is within the agreed maximum. As generic support replaces a boundary, the ceiling rises automatically and the coverage gate tightens.

An app is not source-derived merely because a similar preset exists. The existing JSON presets remain transitional and are not visual baselines for this loop.