Wayland protocol extensions for Hyprland
  • Nix 57.1%
  • CMake 42.9%
Find a file
2026-10-23 16:51:06 +02:00
nix nix: separate overlay into file 2026-03-02 16:02:50 +02:00
protocols protocols: init workspace image source (#23) 2026-10-05 19:56:17 +02:00
.gitignore git: add .gitignore (#27) 2026-10-23 16:51:06 +02:00
CMakeLists.txt typo-fix: latin "C" instead of cyrillic "С" 2026-10-06 12:02:41 +03:00
flake.lock flake.lock: update 2026-03-02 16:02:57 +02:00
flake.nix nix: separate overlay into file 2026-03-02 16:02:50 +02:00
hyprland-protocols.pc.in meson: init 2022-12-05 18:34:08 +02:00
LICENSE
README.md README: add new protocol mention 2026-10-16 13:13:42 +02:00
VERSION VERSION: bump to 0.8.0 2026-10-16 13:14:00 +02:00

hyprland-protocols

Wayland protocol extensions for Hyprland.

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.

Since wayland-protocols is slow to change (on top of Hyprland not being allowed to contribute), we have to maintain 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.

Finished protocols

  • hyprland_toplevel_export -> for exporting toplevel buffers (aka. windows) for screensharing
  • hyprland_global_keybindings -> for managing global keybinds via D-Bus.
  • hyprland_focus_grab -> for grabbing input focus, primarily for complex context menus.
  • hyprland_ctm_control -> for managing CTMs of displays. See hyprsunset
  • hyprland_surface -> for setting hyprland specific wl_surface properties.
  • hyprland_lock_notify -> for notifying a client about the screen being locked and unlocked.
  • hyprland_toplevel_mapping -> for mapping toplevels to hyprland IDs.
  • hyprland_input_capture -> for EIS input capture.
  • hyprland_workspace_image_capture_source -> for screensharing a workspace.

Building

git clone https://github.com/hyprwm/hyprland-protocols && cd hyprland-protocols
cmake -S . -B ./build
cmake --build ./build

Contributing

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!

Fixing typos / adding explanations to existing protocols - welcome.

Adding functionality to protocols / new revisions - welcome, if accompanied with a reason and an impl.