pub(crate) fn lock_the_session(
connection: &Connection,
queue: &mut EventQueue<Probe>,
probe: &mut Probe,
seconds: u64,
) -> Result<(), String>Expand description
Lock the session, hold it, and let it go.
Run with WL_PROBE_LOCK=<seconds>. This is the only lock client on the
machine, and without one the protocol cannot be checked at all: the
compositor cannot lock itself, and every question worth asking about a lock
screen – does the desktop stop being visible, do bindings stop firing,
does a monitor with no surface go blank rather than clear – is a question
about what a second process can see.
It deliberately does not draw a password field. What it draws is a flat colour, chosen to be nothing like the compositor’s own backdrop, so a screenshot answers “whose pixels are these” without anyone having to guess.