Skip to main content

lock_the_session

Function lock_the_session 

Source
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.