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
52pub mod fullscreen_shell {
53 wayland_protocol!(
54 "./plasma-wayland-protocols/src/protocols/fullscreen-shell.xml",
55 []
56 );
57}
58
59pub mod idle {
60 wayland_protocol!(
61 "./plasma-wayland-protocols/src/protocols/idle.xml",
62 []
63 );
64}
65
66pub mod keystate {
67 wayland_protocol!(
68 "./plasma-wayland-protocols/src/protocols/keystate.xml",
69 []
70 );
71}
72
73pub mod output_device {
74 pub mod v1 {
75 wayland_protocol!(
76 "./plasma-wayland-protocols/src/protocols/outputdevice.xml",
77 []
78 );
79 }
80
81 pub mod v2 {
82 wayland_protocol!(
83 "./plasma-wayland-protocols/src/protocols/kde-output-device-v2.xml",
84 []
85 );
86 }
87}
88
89pub mod output_management {
90 pub mod v1 {
91 wayland_protocol!(
92 "./plasma-wayland-protocols/src/protocols/output-management.xml",
93 [crate::output_device::v1]
94 );
95 }
96
97 pub mod v2 {
98 wayland_protocol!(
99 "./plasma-wayland-protocols/src/protocols/kde-output-management-v2.xml",
100 [crate::output_device::v2]
101 );
102 }
103}
104
105
106pub mod primary_output {
107 pub mod v1 {
108 wayland_protocol!(
109 "./plasma-wayland-protocols/src/protocols/kde-primary-output-v1.xml",
110 []
111 );
112 }
113}
114
115pub mod plasma_shell {
116 wayland_protocol!(
117 "./plasma-wayland-protocols/src/protocols/plasma-shell.xml",
118 []
119 );
120}
121
122pub mod plasma_virtual_desktop {
123 wayland_protocol!(
124 "./plasma-wayland-protocols/src/protocols/plasma-virtual-desktop.xml",
125 []
126 );
127}
128
129pub mod plasma_window_management {
130 wayland_protocol!(
131 "./plasma-wayland-protocols/src/protocols/plasma-window-management.xml",
132 []
133 );
134}
135
136pub mod remote_access {
137 wayland_protocol!(
138 "./plasma-wayland-protocols/src/protocols/remote-access.xml",
139 []
140 );
141}
142
143pub mod screencast {
144 pub mod v1 {
145 wayland_protocol!(
146 "./plasma-wayland-protocols/src/protocols/zkde-screencast-unstable-v1.xml",
147 []
148 );
149 }
150}
151
152pub mod server_decoration_palette {
153 wayland_protocol!(
154 "./plasma-wayland-protocols/src/protocols/server-decoration-palette.xml",
155 []
156 );
157}
158
159pub mod server_decoration {
160 wayland_protocol!(
161 "./plasma-wayland-protocols/src/protocols/server-decoration.xml",
162 []
163 );
164}
165
166pub mod shadow {
167 wayland_protocol!(
168 "./plasma-wayland-protocols/src/protocols/shadow.xml",
169 []
170 );
171}
172
173pub mod slide {
174 wayland_protocol!(
175 "./plasma-wayland-protocols/src/protocols/slide.xml",
176 []
177 );
178}
179
180pub mod surface_extension {
181 wayland_protocol!(
182 "./plasma-wayland-protocols/src/protocols/surface-extension.xml",
183 []
184 );
185}
186
187pub mod text_input {
188 pub mod v1 {
189 wayland_protocol!(
190 "./plasma-wayland-protocols/src/protocols/text-input.xml",
191 []
192 );
193 }
194
195 pub mod v2 {
196 wayland_protocol!(
197 "./plasma-wayland-protocols/src/protocols/text-input-unstable-v2.xml",
198 []
199 );
200 }
201}
202
203pub mod wayland_eglstream_controller {
204 wayland_protocol!(
205 "./plasma-wayland-protocols/src/protocols/wayland-eglstream-controller.xml",
206 []
207 );
208}
209