input-capture: rebase Hyprland branch onto latest upstream - #11
Closed
ZeroSegFault wants to merge 5 commits into
Closed
input-capture: rebase Hyprland branch onto latest upstream#11ZeroSegFault wants to merge 5 commits into
ZeroSegFault wants to merge 5 commits into
Conversation
Co-authored-by: Gerben Meijer <infernix@gmail.com> Co-authored-by: Emerson Matos <emegson@live.com> Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* input-capture: suppress local keybinds while captured Captured keyboard events were still processed by the normal keybind path before the captured check suppressed delivery to local clients. This allowed compositor binds such as SUPER shortcuts to run locally while the same events were sent to the remote EIS client. Run keybind handling in a capture-only mode while input capture is active, skipping internal shortcuts and allowing only the releaseinputcapture escape hatch. * keybinds: add input capture exception flag Add bindx / allow_input_capture for keybinds that should remain available while input capture is active. This lets users define an explicit local escape bind that can release capture and optionally perform additional local actions. Expose the flag through Lua keybind options, hyprctl binds output, and Lua keybind metadata. * input-capture: validate barriers against logical monitor size Use the monitor logical size already computed by Hyprland when validating input-capture barriers instead of deriving it again from physical pixels and scale. Recomputing logical size can disagree with xdg-output geometry for fractional scales, causing valid portal barriers to be rejected with invalid_barrier protocol errors.
3l0w
force-pushed
the
feat/input-capture-impl
branch
from
June 9, 2026 23:47
801afa2 to
75e2ed0
Compare
3l0w
pushed a commit
that referenced
this pull request
Jun 9, 2026
A Framework Desktop crash on Hyprland 0.55.2 ended in the renderer
begin path after Aquamarine reported EGL_BAD_PARAMETER from
eglDupNativeFenceFDANDROID. Fix the failed export path because it
creates an EGLSyncKHR before trying to export a native fence fd.
ERR from aquamarine ]: [EGL] Command eglDupNativeFenceFDANDROID errored out with EGL_BAD_PARAMETER (0x12300): eglDupNativeFenceFDANDROID
The coredump stack was:
Stack trace of thread 5829:
#0 0x00007fafef025808 abort (libc.so.6 + 0x25808)
#1 0x0000561bbd621ee4 n/a (Hyprland + 0x3bbee4)
#2 0x00007fafef044e30 n/a (libc.so.6 + 0x44e30)
#3 0x00007fafef0ae9cb pthread_kill (libc.so.6 + 0xae9cb)
#4 0x00007fafef044d08 raise (libc.so.6 + 0x44d08)
#5 0x0000561bbdc2defa _ZN6Render2GL15CHyprOpenGLImpl5beginEN9Hyprutils6Memory14CSharedPointerI8CMonitorEERKNS2_4Math7CRegionENS4_INS_12IFramebufferEEESt8optionalIS8_E (Hyprland + 0x9c7efa)
#6 0x0000561bbdc17ea1 _ZN6Render2GL15CHyprGLRenderer19beginRenderInternalEN9Hyprutils6Memory14CSharedPointerI8CMonitorEERNS2_4Math7CRegionEb (Hyprland + 0x9b1ea1)
#7 0x0000561bbdc7b2f2 _ZN6Render13IHyprRenderer11beginRenderEN9Hyprutils6Memory14CSharedPointerI8CMonitorEERNS1_4Math7CRegionENS_11eRenderModeENS3_I9IHLBufferEENS3_INS_12IFramebufferEEEb (Hyprland + 0xa152f2)
#8 0x0000561bbdc81579 _ZN6Render13IHyprRenderer13renderMonitorEN9Hyprutils6Memory14CSharedPointerI8CMonitorEEb (Hyprland + 0xa1b579)
#9 0x0000561bbd84fc7c _ZN22CMonitorFrameScheduler7onFrameEv (Hyprland + 0x5e9c7c)
#10 0x00007faff0dcb0f9 _ZN9Hyprutils6Signal15CSignalListener12emitInternalEPv (libhyprutils.so.12 + 0x450f9)
#11 0x00007faff0dcb583 _ZN9Hyprutils6Signal11CSignalBase12emitInternalEPv (libhyprutils.so.12 + 0x45583)
hyprwm#12 0x00007faff0eac382 _ZN10Aquamarine8CBackend12dispatchIdleEv (libaquamarine.so.11 + 0x83382)
hyprwm#13 0x0000561bbd985c9a n/a (Hyprland + 0x71fc9a)
hyprwm#14 0x00007faff0c6ea62 wl_event_loop_dispatch (libwayland-server.so.0 + 0xaa62)
hyprwm#15 0x00007faff0c70d07 wl_display_run (libwayland-server.so.0 + 0xcd07)
hyprwm#16 0x0000561bbd9892a0 _ZN17CEventLoopManager9enterLoopEv (Hyprland + 0x7232a0)
hyprwm#17 0x0000561bbd4dad64 main (Hyprland + 0x274d64)
hyprwm#18 0x00007fafef027c4e n/a (libc.so.6 + 0x27c4e)
hyprwm#19 0x00007fafef027d8b __libc_start_main (libc.so.6 + 0x27d8b)
hyprwm#20 0x0000561bbd60be45 _start (Hyprland + 0x3a5e45)
Destroy the sync object before returning so repeated failures do not
leak EGL sync resources under an already resource-constrained GPU path.
Also log the EGL error value so future reports can distinguish this
path from other export failures.
Validated with:
cmake --build ./build --config Debug --target all -j$(nproc 2>/dev/null || getconf NPROCESSORS_CONF)
git diff --check
ctest --test-dir build --output-on-failure -j$(nproc 2>/dev/null || getconf NPROCESSORS_CONF)
make format-check
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rebases the input-capture Hyprland implementation onto current hyprwm/main.
Verified with: