wayland_protocols/ext.rs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
//! Miscellaneous protocols
#![cfg_attr(rustfmt, rustfmt_skip)]
#[cfg(feature = "staging")]
pub mod idle_notify {
//! This protocol allows clients to monitor user idle status.
#[allow(missing_docs)]
pub mod v1 {
wayland_protocol!(
"./protocols/staging/ext-idle-notify/ext-idle-notify-v1.xml",
[]
);
}
}
#[cfg(feature = "staging")]
pub mod session_lock {
//! This protocol allows for a privileged Wayland client to lock the session
//! and display arbitrary graphics while the session is locked.
//!
//! The compositor may choose to restrict this protocol to a special client
//! launched by the compositor itself or expose it to all privileged clients,
//! this is compositor policy.
//!
//! The client is responsible for performing authentication and informing the
//! compositor when the session should be unlocked. If the client dies while
//! the session is locked the session remains locked, possibly permanently
//! depending on compositor policy.
#[allow(missing_docs)]
pub mod v1 {
wayland_protocol!(
"./protocols/staging/ext-session-lock/ext-session-lock-v1.xml",
[]
);
}
}
#[cfg(feature = "staging")]
pub mod foreign_toplevel_list {
//! The purpose of this protocol is to provide protocol object handles for toplevels, possibly
//! originating from another client.
//!
//! This protocol is intentionally minimalistic and expects additional functionality (e.g.
//! creating a screencopy source from a toplevel handle, getting information about the state of
//! the toplevel) to be implemented in extension protocols.
//!
//! The compositor may choose to restrict this protocol to a special client launched by the
//! compositor itself or expose it to all clients, this is compositor policy.
#[allow(missing_docs)]
pub mod v1 {
wayland_protocol!(
"./protocols/staging/ext-foreign-toplevel-list/ext-foreign-toplevel-list-v1.xml",
[]
);
}
}
#[cfg(feature = "staging")]
pub mod transient_seat {
//! The transient seat protocol can be used by privileged clients to create
//! independent seats that will be removed from the compositor when the client
//! destroys its transient seat.
//!
//! This protocol is intended for use with virtual input protocols such as
//! "virtual_keyboard_unstable_v1" or "wlr_virtual_pointer_unstable_v1", both
//! of which allow the user to select a seat.
//!
//! The "wl_seat" global created by this protocol does not generate input events
//! on its own, or have any capabilities except those assigned to it by other
//! protocol extensions, such as the ones mentioned above.
//!
//! For example, a remote desktop server can create a seat with virtual inputs
//! for each remote user by following these steps for each new connection:
//! * Create a transient seat
//! * Wait for the transient seat to be created
//! * Locate a "wl_seat" global with a matching name
//! * Create virtual inputs using the resulting "wl_seat" global
#[allow(missing_docs)]
pub mod v1 {
wayland_protocol!(
"./protocols/staging/ext-transient-seat/ext-transient-seat-v1.xml",
[]
);
}
}
#[cfg(feature = "staging")]
pub mod image_capture_source {
//! This protocol serves as an intermediary between capturing protocols and
//! potential image capture sources such as outputs and toplevels.
//!
//! This protocol may be extended to support more image capture sources in the
//! future, thereby adding those image capture sources to other protocols that
//! use the image capture source object without having to modify those
//! protocols.
#[allow(missing_docs)]
pub mod v1 {
wayland_protocol!(
"./protocols/staging/ext-image-capture-source/ext-image-capture-source-v1.xml",
[crate::ext::foreign_toplevel_list::v1, crate::xdg::shell]
);
}
}
#[cfg(feature = "staging")]
pub mod image_copy_capture {
//! This protocol allows clients to ask the compositor to capture image sources
//! such as outputs and toplevels into user submitted buffers.
#[allow(missing_docs)]
pub mod v1 {
wayland_protocol!(
"./protocols/staging/ext-image-copy-capture/ext-image-copy-capture-v1.xml",
[crate::ext::image_capture_source::v1, crate::xdg::shell]
);
}
}
#[cfg(feature = "staging")]
pub mod data_control {
//! This protocol allows a privileged client to control data devices. In
//! particular, the client will be able to manage the current selection and take
//! the role of a clipboard manager.
#[allow(missing_docs)]
pub mod v1 {
wayland_protocol!(
"./protocols/staging/ext-data-control/ext-data-control-v1.xml",
[]
);
}
}
#[cfg(feature = "staging")]
pub mod workspace {
//! List and control workspaces
#[allow(missing_docs)]
pub mod v1 {
wayland_protocol!(
"./protocols/staging/ext-workspace/ext-workspace-v1.xml",
[]
);
}
}