Interface for creating client seat connections. Creates a seat object for the client's current session. The daemon sends either enabled or disabled to indicate the initial seat state. Seat control interface based on libseat. A client opens a seat, reacts to enabled and disabled events, opens device objects while enabled, and may request session switches when supported by the daemon. Sent when the client may open and use seat devices. Sent when the client must stop using devices opened through this seat and acknowledge the state change with ack_disabled. Emitted when a session switch has taken effect. Sent before the seat object is terminated after a fatal seat-scoped protocol error. Acknowledges the most recent disabled event. Opens path and returns a device object. The returned object resolves exactly once with either opened or failed. Requests switching to the given target session. The daemon reports a seat error if switching is not supported. Closes the seat and any devices still associated with it. Device object created by seat.open_device. It resolves exactly once with either opened or failed. If revoked is emitted, the device is permanently unusable and the client should destroy the object. The fd and object must not be used again after this event.