Хочется транслировать рабочий стол на экран большого Smart TV, или нужно подключиться к беспроводному монитору? Всё это с легкостью делается нажатием пару кнопок в системах Windows, или, например Android. А как дело обстоит в ОС Linux?
Для подключения, например ноутбука к телевизору по беспроводной сети используют современные технологии. Одна из технологий, которая даёт возможность провести такую трансляцию, называется Miracast («Миракаст»).
Miracast использует технологию Wi-Fi Direct для установления прямого беспроводного соединения между устройствами-источниками и устройствами-приёмниками. Устройство-источник кодирует аудио- и видеоданные и отправляет их по каналу Wi-Fi Direct на устройство-приёмник, которое затем декодирует и отображает контент.
Долгое время в системах семейства Linux, вопрос подключения Smart TV в качестве беспроводного дисплея топтался на месте. Конечно, делались подвижки в этом направлении, но всё это былот не стабильно и сложно в настройках для обычного пользователя. Но сегодня разработан и продолжает развиваться проект Gnome Network Displays, позволяющий применять технологию Miracast в операционных системах linux. GNOME Network Displays — приложение, которое реализует функциональность Wi-Fi Display (Miracast) для передачи контента рабочего стола на совместимые устройства.
Интересно отметить, что хотя данный проект разрабатывается для среды Gnome, он прекрасно работает и в других средах (KDE Plasma, Cinnamon, Mate и др.), а так же поддерживает и различные графические протоколы (X11, Wayland), с небольшой лишь разницей в функционале программы.
Итак, как реализовать это в linux?
Конечно, во многих дистрибутивах использующих Gnome можно установить готовый пакет прямо из репозитория набрав, например, в терминале:
sudo apt update
sudo apt install gnome-network-displays
Но в других дистрибутивах, в репозиториях нет этого пакета. Как быть?
Предлагаю установить gnome-network-displays из изходников, которые опубликованы на gitlab.gnome.org.
Для этого сначала скачаем исходный код с gitlab.gnome.org, набрав в терминале:
git clone https://gitlab.gnome.org/GNOME/gnome-network-displays.git
Затем необходимо перейти в директорию с исходниками:
cd gnome-network-displays
Чтобы собрать утилиту из исходников нам понадобится установить некоторые зависимости:
В системах на основе Ubuntu:
sudo apt install libgstrtspserver-1.0-dev libgstreamer-plugins-base1.0-dev libavahi-client-dev libavahi-gobject-dev libgtk-3-dev libnm-dev libpulse-dev libprotobuf-c-dev libjson-glib-dev libsoup-3.0-dev libportal-gtk4-dev libgtk-4-dev libadwaita-1-dev
В Fedora:
sudo dnf build-dep gnome-network-displays
Далее, необходимо установить meson.
Meson — кроссплатформенная консольная утилита, автоматизирующая процесс сборки программного обеспечения из исходного кода.
В системах на основе Ubuntu:
sudo apt install meson
В Fedora:
sudo dnf install meson
Далее производим сборку:
meson build
Переходим в папку сборки:
cd build
Устанавливаем утилиту:
meson install
Вот и всё, утилита gnome-network-manager установлена и готова к работе.
Запустить её можно либо через меню приложений, либо в терминале командой:
gnome-network-manager
После запуска программы мы увидим следующее окно, в зависимости от графического сервера и используемой среды:
Plasma X11:
Plasma Wayland:
Gnome:
Если при трансляции на беспроводной монитор или Smart TV не воспроизводится звук, то необходимо в настройках используемой среды переключить воспроизведение звука через GNOME Network Displays.
Вот и всё, ноутбук подключен к беспроводному дисплею.