Windowing demo feature specs
Specs for the per-platform demo programs that empirically map where Wayland, X11, Win32, and macOS (AppKit) diverge. Each spec is platform-neutral: one demo per platform implements it (in <platform>/examples/fXX-<slug>/), and the observed behavior lands in a findings doc next to that platform's survey (<platform>/fXX-<slug>.md). The cross-platform grid lives in the feature matrix; items needing a human run are queued in the manual-run queue.
Last reviewed: June 10, 2026
| ID | Feature | Why it discriminates |
|---|---|---|
| F01 | First pixel & init cost | Concepts-to-pixel count; round-trips vs local |
| F02 | Resize correctness | Notification vs negotiation (ack-configure) |
| F03 | Modal-loop survival | Win32 WM_ENTERSIZEMOVE; macOS live-resize |
| F04 | Vsync / frame pacing | Four different frame clocks |
| F05 | Loop wakeup & external fds | fd-readiness vs handle waits vs run-loop sources |
| F06 | Keyboard & keymap | Who owns xkb state; client-side repeat |
| F07 | IME / text input | Pre-edit/commit choreography; TSF vs IMM32 vs XIM |
| F08 | DPI / runtime rescale | Logical vs physical; X11's missing mechanism |
| F09 | Output enumeration & hotplug | Surface↔output knowledge; hotplug order |
| F10 | Pointer: relative + lock + confine | Async-failable lock; macOS's missing confine |
| F11 | Scroll fidelity | axis_v120 / sub-120 deltas / momentum phases |
| F12 | Cursors | Client-composited cursors on Wayland |
| F13 | CSD & decoration modes | Wayland-only; the largest "app's problem" fork |
| F14 | Window state & vetoable close | State echo vs fire-and-forget; veto contracts |
| F15 | Popup with grab | Declarative positioner vs app-computed geometry |
| F16 | Clipboard + file DnD | Format negotiation; INCR; delayed rendering |
| F17 | Threading probes | What actually breaks, and how it manifests |
F01–F08 are the discriminating core (first wave); F09–F17 are the second wave. Every demo follows the shared conventions: scaffold copied from <platform>/examples/scaffold/, the instrument.d log format from F01, and the verification-tier labels defined in the matrix legend.