Feat: Add support for `wlr-gamma-control-v1`
This closes #50
This PR implements the `wlr-gamma-control-v1` protocol, enabling support for screen color temperature adjustment tools like Gammastep or wlsunset.
This initially started as a task to close the missing protocol support issue, but required a specific workaround for the DRM backend implementation.
### Changes:
- Protocol Handler: Added `src/handlers/gamma_control.rs` to handle client requests for gamma size and setting gamma ramps.
- Backend Support: Updated UdevData in `src/backend/udev.rs` to handle atomic commits for `GAMMA_LUT`, `DEGAMMA_LUT`, and `CTM`.
### Status
After testing with gammastep, I can confirm it successfully works with udev backend.
**However**, this can't be implemented for winit and headless backends. Why ? Because the protocol only works if your backend actually exposes a **real** Wayland output that supports gamma LUT (KMS/DRM) or at least something that pretends to. Therefore, this is only possible with udev.
### TODO
- [x] Make this actually works
- [x] Cleanup
合并状态:未合并 1 条评论