From 550c0579f516b5f408b6b2c426b3303c0ffcfd41 Mon Sep 17 00:00:00 2001 From: Donovan Glover Date: Sun, 14 Jul 2024 14:23:04 -0400 Subject: [PATCH] overlays: Patch hyprland to fix touch keyboards Fixes both Squeekboard and wvkbd, however the former still has more issues. --- assets/hyprland-fix-keyboard-focus.patch | 32 ++++++++++++++++++++++++ overlays/hyprland.nix | 7 ++++++ 2 files changed, 39 insertions(+) create mode 100644 assets/hyprland-fix-keyboard-focus.patch create mode 100644 overlays/hyprland.nix 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 + ]; + }); +}