This project is a C# implementation of the Wayland protocol, a protocol that specifies the communication between a display server and its clients. The project is divided into two main parts: the Wayland Server and the Wayland Client.
The server is responsible for managing the display, handling client requests, and providing the necessary resources for the clients. The server's main class is Display, which is responsible for managing the Unix socket connections.
The client is responsible for communicating with the server, sending requests, and handling the responses. The client's main class is Connection, which is responsible for managing the socket connection with the server and handling the event queue.
The Simple.Client project is an example of how to use the Wayland Client to connect to a Wayland Server, bind to the display and registry, and handle global events and callbacks.
The project is built using .NET 8.0. To build the project, navigate to the project's root directory and run the following command:
dotnet buildTo run the Simple Client example, navigate to the examples/Simple.Client directory and run the following command:
dotnet runThe project depends on the Wayland.Protocol.Client project, which is included as a project reference in the Wayland.Client project file.
The project uses the XDG_RUNTIME_DIR and WAYLAND_DISPLAY environment variables to determine the Unix socket path for the Wayland server.
Contributions are welcome. Please submit a pull request with your changes.
This project is licensed under the MIT License.