Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement new Input Capture protocol #7919

Draft
wants to merge 19 commits into
base: main
Choose a base branch
from

Conversation

3l0w
Copy link

@3l0w 3l0w commented Sep 26, 2024

Describe your PR, what does it fix/add?

This PR implements the input capture protocol defined in hyprwm/hyprland-protocols#8.
It also fixed a bug where wl_output::geometry x and y arguments where always 0.
The wl_output::geometry event is now sent when the output layout change (Help to follow x and y modifications).

Is there anything you want to mention? (unchecked code, possible bugs, found problems, breaking compatibility, etc.)

One bug that i found and i need to investigate, is when i capture every inputs,i can't shortcut into TTYs anymore.

Is it ready for merging, or does it need work?

It still need work, like sending the keyboard layout.

@@ -1,6 +1,7 @@
[submodule "subprojects/hyprland-protocols"]
path = subprojects/hyprland-protocols
url = https://github.com/hyprwm/hyprland-protocols
url = https://github.com/3l0w/hyprland-protocols
branch = feat/input-capture-impl
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

marking this one as a blocker until this is removed so we dont forget (don't resolve)

src/protocols/InputCapture.hpp Outdated Show resolved Hide resolved
src/protocols/core/Output.cpp Show resolved Hide resolved
CMakeLists.txt Show resolved Hide resolved
src/protocols/InputCapture.cpp Outdated Show resolved Hide resolved
src/protocols/InputCapture.cpp Outdated Show resolved Hide resolved
src/protocols/InputCapture.cpp Outdated Show resolved Hide resolved
@littleblack111

This comment was marked as off-topic.

@3l0w
Copy link
Author

3l0w commented Oct 7, 2024

just a general question. will this be released in the next release or will it be taking a while, considering it's marked as draft

Idk when it will be finished. if you need it, build it yourself

@littleblack111
Copy link
Contributor

With your fork, will kvm software such as input leap work out of the box?

@3l0w
Copy link
Author

3l0w commented Oct 8, 2024

Yes and i am it to test
But only the capture part (server) will work for now

@littleblack111
Copy link
Contributor

littleblack111 commented Oct 9, 2024

wow it was really troublesome compiling xdg-desktop-portal-hyprland. have to copy over the protocol to my /usr/share/hyprland-protocols(or clone it there), or i just removed the if line and forced it to get it from the repo.

but, it seems to just fail in input-leap:

[2024-10-09T19:43:32] ERROR: Failed to initialize InputCapture session, quitting: CreateSession failed

it was giving a error that it cant find the input-leap location before installing your hyprland & xdg-desktop-portal-hyprland fork. that error is gone. but still failed.

@3l0w
Copy link
Author

3l0w commented Oct 9, 2024

Its strange that you have to copy the protocol file over, did you clone the submodules ? (git submodule init && git submodule update)
Also i forget to mention that you need to copy the file hyprland.portal over to a location that the xdg-desktop-portal will pick it up (on my arch install its over /usr/share/xdg-desktop-portal/portals/hyprland.portal) and dont forget to restart the xdg-desktop-portal after that.
Without that xdg-desktop-portal will not pickup xdph when forwarding InputCapture requests.

@littleblack111
Copy link
Contributor

littleblack111 commented Oct 11, 2024

Its strange that you have to copy the protocol file over, did you clone the submodules ? (git submodule init && git submodule update)

its the cmakelist file, it tried to grab from /usr/share/hyprland-protocols if exist, which doesn't have your protocol as it's not merged in the hyprland-protocol repo, thus i made it only grab from the gh repo.
as seen in here:

if(HYPRLAND_PROTOS_FOUND)
  set(HYPRLAND_PROTOCOLS "${HYPRLAND_PROTOS_PREFIX}/share/hyprland-protocols")
else()
  set(HYPRLAND_PROTOCOLS "${CMAKE_SOURCE_DIR}/subprojects/hyprland-protocols")
endif()

i see, ill try that

EDIT: in the install(from README: cmake -DCMAKE_INSTALL_LIBEXECDIR=/usr/lib -DCMAKE_INSTALL_PREFIX=/usr -B build cmake --build build sudo cmake --install build) seem to already copy hyprland.portal over

HOLLY! wow, not sure why, but i re-builded it and reinstalled it. and it WORKS! ty!

A suggestion is that, disable this when mouse or keyboard is being capture/binded by programs(e.g. games that uses mouse to move camera)

After two days of use. those are some feedbacks:
first of all, i just wanna say ty, cuz it works!

this is what im using:
kvm software -> input leap
server -> arch linux(with hyprland)
client -> macbook

but i have the following issues:

  1. after a while, modifier keys such as super or ctrl will just be hold on the client, even if i press the button again. Until I relaunch/bind input capture, it will keep doing that
  2. sometimes it will just randomly stop and i have relaunch/bind input capture
  3. after going to macos, hyprland cursor wont disappear
  4. Going from hyprland -> macos does seem to inhert/respect where the cursor is on hyprland, but when im switching back from macOS -> Hyprland, the cursor seem to instead inherit where it left off(described above, it does not disappear)
  5. Clipboard sharing does not work
  6. sometimes hyprland reload when its focused on the client can make everything go to nowhere(supposed their in the client, but client doesnt change), even if the client disconnect, changing tty doesnt work. or moving mouse, can only press the power button or ssh in and soft-reboot etc(kind of like the xwayland crash where when if you're intereacting with ur computer during a hyprland reload, it might crash xwayland)

@3l0w
Copy link
Author

3l0w commented Oct 13, 2024

Thanks for the feedback tho i didn't encounter most of the issues you describe, but i will try to investigate it.
I am currently implementing a shortcut to force release the pointer and give it back to hyprland to prevent softlock.
The portal that i am implementing is not responsible for sharing the clipboard so there is really nothing i can do to make it work, it is a inputleap related issue.
I will try to implement something to make the cursor disappear, and also i need handle the cursor position send by the client when the capture is released maybe it will fix 4.
I am not yet sending modifier keys, i will impl it soon to see if it will fix 1 for you.

@littleblack111
Copy link
Contributor

alright. ty! Appreciate it!

@3l0w 3l0w force-pushed the feat/input-capture-impl branch from 29214bb to 189f615 Compare October 22, 2024 09:55
@3l0w
Copy link
Author

3l0w commented Oct 22, 2024

The latest commit added a new shortcut: releaseinputcapture
This shortcut force release the capturing of inputs in case of softlock.

Personally, I bind it like this:

bind = $mainMod SHIFT, escape, releaseinputcapture

@littleblack111
Copy link
Contributor

littleblack111 commented Oct 22, 2024

Nice! I'm currently on vacation without my laptop, so I'll try it when I get back

EDIT: Now i tried it, the new dispatcher works! ill try it when it locks down hyprland again and see if it works then

@littleblack111
Copy link
Contributor

A suggestion is that, disable this when mouse or keyboard is being capture/binded by programs(e.g. games that uses mouse to move camera)

if thats not possible then maybe add a dispatcher so user can script it to do so

@littleblack111
Copy link
Contributor

trim.44B51EBB-2916-40A4-BFBB-7EBA4AF42874.MOV

@3l0w
Copy link
Author

3l0w commented Oct 30, 2024

A suggestion is that, disable this when mouse or keyboard is being capture/binded by programs(e.g. games that uses mouse to move camera)

if thats not possible then maybe add a dispatcher so user can script it to do so

You mean if a 3d game has kinda the mouse captured and move it to a border the input is captured and should not ?
I think its kinda a major issue if its the case, i will look into it

@3l0w
Copy link
Author

3l0w commented Oct 30, 2024

trim.44B51EBB-2916-40A4-BFBB-7EBA4AF42874.MOV

If you have any steps to reproduce it it will be great

@littleblack111
Copy link
Contributor

littleblack111 commented Oct 30, 2024

A suggestion is that, disable this when mouse or keyboard is being capture/binded by programs(e.g. games that uses mouse to move camera)

if thats not possible then maybe add a dispatcher so user can script it to do so

You mean if a 3d game has kinda the mouse captured and move it to a border the input is captured and should not ? I think its kinda a major issue if its the case, i will look into it

yes, for example my macbook is left, and i moved my cursor in game(that i captured) to left, it will eventually go to my mac screen. It does this in X11 too, but hoping it gets fixed as its unintended behavior and is very annoying since i have to quit my kvm software(input leap) in order to play games properly

@3l0w
Copy link
Author

3l0w commented Oct 30, 2024

It is quite strange that you where able to still move the mouse in your primary computer.

@littleblack111
Copy link
Contributor

not sure, it just happend randomly, but before it happend, i was impl a new feature and was opening a nested Hyprland, but i wont try again today cuz it's pretty late and ill sleep

@littleblack111
Copy link
Contributor

A suggestion is that, disable this when mouse or keyboard is being capture/binded by programs(e.g. games that uses mouse to move camera)

if thats not possible then maybe add a dispatcher so user can script it to do so

You mean if a 3d game has kinda the mouse captured and move it to a border the input is captured and should not ? I think its kinda a major issue if its the case, i will look into it

related: https://www.reddit.com/r/kde/comments/u34lg0/wayland_gaming_and_mouse_capture/

@littleblack111
Copy link
Contributor

ok mb it's my patch's issue

@3l0w
Copy link
Author

3l0w commented Jan 7, 2025

Nah mb too, i need to send a frame after stop emulating i think

@littleblack111
Copy link
Contributor

littleblack111 commented Jan 7, 2025

trim.44B51EBB-2916-40A4-BFBB-7EBA4AF42874.MOV

If you have any steps to reproduce it it will be great

multiple input-leap instances. maybe we shall only accpet one as... im not sure what would be the use case of multiple instance of any kvm software requetsing multiple instnaces of the protocol

@littleblack111
Copy link
Contributor

heres the logs... doesn't seem unusual. input-leap:

[2025-01-07T20:34:19] INFO: SSL fingerprint generated.

[2025-01-07T20:34:19] INFO: starting server
[2025-01-07T20:34:19] INFO: config file: /tmp/InputLeap.oKWeOO
[2025-01-07T20:34:19] INFO: log level: INFO

[2025-01-07T20:34:19] NOTE: Logical output size: [email protected]
[2025-01-07T20:34:19] NOTE: Logical output size: [email protected]
[2025-01-07T20:34:19] ERROR: cannot listen for clients: cannot bind address: Address already in use

[2025-01-07T20:34:20] ERROR: cannot listen for clients: cannot bind address: Address already in use

[2025-01-07T20:34:21] ERROR: cannot listen for clients: cannot bind address: Address already in use

started server (IPv4/IPv6), waiting for clients

[2025-01-07T20:34:23] INFO: OpenSSL 3.4.0 22 Oct 2024

[2025-01-07T20:34:23] INFO: peer ssl certificate info: /CN=Barrier
[2025-01-07T20:34:23] NOTE: peer fingerprint (SHA1): 7C:03:E1:D7:40:65:35:F2:8E:71:F1:A5:63:92:32:D8:87:AE:2C:B3 (SHA256): 10:AF:7C:84:3E:91:5A:C7:73:65:1F:2D:BF:A1:93:BB:D4:1B:5D:8F:DA:AE:BC:49:B9:48:AD:54:C0:0A:43:B7
[2025-01-07T20:34:23] NOTE: fingerprint_db_path: /home/system/.config/InputLeap/SSL/Fingerprints/TrustedClients.txt
[2025-01-07T20:34:23] NOTE: Read 1 fingerprints from: /home/system/.config/InputLeap/SSL/Fingerprints/TrustedClients.txt
[2025-01-07T20:34:23] NOTE: Fingerprint matches trusted fingerprint
[2025-01-07T20:34:23] INFO: accepted secure socket
[2025-01-07T20:34:23] INFO: accepted secure socket
[2025-01-07T20:34:23] INFO: TLS_AES_256_GCM_SHA384         TLSv1.3 Kx=any      Au=any   Enc=AESGCM(256)            Mac=AEAD
[2025-01-07T20:34:23] NOTE: accepted client connection
[2025-01-07T20:34:23] NOTE: client "MacBookPro" has connected

[2025-01-07T20:34:28] INFO: switch from "ArchLinux" to "MacBookPro" at 1799,521
[2025-01-07T20:34:28] INFO: leaving screen

[2025-01-07T20:34:57] INFO: switch from "MacBookPro" to "ArchLinux" at 9,956
[2025-01-07T20:34:57] INFO: entering screen

[2025-01-07T20:38:52] INFO: switch from "ArchLinux" to "MacBookPro" at 1791,513
[2025-01-07T20:38:52] INFO: leaving screen

[2025-01-07T20:39:06] INFO: switch from "MacBookPro" to "ArchLinux" at 1,1211
[2025-01-07T20:39:06] INFO: entering screen

[2025-01-07T20:39:15] INFO: switch from "ArchLinux" to "MacBookPro" at 1799,491
[2025-01-07T20:39:15] INFO: leaving screen

[2025-01-07T20:39:34] INFO: switch from "MacBookPro" to "ArchLinux" at 6,1747
[2025-01-07T20:39:34] INFO: entering screen

[2025-01-07T20:40:45] INFO: switch from "ArchLinux" to "MacBookPro" at 1792,779
[2025-01-07T20:40:45] INFO: leaving screen

[2025-01-07T20:40:51] INFO: switch from "MacBookPro" to "ArchLinux" at 7,629
[2025-01-07T20:40:51] INFO: entering screen

[2025-01-07T20:41:14] INFO: switch from "ArchLinux" to "MacBookPro" at 1797,516
[2025-01-07T20:41:14] INFO: leaving screen

[2025-01-07T20:41:17] INFO: switch from "MacBookPro" to "ArchLinux" at 2,1238
[2025-01-07T20:41:17] INFO: entering screen

[2025-01-07T20:44:03] INFO: switch from "ArchLinux" to "MacBookPro" at 1799,752
[2025-01-07T20:44:03] INFO: leaving screen
[2025-01-07T20:44:03] INFO: switch from "MacBookPro" to "ArchLinux" at 1,1469
[2025-01-07T20:44:03] INFO: entering screen

[2025-01-07T20:44:07] INFO: switch from "ArchLinux" to "MacBookPro" at 1798,431
[2025-01-07T20:44:07] INFO: leaving screen

[2025-01-07T20:44:07] INFO: switch from "MacBookPro" to "ArchLinux" at 1,834
[2025-01-07T20:44:07] INFO: entering screen

[2025-01-07T20:47:58] INFO: switch from "ArchLinux" to "MacBookPro" at 1785,681
[2025-01-07T20:47:58] INFO: leaving screen

[2025-01-07T20:49:44] INFO: switch from "MacBookPro" to "ArchLinux" at 7,1878
[2025-01-07T20:49:44] INFO: entering screen

[2025-01-07T20:49:49] INFO: switch from "ArchLinux" to "MacBookPro" at 1799,483
[2025-01-07T20:49:49] INFO: leaving screen

[2025-01-07T20:50:02] INFO: switch from "MacBookPro" to "ArchLinux" at 1,1384
[2025-01-07T20:50:02] INFO: entering screen

[2025-01-07T20:50:32] INFO: switch from "ArchLinux" to "MacBookPro" at 1796,418
[2025-01-07T20:50:32] INFO: leaving screen

[2025-01-07T20:50:38] INFO: switch from "MacBookPro" to "ArchLinux" at 7,1310
[2025-01-07T20:50:38] INFO: entering screen

[2025-01-07T20:50:56] INFO: switch from "ArchLinux" to "MacBookPro" at 1793,466
[2025-01-07T20:50:56] INFO: leaving screen

[2025-01-07T20:50:58] INFO: switch from "MacBookPro" to "ArchLinux" at 10,1209
[2025-01-07T20:50:58] INFO: entering screen

[2025-01-07T20:51:08] INFO: switch from "ArchLinux" to "MacBookPro" at 1783,398
[2025-01-07T20:51:08] INFO: leaving screen

[2025-01-07T20:51:25] INFO: switch from "MacBookPro" to "ArchLinux" at 1,300
[2025-01-07T20:51:25] INFO: entering screen

[2025-01-07T20:51:27] INFO: switch from "ArchLinux" to "MacBookPro" at 1799,700
[2025-01-07T20:51:27] INFO: leaving screen

[2025-01-07T20:51:33] INFO: switch from "MacBookPro" to "ArchLinux" at 8,956
[2025-01-07T20:51:33] INFO: entering screen

[2025-01-07T20:51:34] INFO: switch from "ArchLinux" to "MacBookPro" at 1798,516
[2025-01-07T20:51:34] INFO: leaving screen

[2025-01-07T20:51:35] INFO: switch from "MacBookPro" to "ArchLinux" at 1,1370
[2025-01-07T20:51:35] INFO: entering screen

[2025-01-07T20:51:42] INFO: switch from "ArchLinux" to "MacBookPro" at 1794,444
[2025-01-07T20:51:42] INFO: leaving screen

[2025-01-07T20:53:56] INFO: switch from "MacBookPro" to "ArchLinux" at 9,754
[2025-01-07T20:53:56] INFO: entering screen

[2025-01-07T20:54:02] INFO: switch from "ArchLinux" to "MacBookPro" at 1790,777
[2025-01-07T20:54:02] INFO: leaving screen

[2025-01-07T20:54:07] INFO: switch from "MacBookPro" to "ArchLinux" at 1,1447
[2025-01-07T20:54:07] INFO: entering screen

[2025-01-07T20:55:01] INFO: switch from "ArchLinux" to "MacBookPro" at 1798,494
[2025-01-07T20:55:01] INFO: leaving screen

[2025-01-07T20:55:24] INFO: switch from "MacBookPro" to "ArchLinux" at 5,732
[2025-01-07T20:55:24] INFO: entering screen

[2025-01-07T20:55:24] INFO: switch from "ArchLinux" to "MacBookPro" at 1797,552
[2025-01-07T20:55:24] INFO: leaving screen

[2025-01-07T20:55:26] INFO: switch from "MacBookPro" to "ArchLinux" at 2,730
[2025-01-07T20:55:26] INFO: entering screen

[2025-01-07T20:56:26] INFO: switch from "ArchLinux" to "MacBookPro" at 1799,345
[2025-01-07T20:56:26] INFO: leaving screen

[2025-01-07T20:56:27] INFO: switch from "MacBookPro" to "ArchLinux" at 3,165
[2025-01-07T20:56:27] INFO: entering screen

[2025-01-07T20:56:29] INFO: switch from "ArchLinux" to "MacBookPro" at 1799,394
[2025-01-07T20:56:29] INFO: leaving screen

[2025-01-07T20:57:04] INFO: switch from "MacBookPro" to "ArchLinux" at 1,1192
[2025-01-07T20:57:04] INFO: entering screen

[2025-01-07T21:00:40] INFO: switch from "ArchLinux" to "MacBookPro" at 1799,410
[2025-01-07T21:00:40] INFO: leaving screen

[2025-01-07T21:01:12] INFO: switch from "MacBookPro" to "ArchLinux" at 4,996
[2025-01-07T21:01:12] INFO: entering screen

[2025-01-07T21:04:15] INFO: switch from "ArchLinux" to "MacBookPro" at 1795,328
[2025-01-07T21:04:15] INFO: leaving screen

[2025-01-07T21:04:19] INFO: switch from "MacBookPro" to "ArchLinux" at 4,1682
[2025-01-07T21:04:19] INFO: entering screen

[2025-01-07T21:04:20] INFO: switch from "ArchLinux" to "MacBookPro" at 1795,523
[2025-01-07T21:04:20] INFO: leaving screen

[2025-01-07T21:04:21] INFO: switch from "MacBookPro" to "ArchLinux" at 2,1057
[2025-01-07T21:04:21] INFO: entering screen

[2025-01-07T21:22:29] INFO: switch from "ArchLinux" to "MacBookPro" at 1797,189
[2025-01-07T21:22:29] INFO: leaving screen

[2025-01-07T21:22:38] INFO: switch from "MacBookPro" to "ArchLinux" at 1,769
[2025-01-07T21:22:38] INFO: entering screen

[2025-01-07T21:22:58] INFO: switch from "ArchLinux" to "MacBookPro" at 1796,571
[2025-01-07T21:22:58] INFO: leaving screen

[2025-01-07T21:23:23] INFO: switch from "MacBookPro" to "ArchLinux" at 5,1200
[2025-01-07T21:23:23] INFO: entering screen

[2025-01-07T21:23:41] INFO: switch from "ArchLinux" to "MacBookPro" at 1797,273
[2025-01-07T21:23:41] INFO: leaving screen

[2025-01-07T21:24:05] INFO: switch from "MacBookPro" to "ArchLinux" at 2,1168
[2025-01-07T21:24:05] INFO: entering screen

[2025-01-07T21:25:02] INFO: switch from "ArchLinux" to "MacBookPro" at 1794,426
[2025-01-07T21:25:02] INFO: leaving screen

[2025-01-07T21:25:14] INFO: switch from "MacBookPro" to "ArchLinux" at 15,1479
[2025-01-07T21:25:14] INFO: entering screen

[2025-01-07T21:26:00] INFO: switch from "ArchLinux" to "MacBookPro" at 1796,381
[2025-01-07T21:26:00] INFO: leaving screen

[2025-01-07T21:26:06] INFO: switch from "MacBookPro" to "ArchLinux" at 2,776
[2025-01-07T21:26:06] INFO: entering screen

[2025-01-07T21:26:07] INFO: switch from "ArchLinux" to "MacBookPro" at 1798,267
[2025-01-07T21:26:07] INFO: leaving screen

[2025-01-07T21:26:12] INFO: switch from "MacBookPro" to "ArchLinux" at 5,1325
[2025-01-07T21:26:12] INFO: entering screen

[2025-01-07T21:26:12] INFO: switch from "ArchLinux" to "MacBookPro" at 1799,33
[2025-01-07T21:26:12] INFO: leaving screen

[2025-01-07T21:26:12] INFO: switch from "MacBookPro" to "ArchLinux" at 3,752
[2025-01-07T21:26:12] INFO: entering screen

[2025-01-07T21:26:19] INFO: switch from "ArchLinux" to "MacBookPro" at 1797,417
[2025-01-07T21:26:19] INFO: leaving screen

[2025-01-07T21:26:27] INFO: switch from "MacBookPro" to "ArchLinux" at 4,1237
[2025-01-07T21:26:27] INFO: entering screen

[2025-01-07T21:26:43] INFO: switch from "ArchLinux" to "MacBookPro" at 1796,516
[2025-01-07T21:26:43] INFO: leaving screen

[2025-01-07T21:26:47] INFO: switch from "MacBookPro" to "ArchLinux" at 10,1015
[2025-01-07T21:26:47] INFO: entering screen

[2025-01-07T21:27:04] INFO: switch from "ArchLinux" to "MacBookPro" at 1797,440
[2025-01-07T21:27:04] INFO: leaving screen

[2025-01-07T21:27:05] INFO: switch from "MacBookPro" to "ArchLinux" at 1,1634
[2025-01-07T21:27:05] INFO: entering screen

[2025-01-07T21:27:05] INFO: switch from "ArchLinux" to "MacBookPro" at 1798,363
[2025-01-07T21:27:05] INFO: leaving screen

[2025-01-07T21:27:06] INFO: switch from "MacBookPro" to "ArchLinux" at 4,847
[2025-01-07T21:27:06] INFO: entering screen

[2025-01-07T21:27:30] INFO: switch from "ArchLinux" to "MacBookPro" at 1799,384
[2025-01-07T21:27:30] INFO: leaving screen

[2025-01-07T21:27:39] INFO: switch from "MacBookPro" to "ArchLinux" at 9,1639
[2025-01-07T21:27:39] INFO: entering screen

[2025-01-07T21:27:46] INFO: switch from "ArchLinux" to "MacBookPro" at 1795,383
[2025-01-07T21:27:46] INFO: leaving screen

[2025-01-07T21:27:49] INFO: switch from "MacBookPro" to "ArchLinux" at 7,1251
[2025-01-07T21:27:49] INFO: entering screen

[2025-01-07T21:29:52] INFO: switch from "ArchLinux" to "MacBookPro" at 1798,336
[2025-01-07T21:29:52] INFO: leaving screen

[2025-01-07T21:29:54] INFO: switch from "MacBookPro" to "ArchLinux" at 6,679
[2025-01-07T21:29:54] INFO: entering screen

[2025-01-07T21:30:08] INFO: switch from "ArchLinux" to "MacBookPro" at 1798,538
[2025-01-07T21:30:08] INFO: leaving screen

[2025-01-07T21:30:09] INFO: switch from "MacBookPro" to "ArchLinux" at 1,1519
[2025-01-07T21:30:09] INFO: entering screen

[2025-01-07T21:30:59] INFO: switch from "ArchLinux" to "MacBookPro" at 1798,373
[2025-01-07T21:30:59] INFO: leaving screen

[2025-01-07T21:31:00] INFO: switch from "MacBookPro" to "ArchLinux" at 1,228
[2025-01-07T21:31:00] INFO: entering screen

[2025-01-07T21:31:08] INFO: switch from "ArchLinux" to "MacBookPro" at 1792,646
[2025-01-07T21:31:08] INFO: leaving screen

[2025-01-07T21:31:14] INFO: switch from "MacBookPro" to "ArchLinux" at 1,527
[2025-01-07T21:31:14] INFO: entering screen

[2025-01-07T21:31:57] INFO: switch from "ArchLinux" to "MacBookPro" at 1784,569
[2025-01-07T21:31:57] INFO: leaving screen

[2025-01-07T21:32:05] INFO: switch from "MacBookPro" to "ArchLinux" at 13,982
[2025-01-07T21:32:05] INFO: entering screen

[2025-01-07T21:32:09] INFO: switch from "ArchLinux" to "MacBookPro" at 1796,574
[2025-01-07T21:32:09] INFO: leaving screen

[2025-01-07T21:32:51] INFO: switch from "MacBookPro" to "ArchLinux" at 1,1152
[2025-01-07T21:32:51] INFO: entering screen

[2025-01-07T21:32:52] INFO: switch from "ArchLinux" to "MacBookPro" at 1798,461
[2025-01-07T21:32:52] INFO: leaving screen

[2025-01-07T21:32:53] INFO: switch from "MacBookPro" to "ArchLinux" at 9,821
[2025-01-07T21:32:53] INFO: entering screen

[2025-01-07T21:33:21] INFO: switch from "ArchLinux" to "MacBookPro" at 1796,559
[2025-01-07T21:33:21] INFO: leaving screen

[2025-01-07T21:33:27] INFO: switch from "MacBookPro" to "ArchLinux" at 13,1758
[2025-01-07T21:33:27] INFO: entering screen

[2025-01-07T21:33:28] INFO: switch from "ArchLinux" to "MacBookPro" at 1798,521
[2025-01-07T21:33:28] INFO: leaving screen

[2025-01-07T21:33:32] INFO: switch from "MacBookPro" to "ArchLinux" at 3,1660
[2025-01-07T21:33:32] INFO: entering screen

[2025-01-07T21:59:12] INFO: switch from "ArchLinux" to "MacBookPro" at 1798,380
[2025-01-07T21:59:12] INFO: leaving screen

[2025-01-07T21:59:12] INFO: switch from "MacBookPro" to "ArchLinux" at 1,623
[2025-01-07T21:59:12] INFO: entering screen

[2025-01-07T22:05:20] INFO: switch from "ArchLinux" to "MacBookPro" at 1799,379
[2025-01-07T22:05:20] INFO: leaving screen

[2025-01-07T22:05:20] INFO: switch from "MacBookPro" to "ArchLinux" at 1,776
[2025-01-07T22:05:20] INFO: entering screen

[2025-01-07T22:15:50] INFO: switch from "ArchLinux" to "MacBookPro" at 1792,503
[2025-01-07T22:15:50] INFO: leaving screen

[2025-01-07T22:16:30] INFO: switch from "MacBookPro" to "ArchLinux" at 9,727
[2025-01-07T22:16:30] INFO: entering screen

[2025-01-07T22:16:54] INFO: switch from "ArchLinux" to "MacBookPro" at 1799,530
[2025-01-07T22:16:54] INFO: leaving screen
[2025-01-07T22:16:54] INFO: switch from "MacBookPro" to "ArchLinux" at 1,725
[2025-01-07T22:16:54] INFO: entering screen

[2025-01-07T22:26:37] INFO: switch from "ArchLinux" to "MacBookPro" at 1793,389
[2025-01-07T22:26:37] INFO: leaving screen

[2025-01-07T22:28:07] INFO: switch from "MacBookPro" to "ArchLinux" at 8,1839
[2025-01-07T22:28:07] INFO: entering screen

[2025-01-07T22:49:26] INFO: switch from "ArchLinux" to "MacBookPro" at 1793,476
[2025-01-07T22:49:26] INFO: leaving screen

[2025-01-07T22:49:39] INFO: switch from "MacBookPro" to "ArchLinux" at 8,1475
[2025-01-07T22:49:39] INFO: entering screen

xdph:

�[38;2;248;248;242m● xdg-desktop-portal-hyprland.service - Portal service (Hyprland implementation)�[0m
�[38;2;248;248;242m     Loaded: loaded (/usr/lib/systemd/user/xdg-desktop-portal-hyprland.service; static)�[0m
�[38;2;248;248;242m     Active: active (running) since Tue �[0m�[38;2;190;132;255m2025-01-07�[0m�[38;2;248;248;242m �[0m�[38;2;190;132;255m20:34:18�[0m�[38;2;248;248;242m HKT; 2h 19min ago�[0m
�[38;2;248;248;242m Invocation: 153c27b19fc844819f4813c29e68b935�[0m
�[38;2;248;248;242m   Main PID: �[0m�[38;2;190;132;255m214134�[0m�[38;2;248;248;242m (xdg-desktop-por)�[0m
�[38;2;248;248;242m      Tasks: �[0m�[38;2;190;132;255m3�[0m�[38;2;248;248;242m (limit: �[0m�[38;2;190;132;255m76419�[0m�[38;2;248;248;242m)�[0m
�[38;2;248;248;242m     Memory: �[0m�[38;2;190;132;255m1�[0m�[38;2;248;248;242m.4M (peak: �[0m�[38;2;190;132;255m3�[0m�[38;2;248;248;242m.1M)�[0m
�[38;2;248;248;242m        CPU: 5min �[0m�[38;2;190;132;255m29�[0m�[38;2;248;248;242m.076s�[0m
�[38;2;248;248;242m     CGroup: /user.slice/user-�[0m�[38;2;190;132;255m1000�[0m�[38;2;248;248;242m.slice/user@�[0m�[38;2;190;132;255m1000�[0m�[38;2;248;248;242m.service/session.slice/xdg-desktop-portal-hyprland.service�[0m
�[38;2;248;248;242m             └─�[0m�[38;2;190;132;255m214134�[0m�[38;2;248;248;242m /usr/lib/xdg-desktop-portal-hyprland�[0m

�[38;2;248;248;242mJan �[0m�[38;2;190;132;255m07�[0m�[38;2;248;248;242m �[0m�[38;2;190;132;255m22:28:07�[0m�[38;2;248;248;242m Arch-Linux xdg-desktop-portal-hyprland[�[0m�[38;2;190;132;255m214134�[0m�[38;2;248;248;242m]: [LOG] [input-capture] Input released for /org/freedesktop/portal/desktop/session/1_15557/portal1948336195�[0m
�[38;2;248;248;242mJan �[0m�[38;2;190;132;255m07�[0m�[38;2;248;248;242m �[0m�[38;2;190;132;255m22:28:07�[0m�[38;2;248;248;242m Arch-Linux xdg-desktop-portal-hyprland[�[0m�[38;2;190;132;255m214134�[0m�[38;2;248;248;242m]: [LOG] [EIS] Stop Emulating�[0m
�[38;2;248;248;242mJan �[0m�[38;2;190;132;255m07�[0m�[38;2;248;248;242m �[0m�[38;2;190;132;255m22:28:07�[0m�[38;2;248;248;242m Arch-Linux xdg-desktop-portal-hyprland[�[0m�[38;2;190;132;255m214134�[0m�[38;2;248;248;242m]: [LOG] [input-capture] Input captured for /org/freedesktop/portal/desktop/session/1_15557/portal1948336195 activationId: �[0m�[38;2;190;132;255m1805�[0m
�[38;2;248;248;242mJan �[0m�[38;2;190;132;255m07�[0m�[38;2;248;248;242m �[0m�[38;2;190;132;255m22:28:07�[0m�[38;2;248;248;242m Arch-Linux xdg-desktop-portal-hyprland[�[0m�[38;2;190;132;255m214134�[0m�[38;2;248;248;242m]: [LOG] [EIS] Start Emulating�[0m
�[38;2;248;248;242mJan �[0m�[38;2;190;132;255m07�[0m�[38;2;248;248;242m �[0m�[38;2;190;132;255m22:28:07�[0m�[38;2;248;248;242m Arch-Linux xdg-desktop-portal-hyprland[�[0m�[38;2;190;132;255m214134�[0m�[38;2;248;248;242m]: [LOG] [input-capture] New Release request:�[0m
�[38;2;248;248;242mJan �[0m�[38;2;190;132;255m07�[0m�[38;2;248;248;242m �[0m�[38;2;190;132;255m22:28:07�[0m�[38;2;248;248;242m Arch-Linux xdg-desktop-portal-hyprland[�[0m�[38;2;190;132;255m214134�[0m�[38;2;248;248;242m]: [LOG] [input-capture]  | /org/freedesktop/portal/desktop/session/1_15557/portal1948336195�[0m
�[38;2;248;248;242mJan �[0m�[38;2;190;132;255m07�[0m�[38;2;248;248;242m �[0m�[38;2;190;132;255m22:28:07�[0m�[38;2;248;248;242m Arch-Linux xdg-desktop-portal-hyprland[�[0m�[38;2;190;132;255m214134�[0m�[38;2;248;248;242m]: [LOG] [input-capture]  | appid: transient�[0m
�[38;2;248;248;242mJan �[0m�[38;2;190;132;255m07�[0m�[38;2;248;248;242m �[0m�[38;2;190;132;255m22:28:07�[0m�[38;2;248;248;242m Arch-Linux xdg-desktop-portal-hyprland[�[0m�[38;2;190;132;255m214134�[0m�[38;2;248;248;242m]: [LOG] [input-capture] Input released for /org/freedesktop/portal/desktop/session/1_15557/portal1948336195�[0m
�[38;2;248;248;242mJan �[0m�[38;2;190;132;255m07�[0m�[38;2;248;248;242m �[0m�[38;2;190;132;255m22:28:07�[0m�[38;2;248;248;242m Arch-Linux xdg-desktop-portal-hyprland[�[0m�[38;2;190;132;255m214134�[0m�[38;2;248;248;242m]: [LOG] [EIS] Stop Emulating�[0m
�[38;2;248;248;242mJan �[0m�[38;2;190;132;255m07�[0m�[38;2;248;248;242m �[0m�[38;2;190;132;255m22:50:37�[0m�[38;2;248;248;242m Arch-Linux xdg-desktop-portal-hyprland[�[0m�[38;2;190;132;255m214134�[0m�[38;2;248;248;242m]: [LOG] [input-capture] Input captured for /org/freedesktop/portal/desktop/session/1_15557/portal194file descriptor expected, object (�[0m�[38;2;190;132;255m10�[0m�[38;2;248;248;242m), message keymap(uhu)�[0m

@3l0w 3l0w force-pushed the feat/input-capture-impl branch from 50fb494 to f0a29c2 Compare January 9, 2025 12:23
@3l0w
Copy link
Author

3l0w commented Jan 9, 2025

trim.44B51EBB-2916-40A4-BFBB-7EBA4AF42874.MOV

If you have any steps to reproduce it it will be great

multiple input-leap instances. maybe we shall only accpet one as... im not sure what would be the use case of multiple instance of any kvm software requetsing multiple instnaces of the protocol

Nothing is said about that in the specs, maybe i will limit to one app being in the enable state

@3l0w
Copy link
Author

3l0w commented Jan 9, 2025

I can't understand in your logs when it started to work again. Do you have smth like the time when i doesn't work anymore ?

@littleblack111
Copy link
Contributor

I can't understand in your logs when it started to work again. Do you have smth like the time when i doesn't work anymore ?

ya, it just randomly stopped working but log didn't say anything about that

@littleblack111
Copy link
Contributor

hmm... all of a sudden now the keybinds will trigger on the host even if mouse is captured on the client...

@3l0w
Copy link
Author

3l0w commented Jan 9, 2025

I rebased maybe i broke something

@3l0w
Copy link
Author

3l0w commented Jan 9, 2025

Okay i found why, i am pushing a fix

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants