Wayland (Русский)

Wayland - протокол для организации графического сервера. В отличие от X Window System, Wayland не имеет API отрисовки и соответственно ей не занимается. Подробнее о отличиях Wayland от Xorg в Википедии (англ.).

Состояние перевода: На этой странице представлен перевод статьи Wayland. Дата последней синхронизации: 16 февраля 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Серверы отображения, использующие протокол Wayland, называются композиторами, потому что они похожи на композитные менеджеры окон. Ниже указан список композиторов Wayland.

Для обратной совместимости с устаревшими приложениями X11 используется XWayland, который предоставляет X-сервер для Wayland.

Требования

Большинство Wayland-композиторов будут работать только на системах, использующих Kernel mode setting (Русский). Wayland не предоставляет графического окружения; для этого вам нужен композитор (смотрите следующий раздел) или среда рабочего стола, в составе которой есть композитор (например, GNOME или KDE).

Чтобы драйвер GPU и Wayland могли работать вместе, они должны поддерживать одинаковый буферный API. Есть два основных: GBM и EGLStreams.

Buffer APIПоддержка GPU драйверомПоддержка Wayland композиторами
GBMВсе, кроме NVIDIA < 495*Все
EGLStreamsNVIDIAGNOME, KDE, Weston (со сторонним патчем)
* NVIDIA ≥ 495 поддерживает одновременно EGLStreams и GBM.
Чтобы использовать GBM в качестве бэкенда, установите следующие переменные окружения:
GBM_BACKEND=nvidia-drm
__GLX_VENDOR_LIBRARY_NAME=nvidia

Композиторы

О разнице между фреймовыми и стековыми оконными менеджерами можно прочитать здесь: Оконный менеджер#Типы.

Фреймовые

https://github.com/project-repo/cagebreak || cagebreakAUR cagebreak-binAUR
  • Cardboard Композитор с прокруткой, вдохновленный PaperWM, на основе wlroots.
https://gitlab.com/cardboardwm/cardboard || cardboard-gitAUR
  • dwl dwm-подобный композитор Wayland на основе wlroots.
https://github.com/djpohly/dwl || dwlAUR
  • japokwm Динамический компоновщик листов Wayland, основанный на создании макетов на основе wlroots.
https://github.com/werererer/japokwm || japokwm-gitAUR
          • Vivarium С динамический плитками Wayland, использующий wlroots, с семантикой рабочего стола, вдохновленной xmonad (Русский).
          https://github.com/inclement/vivarium || vivarium-gitAUR
          • waymonad Композитор Wayland, вдохновленный xmonad, написанный на Haskell.
          https://github.com/waymonad/waymonad || not packaged? search in AUR

            Стековые

                          https://gitlab.gnome.org/GNOME/mutter || mutter
                              • wio Композитор на основе wlroots, призванный воспроизвести внешний вид рабочего стола Rio в Plan 9..
                              https://wio-project.org/[устаревшая ссылка 2022-09-23] || not packaged? search in AUR

                              Другие

                                    Некоторые из них имеют возможность использовать экранный менеджер. Проверьте .

                                    Менеджеры входа

                                    Ниже перечислены менеджеров дисплеем, который поддерживает работу Wayland. Столбец тип указывает, поддерживает ли экранный менеджер работу на Wayland или нет.

                                    Название Тип Описание
                                    GDM Запускается на Wayland Экранный менеджер рабочего окружения GNOME
                                    greetd Демон входа в систему Минималистичный менеджер входа, поддерживает консольный и графический режим
                                    LightDM Запускается на Xorg Кросс-десктопный Экранный менеджер
                                    Ly Запускается в консоли Консольный экранный менеджер, написаный на C
                                    SDDM Запускется на Xorg Экранный менеджер на основе QML.
                                    tbsm Запускается в консоли Простой запуск сеанса в CLI, написанный на чистом bash.

                                    Библиотеки графического интерфейса

                                    Смотрите подробности на официальном сайте

                                    GTK

                                    В пакетах и уже включена поддержка Wayland. GTK будет использовать Wayland по умолчанию, но вы можете изменить это, установив переменную окружения GDK_BACKEND=x11, чтобы использовать Xwayland.

                                    Qt

                                    Чтобы включить поддержку Wayland в Qt 5 или 6, установите пакет или и установите переменную окружения . Чтобы заставить приложение использовать Xwayland установите переменную окружения . Это может быть необходимо для некоторых проприетарных приложений, которые не используют системную реализацию Qt, к примеру zoomAUR.

                                    На некоторых композиторах, например sway, приложения Qt, работающие нативно, могут иметь неработающую функциональность. Например, KeepassXC не удастся свернуть в трей. Это можно решить, установив и прописав перед запуском приложения.

                                    Clutter

                                    Инструментарий Clutter имеет поддержку Wayland. Она включена в пакет .

                                    Чтобы запустить приложение Clutter на Wayland, установите .

                                    SDL2

                                    Для запуска SDL2 приложения на Wayland, выставите переменную окружения .

                                    Примечание: Большинство проприетарных игр включают в себя старые версии SDL, которые не поддерживают Wayland. Чтобы заставить приложение работать под Xwayland, используйте SDL_VIDEODRIVER=x11.

                                    GLFW

                                    Чтобы включить поддержку Wayland в GLFW, установите пакет (вместо ).

                                    GLEW

                                    Пакет в настоящее время по-прежнему не работает со многими приложениями на основе GLEW, поэтому единственный вариант — использовать с Xwayland. Смотрите .

                                    EFL

                                    EFL полностью поддерживает Wayland. Для запуска EFL в Wayland смотрите страницу проекта Wayland.

                                    winit

                                    Winit — это библиотека для работы с окнами в Rust. По умолчанию использует бэкенд Wayland, но его можно переопределить на Xwayland, изменив переменную окружения: WINIT_UNIX_BACKEND=x11.

                                    Electron

                                    Чтобы использовать -приложения через Wayland, создайте или отредактируйте файл чтобы добавить следующие параметры (один параметр на строку).

                                    Обратите внимание, что более старые версии Electron используют отдельные файлы electron-flags.conf. Например, если у вас установлен пакет electron12, вы можете захотеть сделать

                                     $ ln -s ~/.config/electron-flags.conf ~/.config/electron12-flags.conf

                                    из вашего каталога (или создать отдельный файл, если вы хотите, чтобы разные версии использовали разные настройки).

                                    Java

                                    OpenJDK — реализация платформы Java с открытым исходным кодом — ещё не имеет встроенной поддержки Wayland.

                                    До Wakefield, который является проектом, направленным на реализацию Wayland в OpenJDK, можно сейчас использовать XWayland.

                                    XWayland

                                    XWayland — это X-сервер, работающий под управлением Wayland. Он обеспечивает обратную совместимость для устаревших приложений X11.

                                    Для использования установите пакет .

                                    XWayland запускается через композитор, поэтому вам следует проверить совместимость с XWayland и инструкции по запуску XWayland с выбранным вами композитором.

                                    Драйвер Nvidia

                                    Обратите внимание, что включение DRM KMS требуется. Также обратите внимание на дополнительную информацию в официальной документации относительно вашего менеджера входа (например, GDM).

                                    Советы и рекомендации

                                    Консоль отладки Kwin Wayland

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

                                    $ qdbus org.kde.KWin /KWin org.kde.KWin.showDebugConsole

                                    Визуальное обнаружение приложений Xwayland

                                    Чтобы определить, запущено ли приложение через Xwayland, вы можете запустить .

                                    Наведите указатель мыши на окно приложения. Если красный курсор двигается, приложение работает через Xwayland.

                                    Или вы можете использовать xorg-xeyes и посмотреть, двигаются ли глаза при перемещении курсора по окну приложения.

                                    Переназначение клавиш клавиатуры

                                    Модель безопасности Wayland не позволяет другим программам, кроме композитора, захватывать необработанный ввод с клавиатуры. Некоторые композиторы поддерживают переназначение клавиш (например, через gnome-tweaks), но многие этого не умеют. Программы , , и могут обойти это, захватив клавиатуру перед композитором и передав ему измененный ввод с клавиатуры.

                                    Решение проблем

                                    Цветовая коррекция

                                    Читайте Backlight (Русский)#Цветовая коррекция.

                                    Графические артефакты в GNOME

                                    Пользователи gnome-shell могут испытывать проблемы при переходе с Xorg на Wayland. Чаще всего корнем проблемы является установленная переменная . Уберите её из .

                                    Cannot open display::0 в приложениях на основе Electron

                                    Приложения, написаные на Electron (например, Atom или Discord) не будут работать на Wayland. Установите переменную GDK_BACKEND=x11 для запуска на Xwayland.

                                    Удалённый доступ к ПК

                                    • (20200206) (используется в sway) имеет поддержку VNC через пакет .
                                    • (20180401) mutter теперь имеет поддержку удалённого рабочего стола через пакет . Читайте для деталей.
                                    • В 2013 году произошло слияние FreeRDP с Weston, включенное с помощью флага компиляции. Пакет weston включен, начиная с версии 6.0.0.
                                    • (или ) - прозрачный прокси для запуска Wayland приложений через оболочку SSH

                                    Захват ввода в играх, удалённом рабочем столе и окнах виртуальных машин

                                    В отличие от Xorg, Wayland не допускает эксклюзивного захвата устройства ввода, также известного как активный или явный захват (например, клавиатура, мышь), вместо этого он зависит от композитора Wayland для передачи сочетаний клавиш и ограничения мыши в окне приложения.

                                    Это изменение в захвате ввода нарушает поведение текущих приложений, что означает:

                                    • Комбинации горячих клавиш и модификаторы будут перехвачены композитором и не будут отправлены на удаленный рабочий стол и окна виртуальной машины.
                                    • Указатель мыши не будет ограничен окном приложения, что может вызвать эффект параллакса, когда положение указателя мыши внутри окна виртуальной машины или удаленного рабочего стола смещено от указателя мыши хоста.

                                    Wayland решает эту проблему, добавляя расширения протокола для Wayland и XWayland. Поддержка этих расширений необходима для добавления в композиторы Wayland. В случае нативных клиентов Wayland используемые наборы библиотеки виджетов (например, GTK, Qt) должны поддерживать эти расширения или сами приложения, если библиотеки виджетов не используется. В случае приложений Xorg не требуется никаких изменений в приложениях или библиотеки виджетов, поскольку достаточно поддержки XWayland.

                                    Эти расширения уже включены в и поддерживается в .

                                    Связанные расширения:

                                    Поддерживающие композиторы Wayland:

                                    • Mutter, композитор GNOME с версии 3.28
                                    • wlroots поддерживает относительный и ограниченый указатель

                                    Поддерживающие библиотеки виджетов:

                                    • GTK с версии 3.22.18.

                                    Темы GTK не работают

                                    Смотрите https://github.com/swaywm/sway/wiki/GTK-3-settings-on-Wayland.

                                    Смотрите также

                                    gollark: `GTech™ sudo backdoor OTP code: 2f45b69b43ca46e4d6058f62a31ba88b`
                                    gollark: `sudo -u lyricly make macron`
                                    gollark: Well, this is inconsistent.
                                    gollark: Is this compatible with Chess 1.3?
                                    gollark: What of BTreeMap™?
                                    This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.