- Использование Linux с Wayland? Что нужно знать
- Что такое Wayland?
- Избегайте GTK+ 2 или Qt 4 приложений на Wayland
- Некоторые приложения несовместимы с Wayland
- Композитор – это необходимость
- Nvidia может не работать с Wayland
- Как использовать Wayland
- Некоторые дистрибутивы, которые предоставляют Wayland по умолчанию
- Wayland (Русский)
- Contents
- Требования
- Композиторы
- Менеджеры входа
- Библиотеки графического интерфейса
- GTK 3
- Clutter
- winit
- Решение проблем
- Цветовая коррекция
- Графические артефакты в GNOME
- Удалённый доступ к ПК
- Cannot open display::0 в Atom, Discord
- DATAENGINER
- Что такое дисплей-сервер в Linux?
- Отображение протоколов связи с сервером в Linux
- Wayland
- Почему мы все еще используем Xorg?
- Вывод
Использование Linux с Wayland? Что нужно знать
Многие аспекты Linux дистрибутивов постоянно меняются, но некоторые компоненты существуют уже десятилетия. Одним из таких компонентов является X Window System (известной прежде всего как X), не один год ведется работа по созданию замены, которая будет более быстрой и безопасной. Эта замена – Wayland.
Wayland уже давно появился и некоторые операционные системы на базе ядра Linux приняли его в качестве протокола дисплея по умолчанию. Если у вас еще нет, есть шанс, что это случится совсем скоро. Вот что значит использовать Linux с Wayland.
Что такое Wayland?
Архитектура X
Архитектура Wayland
Изображения предоставлены: Freedesktop.org
Wayland – это протокол, который сообщает программам, как они должны отображаться на вашем экране, основываясь на ваших действиях (таких как перемещение окна или нажатие кнопки). Технически, Wayland не является заменой X-сервера сам по себе – Wayland определяет только способ, которым такой дисплей-сервер должен взаимодействовать с этими приложениями.
Wayland полагается на стороннего разработчика, известного как композитор Wayland, который будет выполнять роль сервера дисплея. Примеры включают в себя Mutter и KWin (соответственно, рабочих столов GNOME и KDE Plasma). Wayland пытается упростить связь с сервером отображения, делая дальнейшую разработку проще и быстрее.
Х существует уже давно и неуклонно продолжает строится. Что касается Wayland, как и многие технологии “будущего”, у него есть некоторые недоработки, но наряду с дисплейными серверами, которые его реализуют, Wayland набирает свои обороты. На данный момент, есть несколько вещей, которые нужно знать, чтобы сделать его гораздо более плавным.
Избегайте GTK+ 2 или Qt 4 приложений на Wayland
Большинство приложений Linux, с которыми вы общаетесь ежедневно, написаны для одного из двух графических наборов инструментов: GTK+ и Qt. Эти платформы выступают в роли клиентов для сервера отображения, запрашивая объекты, которые будут отображаться на вашем экране. Тем не менее, эти запросы должны быть поняты в первую очередь и это зависит от набора инструментов.
В результате на рабочих столах Wayland могут работать только некоторые типы программ. Например, программы GTK+ 3 также могут работать правильно. То же самое может быть написано в Qt 5 (инструментарий, на котором основан рабочий стол Plasma).
При этом, если вы попытаетесь открыть, скажем, приложение Qt 4, у вас будет хороший шанс его запустить. Wayland делает это, запуская X-сервер за кулисами, чтобы слушать приложения, которые он не может понять. Однако это может привести к более высокому использованию памяти и немного более низким скоростям. Плюс, есть некоторые вещи, которые этот подход просто не может сделать в данный момент.
Некоторые приложения несовместимы с Wayland
Wayland и X разработаны по-разному, поэтому некоторые приложения, которые работают с X, просто не смогут работать на Wayland.
Рассмотрим приложения, изменяющие цвет экрана, такие как Redshift и f.lux. Эти приложения фильтруют синий свет от вашего дисплея в зависимости от времени суток. Они работают с использованием расширений X, таких как RandR, который предоставляет программам простой способ попросить X изменить отображение вашего экрана.
В то время как Wayland предоставляет средства для воссоздания этой способности, он зависит от каждого композитора Wayland, чтобы фактически реализовать её. Это означает, что хотя одна среда рабочего стола может поддерживать что-то вроде Redshift (например, функцию GNOME Night Light, показанную выше), эта функциональность не обязательно доступна в другом месте.
Вы можете столкнуться с подобными проблемами с программным обеспечением для записи экрана. В качестве функции безопасности сервер отображения Wayland блокирует приложения от записи экрана. Нельзя сказать, что запись экрана на Wayland принципиально невозможна. Разработчики работают над реализацией этой функции другим способом.
Композитор – это необходимость
Композиция – это метод, который помогает предотвратить разрыв экрана и артефакты. Это делается путем сохранения копий вашего дисплея в памяти, обычно с помощью вашей видеокарты. Таким образом, даже если приложения перестают отвечать на запросы, вашему серверу отображения все равно будет с чем работать. Компоновка также обеспечивает анимацию окон и тени.
Wayland разработан, чтобы сделать этот процесс намного более эффективным, чем X, сделав его обязательным. X имеет композитинг в качестве дополнительной функции, через расширение под названием Xcomposite. Но из-за того, как это реализовано, это занимает немного больше времени по сравнению с Wayland.
При этом, композитинг может привести к некоторым проблемам. Композиция приводит к немного более низкой производительности программ, таких как игры. В X большинство рабочих столов выключают композитинг, когда приложение работает в полноэкранном режиме. Но многим Wayland-композиторам все еще нужно это реализовать. Если вы заинтересованы в использовании графически увесистых программ на рабочем столе Wayland, это очень важно иметь в виду.
Nvidia может не работать с Wayland
Более конкретно, если вы используете собственный графический драйвер Nvidia, Wayland, вероятно, не будет работать для вас. Это связано с проблемой композитинга выше. Чтобы заставить этот процесс работать, ваш графический драйвер должен определенным образом общаться с компиляторами Wayland.
Видеокарты Intel и AMD не имеют этой проблемы, поскольку они используют ожидаемый стандарт, называемый GBM (Generic Buffer Management). Nvidia считает, что их способ общения с Wayland, называемый EGL, лучше и поэтому они придерживается этого.
Эта проблема может быть решена двумя способами: драйверы Nvidia реализуют GBM или композиторы Wayland реализуют EGLStreams. В настоящее время Nvidia, похоже, не заинтересована в поиске первого решения.
Как использовать Wayland
На данный момент большинство дистрибутивов Linux дают вам возможность установить Wayland, но по-прежнему используют X по умолчанию. Вы можете выполнить поиск Wayland в репозиториях вашего дистрибутива, выйти из рабочего стола и выбрать Wayland при повторном входе.
Fedora была одним из первых дистрибутивов, которые воспользовались этой тенденцией и уже несколько лет используют Wayland по умолчанию. Fedora известна тем, что использует новейшие технологии, которые могут предложить Linux дистрибутивы и в то же время, весьма удобна в использовании. Но Fedora не одна.
Некоторые дистрибутивы, которые предоставляют Wayland по умолчанию
- Fedora
- Debian
- openSUSE Tumbleweed
- PureOS
- Red Hat Enterprise Linux
- SUSE Enterprise Linux
Почему больше дистрибутивов не переключились? Многие ждут решения еще нескольких вопросов. Многие люди рассчитывают использовать собственный графический драйвер Nvidia, чтобы получить наиболее оптимальный игровой опыт. Некоторые хотят записать свой экран для создания подкастов или потокового видео в интернете.
Учитывая, что сервер отображения не является чем-то, что большинство из нас замечает, дистрибутивы не стремятся создавать такие заметные проблемы в обмен на выгоды, которые, хотя и реальны, существуют в основном за кулисами.
Источник
Wayland (Русский)
Wayland — протокол, который является более простой заменой Xorg. В отличие от Xorg, Wayland не имеет API отрисовки. и соответственно ей не занимается. Такие среды рабочего стола как GNOME и KDE уже поддерживают Wayland. Также существует Xwayland, который позволяет запускать приложения X11 в Wayland.
Contents
Требования
Большинство Wayland композиторов будут работать только на системах, используюших Kernel mode setting (Русский). Wayland не предоставляет графического окружения; для этого вам нужен композитор, такой как Sway или Weston.
Чтобы GPU драйвер и Wayland могли работать вместе — они должны поддерживать одинаковый буферный API. Есть два основных — GBM и EGLStreams.
Buffer API | Поддержка GPU драйвером | Поддержка Wayland композиторами |
---|---|---|
GBM | Все, кроме NVIDIA | Все |
EGLStreams | NVIDIA | GNOME, KDE |
Композиторы
Название | Тип | Описание |
---|---|---|
Mutter | Stacking | Смотрите GNOME#Starting. |
sway | Tiling | Sway i3-совместимый оконный менеджер для Wayland. GitHub |
Enlightenment | Stacking and tiling | Смотрите Enlightenment#Manually. Больше информации: [1] [2] |
KDE Kwin | Stacking | Смотрите KDE#Starting Plasma. |
Orbment | Tiling | orbment (раньше loliwm) заброшенный тайловый менеджер для Wayland. |
Velox | Tiling | Velox простой оконный менеджер базирующийся на swc. Имеет идеи dwm и xmonad. |
Orbital | Stacking | Orbital композитор и оболочка (скорее WM, чем DE) использующий Qt5 и Weston. |
Liri Shell | Stacking | Liri Shell оболочка для Liri, собрана с QtQuick и QtCompositor как композитор для Wayland. |
Maynard | (Unclear) | Maynard оболчка для Weston основаная на GTK. Не в разработке. [3][4] |
Motorcar | (Unclear) | Motorcar — композитор для использования VR с Wayland. |
Maze Compositor | Floating 3D | Maze Compositor 3D композитор в стиле старой FPS игры. Есть возможность перемещения |
Cage | Kiosk | Cage Wayland композитор, который отображает лишь одно окно на весь экран. |
Greenfield | Stacking | Greenfield Wayland в браузере |
Grefsen | Floating | Grefsen Qt/Wayland композитор предостовляющий минимальное DE. |
Waymonad | Tiling | Waymonad xmonad, но только на wayland |
wayfire | Stacking | Wayfire |
Weston | Floating | Weston |
dwl | Tiling | dwl dwm для Wayland |
Некоторые из них имеют возможность использовать экранный менеджер. Проверьте /usr/share/wayland-sessions/название_композитора.desktop .
Менеджеры входа
Ниже перечислены менеджеров дисплеем, который поддерживает работу Wayland. Столбец тип указывает, поддерживает ли экранный менеджер работу на Wayland или нет.
Название | Тип | Описание |
---|---|---|
GDM | Запускается на Wayland | Экранный менеджер рабочего окружения GNOME |
LightDM | Запускается на Xorg | Кросс-десктопный Экранный менеджер |
SDDM | Запускется на Xorg | Экранный менеджер на основе QML. |
Ly | Запускается в консоли | Консольный экранный менеджер, написаный на C |
greetd | Демон входа в систему | Минималистичный менеджер входа, поддерживает консольный и графический режим |
Библиотеки графического интерфейса
Смотрите подробности на официальном сайте
GTK 3
В пакете gtk3 уже включена поддержка Wayland. GTK будет использовать wayland по умолчанию, но вы можете изменить это, установив переменную окружения GDK_BACKEND=x11 , чтобы использовать Xwayland.
Чтобы включить поддержку Wayland в Qt 5, установите пакет qt5-wayland и установите переменную окружения QT_QPA_PLATFORM=wayland . Чтобы заставить приложение использовать Xwayland установите переменную окружения QT_QPA_PLATFORM=xcb . Это может быть необходимо для некоторых проприетарных приложений, которые не используют системную реализацию Qt, к примеру zoom AUR .
Clutter
Инструментарий Clutter имеет поддержку Wayland. Она включена в пакет clutter .
Для запуска SDL2 приложения на Wayland, выставите переменную окружения SDL_VIDEODRIVER=wayland .
Чтобы включить поддержку Wayland в GLFW, установите пакет glfw-wayland (вместо glfw-x11 ).
Чтобы включить поддержку Wayland в GLEW, установите пакет glew-wayland AUR (вместо glew ).
EFL полностью поддерживает Wayland. Для запуска EFL в Wayland смотрите страницу проекта Wayland.
winit
winit (библиотека для создания окон в Rust) имеет поддержку Wayland по умолчанию. Чтобы использовать Xwayland установите переменную WINIT_UNIX_BACKEND=x11 .
Решение проблем
Цветовая коррекция
Графические артефакты в GNOME
Пользователи gnome-shell могут испытывать проблемы при переходе с Xorg на Wayland. Чаще всего корнем проблемы является установленная переменная CLUTTER_PAINT=disable-clipped-redraws:disable-culling . Уберите её из /etc/environment .
Удалённый доступ к ПК
- (20200206) wlroots (используется в sway) имеет поддержку VNC через пакет wayvnc .
- (20180401) mutter теперь имеет поддержку удалённого рабочего стола через пакет gnome-remote-desktop . Читайте [5] для деталей.
- waypipe-gitAUR — прозрачный прокси для запуска Wayland приложений через оболочку SSH
Cannot open display::0 в Atom, Discord
Приложения, написаные на Electron не будут работать на Wayland. Установите переменную GDK_BACKEND=x11 для запуска на Xwayland.
Источник
DATAENGINER
В статьях, новостях и обсуждениях, связанных с Linux, вы часто встретите термин сервер отображения, Xorg, Wayland и т. д.
В этой статье я расскажу о серверах отображения в Linux.
Что такое дисплей-сервер в Linux?
Сервер отображения — это программа, которая отвечает за координацию ввода и вывода своих клиентов с остальной частью операционной системы, а также между оборудованием и операционной системой. По сути, благодаря серверу отображения вы можете использовать свой компьютер в графическом режиме (GUI). Без сервера отображения вы были бы ограничены только интерфейсом командной строки (TTY).
Сервер отображения обеспечивает основу для графической среды, так что вы можете использовать мышь и клавиатуру для взаимодействия с приложениями.
Сервер дисплея взаимодействует со своими клиентами по протоколу сервера дисплея, например X11. Сервер отображения является ключевым компонентом любого графического пользовательского интерфейса, особенно оконной системы.
Не путайте сервер дисплея с окружением рабочего стола. В окружении рабочего стола под ним используется дисплейный сервер.
Звучит знакомо, но не совсем понятно? Позволь мне объяснить.
Отображение протоколов связи с сервером в Linux
В Linux доступны три протокола отображения: X11, Wayland и Mir. Я дам вам краткое описание этих серверов отображения.
X11 (также называемый X) — это устаревший дисплей-сервер, который существует уже много лет. Это наиболее распространенный дисплей-сервер, используемый в дистрибутивах Linux.
Протокол связи X11 использует сервер отображения X.org Server . Он получает события ввода от драйверов устройств и делает их доступными для одного из своих клиентов.
Сервер отображения также получает данные от своих клиентов, он обрабатывает данные и выполняет композицию, а в Linux он передает данные одному из трех компонентов ядра — DRM , gem или драйверу KMS .
X.Org.Server — это сервер отображения, который использует вторую программу, оконный менеджер композитинга, для выполнения композитинга. Примеры: Mutter или KWin . GNOME использует Mutter.
Wayland
Согласно его веб-сайту, Wayland «задумана как более простая замена X, более простая в разработке и обслуживании».
И действительно, Wayland — это современный дисплей-сервер, который должен заменить устаревший X-дисплей.
Его принятие все еще продолжается. Ubuntu попыталась переключиться на Wayland в качестве сервера отображения по умолчанию с версией 17.10, но эксперимент встретил отрицательные отзывы.
Многие приложения с графическим интерфейсом и их фреймворки зависят от X-сервера. Эти приложения не работали должным образом на Wayland.
Это заставило Ubuntu оставаться на X в качестве сервера отображения по умолчанию. Он по-прежнему предоставляет возможность использовать Wayland, но больше не используется по умолчанию.
Подавляющее большинство дистрибутивов даже сегодня по умолчанию используют сервер отображения X.
Серверы отображения, которые применяют протокол сервера отображения Wayland, называются композиторами Wayland . Как и любой X11, композитор Wayland отвечает за обработку ввода и вывода для своих клиентов, но также выполняет композитинг — в отличие от X11.
Некоторые композиторы Wayland — это Weston , Mutter , KWin или Enlightenment .
Сервер отображения Mir поставляется с собственным протоколом сервера отображения Mir, который отличается от протокола, используемого в X11 и Wayland. Он был разработан Canonical в рамках разработки Unity и должен был стать предпочтительным сервером отображения для Ubuntu .
С 2017 года он был заменен сервером отображения Wayland для настольных версий Ubuntu, хотя разработка Mir продолжалась для приложений Интернета вещей (IoT).
Почему мы все еще используем Xorg?
Wayland, поскольку он относительно новый, еще не очень стабилен по сравнению с Xorg. Программы, которые действуют как клиенты, чтобы взаимодействовать с сервером отображения, должны знать, как это делать.
По этой причине многие программы могут не работать при использовании Wayland. Эксперимент Ubuntu по переключению на Wayland по умолчанию подтвердил это.
Вывод
Надеюсь, вы немного лучше понимаете концепцию сервера отображения в Linux. Я старался не вдаваться в технические детали, но мне не удалось полностью их избежать.
Источник