Как удаленно управлять программой Wayland с помощью ssh аналогично DISPLAY=:0 под X11?

Вопрос или проблема

Я использую ноутбук и HTPC с Kubuntu Oracular 24.10. Ранее они работали на более старых версиях под X11, теперь я перешел на Wayland с новой версией.

Моя проблема: на протяжении многих лет я использовал ноутбук в качестве дистанционного управления для запуска видео на большом телевизионном экране под X11 на HTPC.

Обычно это выглядело так:

<local>  $ ssh remote.lan
<remote> $ DISPLAY=:0 mpv /location/of/video/file
...

К сожалению, в Wayland нет DISPLAY=:0.

Когда я пытаюсь запустить mpv /location/of/video/file через ssh, я получаю только ошибку:

        vd: Используется аппаратное декодирование (nvdec-copy).
   cplayer: AO: [pipewire] 44100Hz стерео 2ch floatp
   cplayer: VO: [gpu-next] 1280x720 nv12
vo/gpu-next/libplacebo: vk->CreateSwapchainKHR(...): VK_ERROR_UNKNOWN (../src/vulkan/swapchain.c:620)
vo/gpu-next/libplacebo: Не удалось (пере)создать swapchain!
               cplayer: Не удалось инициализировать видеопоток.
               cplayer: Видео: нет видео

и плеер просто воспроизводит аудио из файла.

(Возможно) релевантные части из mpv.conf:

###### Vulkan Linux, Windows (предпочтительно)
gpu-api=vulkan
...
hwdec=nvdec-copy                                # включить аппаратное декодирование, по умолчанию 'no'
vo=gpu-next                             # GPU-Next: https://github.com/mpv-player/mpv/wiki/GPU-Next-vs-GPU
...

Как я могу восстановить старое поведение X11 под Wayland?

Я хочу удаленно управлять через ssh программой на удаленном ПК, которая имеет выход AV на удаленной стороне, так что что-то вроде waypipe здесь не подходит.

И я не хочу возвращаться к X11, когда все переходят на Wayland.

Ответ или решение

Управление программами на Wayland из удаленной сессии SSH может быть непростой задачей, особенно если вы привыкли к удобству переменной окружения DISPLAY=:0 в X11. В то время как Wayland меняет парадигму работы с графическими приложениями, существуют способы взаимодействия с удаленными приложениями без необходимости возвращаться к X11.

Шаги для управления программами Wayland через SSH

  1. Использование WAYLAND_DISPLAY:
    В отличие от X11, Wayland использует концепцию WAYLAND_DISPLAY. Однако, просто выставление этой переменной окружения на удаленной системе не всегда может решить проблему. Прямое использование программ, таких как mpv, с переменной WAYLAND_DISPLAY не всегда будет работать, так как приложения, работающие на Wayland, могут требовать прямого доступа к средствам вывода на экран, так как они работают через системные протоколы.

  2. Настройка доступа через Wayland:
    Во-первых, необходимо убедиться, что ваша сессия Wayland настроена для работы с запрашиваемыми пользователями. Например, можно рассмотреть применение утилит weston или sway для создания сессий, которые позволяют более гибко управлять доступом.

  3. Использование socat или wayland-open:
    Рассмотрите возможность использования инструментов, таких как socat или wayland-open, которые могут перенаправлять вывод приложений. Эти утилиты могут помочь вам настроить соединение, которое позволяет запустить программу на удаленной машине с помощью SSH, переадресовав вывод на ваш локальный компьютер.

  4. Настройка PipeWire или VLC:
    Если вам нужно воспроизвести видео, можно попробовать использовать PipeWire. Установите на обеих машинах PipeWire, и настройте mpv на использование этого сервиса. Параметры конфигурации для работы с PipeWire могут включать использование определенных выводов, которые, возможно, помогут воспроизводить видео на выходе устройства.

  5. Версия mpv:
    Убедитесь, что у вас установлена последняя версия mpv, поддерживающая работу с Wayland. Возможно, ваш текущий конфиг модуля вывода (по умолчанию использующий Vulkan) не подходит для вашей конкретной ситуации и может быть несовместимым с вашим Wayland сервером.

Пример использования SSH с Wayland

При установке необходимых компонентов и выполнении настроек, попробуйте следующий пример для запуска mpv:

ssh remote.lan "WAYLAND_DISPLAY=wayland-0 mpv /location/of/video/file"

Обратите внимание, что wayland-0 — это пример имени сеанса, вам нужно будет проверить корректное значение на удаленном компьютере.

Заключение

Хотя управление программами на Wayland через SSH значительно отличается от работы с X11, возможны различные решения для настройки. Важно следить за обновлениями используемых вами приложений и поддерживать ваши системы на актуальной версии, чтобы минимизировать проблемы совместимости.

Также рекомендуется вести активное участие в сообществах пользователей Wayland для обмена опытом и поиска новых инструментов, которые могут облегчить вашу работу в будущем.

Оцените материал
Добавить комментарий

Капча загружается...