-
-
Notifications
You must be signed in to change notification settings - Fork 207
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
remote-desktop: add the ability to communicate via an EIS socket #762
Conversation
a6f208b
to
90d13aa
Compare
When connecting to EIS, this test can never be TRUE, considering that the value is set a few lines below.
25fa5ef
to
2622dd4
Compare
ftr, we have a working (though not yet complete) use-case in this input-leap PR |
2622dd4
to
fe6feaa
Compare
b77ebcb
to
16981d3
Compare
23f46c2
to
a83dc1a
Compare
Marking this as ready. There's no immediate libei dependency other than the socket being passed, so even if libei takes another few weeks for the official "it's stable" API this bit is ready. Squashed the commits together, there is no purpose keeping the various bugfixes we had in the git history after the merge. |
a83dc1a
to
04f34ee
Compare
ftr, libei is now declared stable. Not that it matters for this PR since we don't actually do anything with libei directly. |
2267eaa
to
eeae17a
Compare
eeae17a
to
4627418
Compare
4627418
to
d0dcf13
Compare
30s is apparently not enough on the runners.
This is intended as replacement for the NotifyFoo methods. libei provides a more flexible and powerful method of sending input events to the compositor. A new method ConnectToEIS requests a file descriptor from the compositor which can then be plugged into libei. Once established, the communication between compositor and application is direct, without the need to go through the portal process(es). To avoid ambiguities between NotifyFoo and input events sent via libei, any application that uses an EIS connection may not use the NotifyFoo methods. Co-authored-by: Olivier Fourdan <[email protected]>
d0dcf13
to
37ea85a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All lgtm, I think this is ready to land. Can consider tweaking the error message, but nut super urgent.
The check_notify() helper returns false for a number of reasons - session in the wrong state, using EIS when a Notify method is called, etc. Adjust the error message a bit to be more generic.
This is intended as replacement for the
NotifyFoo
methods. libeiprovides a more flexible and powerful method of sending input events to
the compositor.
A new method
ConnectToEIS
requests a file descriptor from the compositorwhich can then be plugged into libei.
Once established, the communication between compositor and application
is direct, without the need to go through the portal process(es).
To avoid ambiguities between NotifyFoo and input events sent via libei,
any application that uses an EIS connection cannot use the NotifyFoo
methods.
One notable comment: I decided to pass the EIS connection down through the
impl.portal
instead of pipewire's approach of having the portal connect directly. Unlike the single pipewire daemon, an EIS implementation can be provided by multiple processes, so I figured it's easier to pass this down as close as possible to the entity that knows who the EIS implementationEventually (and once libreis is ready) this will have the hooks to auto-set the app-id on the EIS connection as well though strictly speaking it's not necessary since the app-id is passed down to whoever needs to set up the socket anyway.
Noteworthy: there is no keysym event in libei at this point, so there's no equivalent to NotifyKeyboardKeysym
cc @jadahl