2022-11-25 19:55:11 +00:00
|
|
|
# hyprland-protocols
|
2025-12-08 19:25:53 +02:00
|
|
|
|
2022-11-25 19:58:53 +00:00
|
|
|
Wayland protocol extensions for Hyprland.
|
|
|
|
|
|
2025-01-02 00:32:08 +01:00
|
|
|
This repository exists in an effort to bridge the gap between Hyprland and KDE/Gnome's functionality,
|
|
|
|
|
as well as allow apps for some extra neat functionality under Hyprland.
|
2022-11-25 19:58:53 +00:00
|
|
|
|
2024-10-06 12:39:52 +01:00
|
|
|
Since `wayland-protocols` is slow to change (on top of Hyprland not being allowed to contribute), we have to maintain
|
2025-01-02 00:32:08 +01:00
|
|
|
a set of protocols Hyprland uses to plumb some things / add some useful features.
|
|
|
|
|
|
|
|
|
|
Some of the protocols here also do not belong in w-p, as they are specific to Hyprland.
|
2022-11-25 19:58:53 +00:00
|
|
|
|
2025-06-04 08:18:34 -06:00
|
|
|
## Finished protocols
|
2025-12-08 19:25:53 +02:00
|
|
|
|
2022-12-04 21:13:47 +00:00
|
|
|
- `hyprland_toplevel_export` -> for exporting toplevel buffers (aka. windows) for screensharing
|
2022-11-25 19:58:53 +00:00
|
|
|
- `hyprland_global_keybindings` -> for managing global keybinds via D-Bus.
|
2024-05-04 17:38:18 -07:00
|
|
|
- `hyprland_focus_grab` -> for grabbing input focus, primarily for complex context menus.
|
2024-10-08 00:49:49 +01:00
|
|
|
- `hyprland_ctm_control` -> for managing CTMs of displays. See [hyprsunset](https://github.com/hyprwm/hyprsunset)
|
2025-01-01 04:27:54 -08:00
|
|
|
- `hyprland_surface` -> for setting hyprland specific wl_surface properties.
|
2025-01-17 16:26:27 +01:00
|
|
|
- `hyprland_lock_notify` -> for notifying a client about the screen being locked and unlocked.
|
2025-04-02 00:13:57 +01:00
|
|
|
- `hyprland_toplevel_mapping` -> for mapping toplevels to hyprland IDs.
|
2025-10-04 21:37:11 +01:00
|
|
|
- `hyprland_input_capture` -> for EIS input capture.
|
2022-11-25 19:58:53 +00:00
|
|
|
|
2025-06-04 08:18:34 -06:00
|
|
|
## Building
|
2025-12-08 19:25:53 +02:00
|
|
|
|
2025-06-04 08:18:34 -06:00
|
|
|
```sh
|
2025-12-08 19:25:53 +02:00
|
|
|
git clone https://github.com/hyprwm/hyprland-protocols && cd hyprland-protocols
|
|
|
|
|
cmake -S . -B ./build
|
|
|
|
|
cmake --build ./build
|
2025-06-04 08:18:34 -06:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Contributing
|
2025-12-08 19:25:53 +02:00
|
|
|
|
2025-01-02 00:32:08 +01:00
|
|
|
Adding new protocols is *discouraged*, as most things you think of can already be done one way or another.
|
|
|
|
|
However, if the protocol has a good reason to be, and you have an impl ready, feel free to make a PR.
|
|
|
|
|
We're always up for a discussion to improve things!
|
2022-11-25 19:58:53 +00:00
|
|
|
|
|
|
|
|
Fixing typos / adding explanations to existing protocols - welcome.
|
|
|
|
|
|
|
|
|
|
Adding functionality to protocols / new revisions - welcome, if accompanied with a reason and an impl.
|