Знаю, что в VNC по сети передаётся картинка, а в RDP — команды отрисовки тулкита. Но подробно в их структуре не разбирался. Если бы делал собственный протокол для удалённого стола для Linux/Wayland, основной принцип был бы примерно такой:
-
Для тулкитов пишутся плагины, запаковывающие команды отрисовки в передаваемые по сети пакеты. Также пишутся плагины/программы, способные эти команды интерпретировать и отрисовывать.
-
Графический сервер устанавливает соединение с клиентом и спрашивает, какие плагины у него поддерживаются/включены. У каждого локального приложения он тоже спрашивает, умеет ли оно отсылать команды по сети и какой ему для этого нужен плагин.
-
Приложения, для которых есть плагины, поддерживаемые клиентом, передают графическому серверу команды для отрисовки, которые сервер отправляет клиенту. Для остальных сервер сам отсылает клиенту сжатое видео.
Есть ли смысл что-то подобное пилить?
Пока что вывод в том, что скорее проще просто слать видео по сети.