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 ] |
15 | mod protocol_macro; |
16 | |
17 | pub mod appmenu { |
18 | wayland_protocol!( |
19 | "./plasma-wayland-protocols/src/protocols/appmenu.xml" , |
20 | [] |
21 | ); |
22 | } |
23 | |
24 | pub mod blur { |
25 | wayland_protocol!( |
26 | "./plasma-wayland-protocols/src/protocols/blur.xml" , |
27 | [] |
28 | ); |
29 | } |
30 | |
31 | pub mod contrast { |
32 | wayland_protocol!( |
33 | "./plasma-wayland-protocols/src/protocols/contrast.xml" , |
34 | [] |
35 | ); |
36 | } |
37 | |
38 | pub mod dpms { |
39 | wayland_protocol!( |
40 | "./plasma-wayland-protocols/src/protocols/dpms.xml" , |
41 | [] |
42 | ); |
43 | } |
44 | |
45 | pub 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 | |
61 | pub mod idle { |
62 | wayland_protocol!( |
63 | "./plasma-wayland-protocols/src/protocols/idle.xml" , |
64 | [] |
65 | ); |
66 | } |
67 | |
68 | pub mod keystate { |
69 | wayland_protocol!( |
70 | "./plasma-wayland-protocols/src/protocols/keystate.xml" , |
71 | [] |
72 | ); |
73 | } |
74 | |
75 | pub 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 | |
91 | pub 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 | |
108 | pub 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 | |
117 | pub mod plasma_shell { |
118 | wayland_protocol!( |
119 | "./plasma-wayland-protocols/src/protocols/plasma-shell.xml" , |
120 | [] |
121 | ); |
122 | } |
123 | |
124 | pub mod plasma_virtual_desktop { |
125 | wayland_protocol!( |
126 | "./plasma-wayland-protocols/src/protocols/plasma-virtual-desktop.xml" , |
127 | [] |
128 | ); |
129 | } |
130 | |
131 | pub mod plasma_window_management { |
132 | wayland_protocol!( |
133 | "./plasma-wayland-protocols/src/protocols/plasma-window-management.xml" , |
134 | [] |
135 | ); |
136 | } |
137 | |
138 | pub mod remote_access { |
139 | wayland_protocol!( |
140 | "./plasma-wayland-protocols/src/protocols/remote-access.xml" , |
141 | [] |
142 | ); |
143 | } |
144 | |
145 | pub 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 | |
154 | pub mod server_decoration_palette { |
155 | wayland_protocol!( |
156 | "./plasma-wayland-protocols/src/protocols/server-decoration-palette.xml" , |
157 | [] |
158 | ); |
159 | } |
160 | |
161 | pub mod server_decoration { |
162 | wayland_protocol!( |
163 | "./plasma-wayland-protocols/src/protocols/server-decoration.xml" , |
164 | [] |
165 | ); |
166 | } |
167 | |
168 | pub mod shadow { |
169 | wayland_protocol!( |
170 | "./plasma-wayland-protocols/src/protocols/shadow.xml" , |
171 | [] |
172 | ); |
173 | } |
174 | |
175 | pub 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 | |
191 | pub 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 | |
207 | pub mod wayland_eglstream_controller { |
208 | wayland_protocol!( |
209 | "./plasma-wayland-protocols/src/protocols/wayland-eglstream-controller.xml" , |
210 | [] |
211 | ); |
212 | } |
213 | |