1//! This crate provides bindings to the plasma wayland protocol extensions
2//! provided in <https://github.com/KDE/plasma-wayland-protocols>
3//!
4//! These bindings are built on top of the crates wayland-client and wayland-server.
5//!
6//! Each protocol module contains a `client` and a `server` submodules, for each side of the
7//! protocol. The creation of these modules (and the dependency on the associated crate) is
8//! controlled by the two cargo features `client` and `server`.
9
10#![forbid(improper_ctypes, unsafe_op_in_unsafe_fn)]
11#![cfg_attr(docsrs, feature(doc_auto_cfg))]
12#![cfg_attr(rustfmt, rustfmt_skip)]
13
14#[macro_use]
15mod protocol_macro;
16
17pub mod appmenu {
18 wayland_protocol!(
19 "./plasma-wayland-protocols/src/protocols/appmenu.xml",
20 []
21 );
22}
23
24pub mod blur {
25 wayland_protocol!(
26 "./plasma-wayland-protocols/src/protocols/blur.xml",
27 []
28 );
29}
30
31pub mod contrast {
32 wayland_protocol!(
33 "./plasma-wayland-protocols/src/protocols/contrast.xml",
34 []
35 );
36}
37
38pub mod dpms {
39 wayland_protocol!(
40 "./plasma-wayland-protocols/src/protocols/dpms.xml",
41 []
42 );
43}
44
45pub mod fake_input {
46 wayland_protocol!(
47 "./plasma-wayland-protocols/src/protocols/fake-input.xml",
48 []
49 );
50}
51
52// This protocol is disabled for now as the file is not valid XML because it does not have a XML header
53//
54// pub mod fullscreen_shell {
55// wayland_protocol!(
56// "./plasma-wayland-protocols/src/protocols/fullscreen-shell.xml",
57// []
58// );
59// }
60
61pub mod idle {
62 wayland_protocol!(
63 "./plasma-wayland-protocols/src/protocols/idle.xml",
64 []
65 );
66}
67
68pub mod keystate {
69 wayland_protocol!(
70 "./plasma-wayland-protocols/src/protocols/keystate.xml",
71 []
72 );
73}
74
75pub mod output_device {
76 pub mod v1 {
77 wayland_protocol!(
78 "./plasma-wayland-protocols/src/protocols/outputdevice.xml",
79 []
80 );
81 }
82
83 pub mod v2 {
84 wayland_protocol!(
85 "./plasma-wayland-protocols/src/protocols/kde-output-device-v2.xml",
86 []
87 );
88 }
89}
90
91pub mod output_management {
92 pub mod v1 {
93 wayland_protocol!(
94 "./plasma-wayland-protocols/src/protocols/output-management.xml",
95 [crate::output_device::v1]
96 );
97 }
98
99 pub mod v2 {
100 wayland_protocol!(
101 "./plasma-wayland-protocols/src/protocols/kde-output-management-v2.xml",
102 [crate::output_device::v2]
103 );
104 }
105}
106
107
108pub mod primary_output {
109 pub mod v1 {
110 wayland_protocol!(
111 "./plasma-wayland-protocols/src/protocols/kde-primary-output-v1.xml",
112 []
113 );
114 }
115}
116
117pub mod plasma_shell {
118 wayland_protocol!(
119 "./plasma-wayland-protocols/src/protocols/plasma-shell.xml",
120 []
121 );
122}
123
124pub mod plasma_virtual_desktop {
125 wayland_protocol!(
126 "./plasma-wayland-protocols/src/protocols/plasma-virtual-desktop.xml",
127 []
128 );
129}
130
131pub mod plasma_window_management {
132 wayland_protocol!(
133 "./plasma-wayland-protocols/src/protocols/plasma-window-management.xml",
134 []
135 );
136}
137
138pub mod remote_access {
139 wayland_protocol!(
140 "./plasma-wayland-protocols/src/protocols/remote-access.xml",
141 []
142 );
143}
144
145pub mod screencast {
146 pub mod v1 {
147 wayland_protocol!(
148 "./plasma-wayland-protocols/src/protocols/zkde-screencast-unstable-v1.xml",
149 []
150 );
151 }
152}
153
154pub mod server_decoration_palette {
155 wayland_protocol!(
156 "./plasma-wayland-protocols/src/protocols/server-decoration-palette.xml",
157 []
158 );
159}
160
161pub mod server_decoration {
162 wayland_protocol!(
163 "./plasma-wayland-protocols/src/protocols/server-decoration.xml",
164 []
165 );
166}
167
168pub mod shadow {
169 wayland_protocol!(
170 "./plasma-wayland-protocols/src/protocols/shadow.xml",
171 []
172 );
173}
174
175pub mod slide {
176 wayland_protocol!(
177 "./plasma-wayland-protocols/src/protocols/slide.xml",
178 []
179 );
180}
181
182// This protocol is disabled for now as the file is not valid XML because it does not have a XML header
183//
184// pub mod surface_extension {
185// wayland_protocol!(
186// "./plasma-wayland-protocols/src/protocols/surface-extension.xml",
187// []
188// );
189// }
190
191pub mod text_input {
192 pub mod v1 {
193 wayland_protocol!(
194 "./plasma-wayland-protocols/src/protocols/text-input.xml",
195 []
196 );
197 }
198
199 pub mod v2 {
200 wayland_protocol!(
201 "./plasma-wayland-protocols/src/protocols/text-input-unstable-v2.xml",
202 []
203 );
204 }
205}
206
207pub mod wayland_eglstream_controller {
208 wayland_protocol!(
209 "./plasma-wayland-protocols/src/protocols/wayland-eglstream-controller.xml",
210 []
211 );
212}
213