diff --git a/assets/hyprland-fix-keyboard-focus.patch b/assets/hyprland-fix-keyboard-focus.patch new file mode 100644 index 00000000..d34cb58f --- /dev/null +++ b/assets/hyprland-fix-keyboard-focus.patch @@ -0,0 +1,32 @@ +From 9c5dd59d4b1927b7d88e8e3c2e260eb01d95794b Mon Sep 17 00:00:00 2001 +From: Vaxry +Date: Sat, 29 Jun 2024 00:23:02 +0200 +Subject: [PATCH] input: fix capabilities enum types passed + +hyprland down to the seat protocol impl expects IHID capabilities, not WL_ ones + +ref #6702 #6196 +--- + src/managers/input/InputManager.cpp | 9 +-------- + 1 file changed, 1 insertion(+), 8 deletions(-) + +diff --git a/src/managers/input/InputManager.cpp b/src/managers/input/InputManager.cpp +index 81a46f97069..b362152053f 100644 +--- a/src/managers/input/InputManager.cpp ++++ b/src/managers/input/InputManager.cpp +@@ -1473,14 +1473,7 @@ void CInputManager::updateCapabilities() { + if (h.expired()) + continue; + +- auto cap = h->getCapabilities(); +- +- if (cap & HID_INPUT_CAPABILITY_KEYBOARD) +- caps |= WL_SEAT_CAPABILITY_KEYBOARD; +- if (cap & HID_INPUT_CAPABILITY_POINTER) +- caps |= WL_SEAT_CAPABILITY_POINTER; +- if (cap & HID_INPUT_CAPABILITY_TOUCH) +- caps |= WL_SEAT_CAPABILITY_TOUCH; ++ caps |= h->getCapabilities(); + } + + g_pSeatManager->updateCapabilities(caps); diff --git a/overlays/hyprland.nix b/overlays/hyprland.nix new file mode 100644 index 00000000..1f71ce77 --- /dev/null +++ b/overlays/hyprland.nix @@ -0,0 +1,7 @@ +final: prev: { + hyprland = prev.hyprland.overrideAttrs (oldAttrs: { + patches = (oldAttrs.patches or [ ]) ++ [ + ../assets/hyprland-fix-keyboard-focus.patch + ]; + }); +}