Проблема удаленного доступа в Wayland
В экосистеме Wayland удаленный доступ (VNC, RDP) долгое время страдал от архитектурных ограничений. В отличие от X11, где можно было легко захватывать содержимое экрана, в Wayland изоляция клиентов и безопасность требуют более сложных решений. Существующие протоколы, такие как ext-transient-seat, позволяли создавать виртуальные устройства ввода (клавиатуру и мышь), но не имели аналога для вывода изображения.
Суть протокола ext-transient-output
Новый протокол ext-transient-output заполняет эту брешь. Он позволяет привилегированным клиентам (например, серверам VNC) динамически создавать независимые виртуальные выходы (wl_output). Ключевая особенность: эти виртуальные выходы не привязаны к конкретному аппаратному устройству. Когда клиент уничтожает объект, виртуальный выход автоматически удаляется из композитора.
Это решение интегрируется с протоколами захвата изображения, такими как ext_output_image_capture_source_manager_v1, позволяя удаленным клиентам получать чистый поток изображения, имитируя наличие физического монитора.
Технические детали и реализация
Протокол позиционируется как аналог ext-transient-seat, но для видеовыходов. Это создает полный стек для эмуляции удаленного рабочего места:
- Ввод:
ext-transient-seat+ виртуальные клавиатура/указатель. - Вывод: ext-transient-output для создания виртуального дисплея.
- Захват:
ext_image_copy_captureдля получения кадров.
На данный момент существует экспериментальная реализация для библиотеки композиторов wlroots (через черновой merge request). Это означает, что пользователи wlroots-компоновщиков (например, Sway, Hyprland) смогут протестировать функционал раньше, чем он попадет в основные стеки, такие как Mutter или KWin.
Почему это важно
Для энтузиастов Linux и корпоративных пользователей, использующих Wayland, это шаг к стабильной и нативной поддержке удаленных рабочих столов. Отсутствие привязки к железу позволяет запускать VNC-серверы даже на системах без подключенных мониторов (headless) или эмулировать несколько виртуальных экранов для тестирования и мультизадачности, не требуя аппаратных грабберов.
Источник: Phoronix ↗
