Concepts

Layouts and the grid

Why layouts are stored in grid cells rather than pixels, and what that means when you move a board to a different screen.

2 min readUniKiosk 0.0.1-rc2

A layout is a grid of cells with widgets placed on it. It is not a canvas of pixel coordinates, and that difference is the reason one design survives being moved between screens.

Cells, not pixels

You choose a column and row count — 16×9, 9×16, 16×12, 12×12 are set up out of the box — and place each widget across a rectangle of cells. The renderer maps that grid onto whatever the screen actually is.

Move the same board to a screen with different physical dimensions and the proportions hold. Move it to a different aspect ratio and it will fit but it will not look considered: a board designed 16×9 does not become a good portrait board by being squeezed. Design per aspect ratio, not per screen.

How widgets size their text

Widgets scale type from the smaller side of their own box, so a widget in a tall narrow cell does not blow its text up to the width. Some widgets cap out deliberately — a directory row will not exceed a sensible reading size no matter how much space it is given, because a directory with four enormous rows is worse than one with twelve legible ones.

The practical consequence: if text looks too small, give the widget a bigger box, not a bigger font.

Orientation

Orientation belongs to the screen, set once when you register it. The layout is composed for the screen's orientation, which is why a portrait totem gets a portrait grid rather than a rotated landscape one.

Themes and tweaks

Each layout carries a theme — ground colour, text colours, accent — and per-widget tweaks on top. Because colour is a layout property rather than baked into each widget, changing a board from dark to light is one change, not thirty.

Drafts and revisions

Every edit lands in a draft; the screen keeps showing the published version until you publish. Twenty published versions are retained. This is what makes it safe to edit a board that people are currently standing in front of.

Portability

A layout is a JSON file. Export it, import it on another panel, and you have the same board. That is also how the 451 templates work — each one is a file you import and edit.

Ready to try it?

One APK, no account, nothing to cancel.