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 153 154 155 156 157 158
//! This crate provides bindings to the wlroots wayland protocol extensions
//! provided in <https://gitlab.freedesktop.org/wlroots/wlr-protocols>
//!
//! These bindings are built on top of the crates wayland-client and wayland-server.
//!
//! Each protocol module contains a `client` and a `server` submodules, for each side of the
//! protocol. The creation of these modules (and the dependency on the associated crate) is
//! controlled by the two cargo features `client` and `server`.
#![warn(missing_docs)]
#![forbid(improper_ctypes, unsafe_op_in_unsafe_fn)]
#![cfg_attr(docsrs, feature(doc_auto_cfg))]
#![cfg_attr(rustfmt, rustfmt_skip)]
#[macro_use]
mod protocol_macro;
pub mod data_control {
//! Control data devices, particularly the clipboard.
//!
//! An interface to control data devices, particularly to manage the current selection and
//! take the role of a clipboard manager.
#[allow(missing_docs)]
pub mod v1 {
wayland_protocol!(
"./wlr-protocols/unstable/wlr-data-control-unstable-v1.xml",
[]
);
}
}
pub mod export_dmabuf {
//! A protocol for low overhead screen content capturing
//!
//! An interface to capture surfaces in an efficient way by exporting DMA-BUFs.
#[allow(missing_docs)]
pub mod v1 {
wayland_protocol!(
"./wlr-protocols/unstable/wlr-export-dmabuf-unstable-v1.xml",
[]
);
}
}
pub mod foreign_toplevel {
//! List and control opened apps
//!
//! Use for creating taskbars and docks.
#[allow(missing_docs)]
pub mod v1 {
wayland_protocol!(
"./wlr-protocols/unstable/wlr-foreign-toplevel-management-unstable-v1.xml",
[]
);
}
}
pub mod gamma_control {
//! Manage gamma tables of outputs.
//!
//! This protocol allows a privileged client to set the gamma tables for outputs.
#[allow(missing_docs)]
pub mod v1 {
wayland_protocol!(
"./wlr-protocols/unstable/wlr-gamma-control-unstable-v1.xml",
[]
);
}
}
pub mod input_inhibitor {
//! Inhibits input events to other clients
#[allow(missing_docs)]
pub mod v1 {
wayland_protocol!(
"./wlr-protocols/unstable/wlr-input-inhibitor-unstable-v1.xml",
[]
);
}
}
pub mod layer_shell {
//! Layered shell protocol
#[allow(missing_docs)]
pub mod v1 {
wayland_protocol!(
"./wlr-protocols/unstable/wlr-layer-shell-unstable-v1.xml",
[wayland_protocols::xdg::shell]
);
}
}
pub mod output_management {
//! Output management protocol
//!
//! This protocol exposes interfaces to obtain and modify output device configuration.
#[allow(missing_docs)]
pub mod v1 {
wayland_protocol!(
"./wlr-protocols/unstable/wlr-output-management-unstable-v1.xml",
[]
);
}
}
pub mod output_power_management {
//! Output power management protocol
//!
//! This protocol allows clients to control power management modes
//! of outputs that are currently part of the compositor space. The
//! intent is to allow special clients like desktop shells to power
//! down outputs when the system is idle.
#[allow(missing_docs)]
pub mod v1 {
wayland_protocol!(
"./wlr-protocols/unstable/wlr-output-power-management-unstable-v1.xml",
[]
);
}
}
pub mod screencopy {
//! Screen content capturing on client buffers
//!
//! This protocol allows clients to ask the compositor to copy part of the
//! screen content to a client buffer.
#[allow(missing_docs)]
pub mod v1 {
wayland_protocol!(
"./wlr-protocols/unstable/wlr-screencopy-unstable-v1.xml",
[]
);
}
}
pub mod virtual_pointer {
//! Virtual pointer protocol
//!
//! This protocol allows clients to emulate a physical pointer device. The
//! requests are mostly mirror opposites of those specified in wl_pointer.
#[allow(missing_docs)]
pub mod v1 {
wayland_protocol!(
"./wlr-protocols/unstable/wlr-virtual-pointer-unstable-v1.xml",
[]
);
}
}