Skip to content

Linux desktop

Checked against f15b998 on 2026-11-10. The files it covers are unchanged since.

On Linux, niso’s host is niso-iced (hosts/iced), a Rust program that runs the page with QuickJS and draws the render stream with iced. It also builds on macOS.

Terminal window
hosts/iced/build.sh # examples/counter in a window
hosts/iced/build.sh timer --size 400x600
target/release/niso-iced --page index.html --root .

--page loads an HTML page as niso-run --page does: with --root, the page’s origin http://localhost/ serves the files under that directory. --tap X,Y taps after launch, half a second apart, for scripted runs.

Each render node is an iced widget placed at the frame the core gave it. Text is the core’s own shaped glyph runs rasterized with swash, iced’s own rasterizer, into one bitmap per text node (src/text.rs), so measuring and drawing can’t disagree. Controls are iced’s stock toggler, slider, button, progress bar and text fields, measured at startup and reported to the core (src/controls.rs). iced has no segmented control, so a segmented radio group is a row of radio buttons.

The screenshot harness renders pages with niso-iced --screenshot offscreen and compares them to Chrome: tests/check.sh --iced (Testing). Dark mode isn’t part of that run.

Windows (WinUI 3) is planned (Planned platforms).