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