> This is obviously not a great solution, and VNC in general feels like ancient technology
It's not obvious to me. This looks like software ageism. :)
There are at least 2 things that could be done to improve performance in the author's setup:
1. Use the --gpu flag which enables dmabuf capture and h264 encoding via vaapi.
2. Connect using a dedicated VNC client like TigerVNC. This reduces latency by roughly 50 ms.
That being said, noVNC has gained hardware decoding of h264 via WebCodecs since the writing of that blog post, so performance will have improved some. It's unlikely that the 50 ms latency has gone down, but it might be worth measuring again since browsers may opt to render video through a dedicated overlay plane that bypasses regular rendering. However, it would be silly not to synchronise frame presentation between overlays.
Well software has gradually improved and VNC hasn't so of course it's "software ageism". In any case if you were seriously not aware of VNC's shortcomings compared to modern alternatives:
1. Hilarious security. Passwords silently truncated to 8 characters, etc.
2. Inefficient graphics. Very laggy on all but the best connections. Just sending an H.264 video stream is better these days.
3. No seamless window mode.
4. I've never needed it tbh but I doubt it supports remote sharing of USB, printing, audio, GPU etc
As the author of wayvnc, I would say that I'm pretty well aware of what VNC can and cannot do. The RFB protocol (VNC) has improved over time like other protocols.
1. Wrong. There are many extensions that improve upon authentication and encryption.
2. This mostly depends on the implementation, and not necessarily the protocol and/or its extensions.
3. This would require deep integration with the window system on both sides, so I doubt that this is even a thing with RFB on Linux. There certainly aren't any wayland protocols to do this.
4. No one has ever asked me to implement any of that with the exception of audio, but there is also an extension for that.
a) connect to multiple vnc instances
b) display them in a single window
c) act as the "window manager" / "desktop environment" - doing this by enumerating menu entries from each instance and creating a composed whole. Enumerating the active applications from each instance and composing them into a single "task bar"/"window switcher" interface.
It's not obvious to me. This looks like software ageism. :)
There are at least 2 things that could be done to improve performance in the author's setup:
For more details on 2. see second paragraph in the following blog post https://andri.yngvason.is/measuring-latencies.htmlThat being said, noVNC has gained hardware decoding of h264 via WebCodecs since the writing of that blog post, so performance will have improved some. It's unlikely that the 50 ms latency has gone down, but it might be worth measuring again since browsers may opt to render video through a dedicated overlay plane that bypasses regular rendering. However, it would be silly not to synchronise frame presentation between overlays.