- Zig 96.4%
- Nix 3.6%
| src |
fix: rename remaining libw variables to glass
|
|
| .editorconfig | added .editorconfig file | |
| .gitattributes | Wayland window demo | |
| .gitignore | restructured the filetree, to make space for multiple libraries in the future | |
| build.zig | feat(events): Replaced dispatcher with queue, and basic keyboard input | |
| build.zig.zon | feat(events): Replaced dispatcher with queue, and basic keyboard input | |
| flake.lock | chore(nix): Updated flake | |
| flake.nix | Added event queue, and better event handling | |
| README.md | Update README.md | |
Well... that didn't go very far
I encountered a bug which I could not fix, moving windows with max and min sizes set causes rappid jitter.
I want this to work, but for now have just decided to use SDL for the project I am working on.
If you know a fix, feel free to let me know.
Glass
Glass is a library implementing a wayland client. My focus with Glass is to implement a modern and up to date client, supporting new features and versions of the protocols.
⚠️ Toy project (for now) ⚠️
I am doing this in my spare time when I'm not studying or working on other side projects, therefore don't expect major progress. This is currently just a toy project.
But even so if you want to contribute feel free to add an issue, or make a pull request!
TODO:
- Set a fixed aspect ratio
- Keyboard input
- Layout independent input
- Text input
- Resizing, fullscreen and maximize
- Pointer support
- wl_data_device and data_source support
- Decorations
Protocols
(I will not necesarily implement all of these, but these are the primary ones that interest me)
- fractional-scale
- xdg-output
- xdg-decoration
- pointer-constraints
- cursor-shape
- content-type
- tearing-control
- color-management (No widespread support)
- xdg-toplevel-drag (No widespread support)
Ideas:
- Make seperate wayland event queues for each window, when pointers, keyboards and other types of input are focuses on a window, they will send their events to that queue. This might be problematic if I get user facing events that can't be tied to a specific window, but as of right now, that is not the case.