This module defines an interface for interacting with the ScreenCast portal.
The general interaction pattern with the
ScreenCast portal is to open a
session, set which source types are of interest, and call
let screen_cast = ScreenCast::new()?.start(None)?;
In more complex cases you can modify the
ScreenCast before starting it:
let mut screen_cast = ScreenCast::new()?; // Set which source types to allow, and enable multiple items to be shared. screen_cast.set_source_types(SourceType::MONITOR); screen_cast.enable_multiple(); // If you have a window handle you can tie the dialog to it let screen_cast = screen_cast.start(Some("wayland:<window_id>"))?;
An active ScreenCast session. This holds a file descriptor for connecting to PipeWire along with metadata for the active streams.
An un-opened screencast session. This can be queried fro the supported
capture source types, and used to configure which source types to prompt
Desktop portal error. This could be an error from the underlying