LavaUI docs

message Wallpaper

Control plane

message Wallpaper

What the desktop itself is painted with, behind every window.

The one piece of the desktop's look that is not in Appearance, and for a reason: Appearance is the handful of numbers a client copies so its own menus match the windows around them, and no client should ever draw the wallpaper. This is the compositor's own backdrop, of interest to the app that changes it and to nobody else.

color is always meaningful, in both modes. In solid it is the desktop; in picture it is what shows wherever the picture does not reach — the letterbox bars under fit, the margin under center, and the whole screen for the moment before a picture is decoded or after its file goes away. A wallpaper with no colour would mean a desktop that can flash undefined pixels, so there is no mode in which this field is ignored.

idl/lava.npidl:216

Fields

color: u32

0x00RRGGBB. Opaque by construction: the desktop is the bottom of the scene and there is nothing behind it to blend with, so an alpha channel here could only describe blending against darkness.

idl/lava.npidl:223

fit: string

How the picture is fitted to each screen: fill, fit, stretch or center. Ignored in solid mode. Anything else is read as fill.

Applied per screen, not once across the desktop — two monitors of different sizes each get the picture fitted to themselves, which is what every one of these words means on a desk with two monitors on it.

idl/lava.npidl:238

mode: string

solid or picture. Anything else is read as solid, which is the mode that cannot fail — see WallpaperUnreadable.

idl/lava.npidl:219

path: string

Absolute path to the picture. Empty in solid mode.

A path rather than pixels: the compositor reads the file itself, once, and re-reads it at every startup. Sending the decoded image over the control plane would make a 4K wallpaper a 33 MB RPC and would leave the desktop with no way to restore itself at login without the settings app running again.

idl/lava.npidl:231