Commit graph

14 commits

Author SHA1 Message Date
Peter Hutterer
ebe6261c89 README: mention seats in the high-level overview
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-10-26 12:02:45 +10:00
Peter Hutterer
96ba358984 doc: hook up doxygen
Build the doxygen API documentation. This is copied from libinput so it takes
over that style (which is more readable than the default doxygen style).
Some extra documentation is added too and all the immediate errors are fixed
in this commit but doxygen still warns about undocumented parameters.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-09-28 12:00:08 +10:00
Peter Hutterer
9db3e80cf4 README: fix an outdated repo link
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-09-28 11:08:14 +10:00
Peter Hutterer
a27276b4c5 Drop mentions of capability monitoring
The original idea here was that a libei client could request the Pointer
capability to be notified of any pointer movements, thus providing a simple
way to capture input for the synergy use-case.

This is a can of worms better left untouched. How input events are captured
and what information is available is quite specific to the display server, let
alone the triggers for when it needs to start and stop. To have that in libei
requires something like triggers ("start when pointer hits the edge") which
again opens a new can of worms. Which seat are we referring to? What is a
screen edge? How about shortcuts?

Receiving input events can be handled by libeis anyway: any EIS server is
capable of receiving input events by definition so the capability monitoring
could be solved by making the capturing compositor a libei client and the
other process an EIS server. i.e. the circle is closed with:

[compositor|libei] -> [EIS|synergy-client]
                               ||
	                  [synergy-server|libei] -> [EIS|compositor]

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-09-24 05:22:26 +00:00
Peter Hutterer
da1b31fa59 README: jot down some notes regarding XTest vs libei
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-08-28 13:11:39 +10:00
Peter Hutterer
3b90296237 tools/demo-server: add a uinput example handler
This is a basic example on how an EIS server can map to uinput, just to
illustrate that there's nothing in libeis that requires a display server
protocol (X or Wayland). All that's done here is we set up a keyboard and
pointer device and route the input events through that.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-08-27 12:52:50 +10:00
Peter Hutterer
f8a2729d7f README: add a graphic to illustrate how XWayland looks like
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-08-25 14:30:17 +10:00
Peter Hutterer
6b3d9255cf libei: implement org.freedesktop.portal.EmulatedInput support
The current implementation of that portal has two methods: EmulateInput to
authenticate and Connect to get the fd to the EIS implementation. The portal
implementation is in charge of finding EIS and restricting it if need be.

This uses libsystemd because we can integrate that with epoll and our
libei_dispatch() method. GDBus requires a glib mainloop, so it's not really
suitable here. Given how simple this is anyway, it's easy to just do the DBus
bits in the caller and then hand the fd to ei_setup_backend_fd().

A eis-fake-portal is provided for testing, this "portal" can use the custom
portal bus name and connect the eis-demo-client to the eis-demo-server.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-08-25 13:35:18 +10:00
Peter Hutterer
017260798b README: update the blurb about batched processing
Short story, we can't do it but it's simple enough to work around in the
caller so let them do it.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-08-12 14:16:09 +10:00
Peter Hutterer
78b0b99883 README: add a blurb about libreis
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-08-12 14:16:09 +10:00
Peter Hutterer
68fe48c02f README: make a note about the Xwayland PoC and short-lived apps
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-07-31 14:02:33 +10:00
Peter Hutterer
f228927b1f README: add some clarification for why libei
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-07-29 20:56:47 +10:00
Peter Hutterer
1fea949114 Update keymap handling
keymap handling is difficult because a lot of it relies on specific server
implementation details. So let's provide the API for a client to assign a
specific keymap to the device and for the server to accept/refuse/override
that keymap.

Where the server refuses, it's up to the client to figure out the rest.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-07-16 13:32:27 +10:00
Peter Hutterer
5e649f682a Initial commit
This is the outline of the API intended with a minimal compiler just to verify
there are no immediate parsing issues.
2020-07-16 10:17:09 +10:00