pixelflux/wayland/mod.rs
1/*
2 * This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at https://mozilla.org/MPL/2.0/.
5 */
6
7//! Wayland backend: a headless Smithay compositor that stands in for a real display server.
8//!
9//! `frontend` owns the compositor state machine, protocol handlers, and input routing.
10//! `cursor` resolves Wayland cursor shapes to PNG images for the Python callback.
11
12/// Wayland cursor shape to PNG resolution and the cursor delivery worker.
13pub mod cursor;
14/// Data-control clipboard client bridging a nested app compositor's selection.
15pub mod dcclient;
16/// libei (EIS) input injection over a portal session's `ConnectToEIS` socket.
17pub mod eiclient;
18/// Fake-input client delivering relative pointer motion into a nested KWin session.
19pub mod ficlient;
20/// Headless Smithay compositor, protocol handlers, and input routing.
21pub mod frontend;
22/// Host-capture mode: capture/inject as a client of an external compositor.
23pub mod host;
24/// KDE client growing, removing, and arranging a nested KWin session's screens.
25pub mod kdeclient;
26/// Generated bindings for the KDE output protocols vendored under `protocols/`.
27pub mod kdeproto;
28/// Seat keymap ownership: base layout plus batched overlay keysym binding.
29pub mod keymap;
30/// Output-management client scaling a nested app compositor's screens.
31pub mod outclient;
32/// xdg-desktop-portal RemoteDesktop/ScreenCast session: streams and input for hosts without
33/// the privileged Wayland protocols.
34pub mod portal;
35/// PipeWire consumer turning a portal monitor stream into host frames.
36pub mod pwcapture;
37/// Virtual-keyboard client for typing into a nested app compositor's socket.
38pub mod vkclient;
39/// Shared plumbing for outbound Wayland client connections.
40pub mod wlclient;
41
42/// An enabled screen as clients see it: name, layout position, and the size of
43/// the mode it currently holds.
44pub type AppScreen = (String, i32, i32, i32, i32);