Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hansroland/HsWlClient
WIP Haskell Wayland Client - Implement the Wayland protocoll
https://github.com/hansroland/HsWlClient
haskell wayland wayland-client wayland-protocol
Last synced: 2 months ago
JSON representation
WIP Haskell Wayland Client - Implement the Wayland protocoll
- Host: GitHub
- URL: https://github.com/hansroland/HsWlClient
- Owner: hansroland
- License: bsd-3-clause
- Created: 2024-01-17T16:36:43.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-02-17T16:04:46.000Z (10 months ago)
- Last Synced: 2024-07-30T21:02:01.216Z (5 months ago)
- Topics: haskell, wayland, wayland-client, wayland-protocol
- Language: Haskell
- Homepage:
- Size: 5.21 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# HsWl Haskell Wayland Client
This is a proof of concept: Write a simple Wayland client in Haskell
without calling the libwayland client library via FFI. The code implements directly the Wayland wire protocol.We have the following subdirectories:
## 0_Book
This is the original code of the [Wayland Book](https://github.com/rcalixte/wayland-book/blob/master/src/SUMMARY.md). At the time of writing, the [original version](https://wayland-book.com/) was no longer accessible.
#### Status
Currently this directory contains the code upto the chapter [example-code](https://github.com/rcalixte/wayland-book/blob/master/src/xdg-shell-basics/example-code.md)
#### TODO
Add additional requests from the folllowing chapters
## 1_FFI
This directory contains a more or less simple translation of the code in the `Book` directory from C to Haskell. I think the result is rather clumsy. Therefore I won't add additional code.
#### Status
At the moment, the code up to the extended example has been translated to Haskell.
## 2_Generator
This directory contains a generator application to generate Haskell functions for the Wayland request and event-handling functions from the defining xml files.
#### Status
The generator is in alpha state. It generates al the functions from the wayland.xml and xdg-shell.xml files.
Additional changes will be needed during the development of the client. The `enums` are still missing.
## 3_Client
This directory contains a extremly simple Haskell client for Wayland. This is currently the main focus of the development.
## Ressources
The used *.xml files:
* [wayland.xml](https://gitlab.freedesktop.org/wayland/wayland/-/blob/main/protocol/wayland.xml)
* [xdg-shell.xml](https://cgit.freedesktop.org/wayland/wayland-protocols/tree/stable/xdg-shell/xdg-shell.xml)