<div dir="ltr">My first reaction was that this is the wrong way to do it, but looking at it a bit I am thinking it really is correct.<div><br></div><div>This avoids the need for a "proxy compositor" running on the client machine that does the remote communication. That may be a big selling point since that compositor is a whole new service that must be set up and running. And you don't have to invent the whole protocol between the proxy and real compositor, or debug all the problems where the proxy and real one have different ideas about what is going on.</div><div><br></div><div>This also means that remote desktop to a Windows machine might mean a Wayland emulator running on the Windows machine, rather than an RDP emulator running on the client machine.</div><div><br></div><div>I am glad you noticed the problem with repeating keys. I think a fix is to have wayland produce a repeat event, rather than the client doing timeouts. Even if there is latency, at least the correct number of repeats would be delivered. All the other logic in handling of the keyboard can remain the same (ie it can send repeat events whether or not the key actually repeats), as the order of press/release and repeat would be preserved. I am still unclear why you cannot add keysym events to Wayland, but they are not necessary to fix this.</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 9, 2016 at 5:57 PM, Jason Ekstrand <span dir="ltr"><<a href="mailto:jason@jlekstrand.net" target="_blank">jason@jlekstrand.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span class="">On Tue, Feb 9, 2016 at 8:55 AM, Derek Foreman <span dir="ltr"><<a href="mailto:derekf@osg.samsung.com" target="_blank">derekf@osg.samsung.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I saw a presentation once where someone said that even the simplest<br>
implementation of wayland network transparency that just pushed the<br>
existing protocol over tcp/ip would still be better than X.<br>
<br>
Let's test that theory.<br>
Hint - application startup time is shockingly fast due to wayland's<br>
excellent protocol design, but my poor damage tracking and lack of<br>
compression hurts. Damage tracking is especially bad for anything<br>
that doesn't use wl_surface.damage_buffer() - so weston-terminal may<br>
be rough but terminology is much snappier.<br></blockquote><div><br></div></span><div>Kristian came up with a very nifty little image diffing algorithm based on a rolling hash that's used to provide compression for the screen recorder. (The actual video recorder, not screenshooter.) You might want to check that out.<br></div><div><div class="h5"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
To try it out (and open a gaping security hole because I've punted on<br>
kind of authentication), just add:<br>
wl_display_add_remote_socket(display, "foo");<br>
to weston right before load_modules in main. Use at your own risk.<br>
<br>
That's a literal "foo" because I haven't bothered defining how that<br>
name string changes the port.<br>
<br>
I've written up a short blog post over here:<br>
<a href="http://blogs.s-osg.org/wow-wayland-over-wire/" rel="noreferrer" target="_blank">http://blogs.s-osg.org/wow-wayland-over-wire/</a><br>
<br>
(It lists other decisions I haven't bothered to make for this trial<br>
run.)<br>
<br>
For those of you that want to view PDF files over the network, EFL's<br>
etui viewer comes highly recommended. ;)<br>
<br>
Derek Foreman (17):<br>
os-compatability: Allow creation of 0 byte anonymous files<br>
os: make set_cloexec_or_close private instead of static<br>
cursor: use wl_os_set_cloexec_or_close instead of local copy<br>
os-compatability: Remove cursor's private os compat stuff entirely<br>
client: Check remaining connection buffer status after each<br>
queue_event()<br>
protocol: Add fd_static type<br>
protocol: Use new fd_static type for keymaps<br>
os: Add wl_os_resize_file()<br>
scanner: Add the concept of "pre hooks"<br>
os: Add wl_os_read() and wl_os_write()<br>
os: Add a wl_os_socket_reuseaddr<br>
connections: Add remote sockets<br>
shm: properly resize remote buffers<br>
connection: support sending the contents of fds as bulk data<br>
connection: Use bulk transfers for fd_static on remote connections<br>
protocol: Add a wl_buffer.transmit<br>
protocol: Add hooks for network transparency<br>
<br>
Giulio Camuffo (1):<br>
shm: add getters for the fd and offset<br>
<br>
Makefile.am | 5 +-<br>
cursor/os-compatibility.c | 148 -------------------------<br>
cursor/os-compatibility.h | 34 ------<br>
cursor/wayland-cursor.c | 15 +--<br>
protocol/wayland.dtd | 1 +<br>
protocol/wayland.xml | 40 ++++---<br>
src/connection.c | 150 +++++++++++++++++++++++++-<br>
src/network-client.c | 269 ++++++++++++++++++++++++++++++++++++++++++++++<br>
src/scanner.c | 117 ++++++++++++++++++--<br>
src/wayland-client-core.h | 10 ++<br>
src/wayland-client.c | 120 +++++++++++++++++----<br>
src/wayland-os.c | 162 ++++++++++++++++++++++++++--<br>
src/wayland-os.h | 19 ++++<br>
src/wayland-private.h | 13 +++<br>
src/wayland-server-core.h | 13 +++<br>
src/wayland-server.c | 146 +++++++++++++++++++------<br>
src/wayland-shm.c | 63 ++++++++++-<br>
17 files changed, 1045 insertions(+), 280 deletions(-)<br>
delete mode 100644 cursor/os-compatibility.c<br>
delete mode 100644 cursor/os-compatibility.h<br>
create mode 100644 src/network-client.c<br>
<span><font color="#888888"><br>
--<br>
2.7.0<br>
<br>
_______________________________________________<br>
wayland-devel mailing list<br>
<a href="mailto:wayland-devel@lists.freedesktop.org" target="_blank">wayland-devel@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/wayland-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/wayland-devel</a><br>
</font></span></blockquote></div></div></div><br></div></div>
<br>_______________________________________________<br>
wayland-devel mailing list<br>
<a href="mailto:wayland-devel@lists.freedesktop.org">wayland-devel@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/wayland-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/wayland-devel</a><br>
<br></blockquote></div><br></div>