Как проверить, используете ли вы Wayland или Xorg?
В мире настольных Linux происходит технический переход.
Большинство основных дистрибутивов начали по умолчанию переходить на сервер отображения Wayland.
Но не все устаревшие компоненты совместимы с новым Wayland. Они работают только со старым добрым сервером отображения X или Xorg.
Итак, если у вас возникли проблемы с вашей системой Linux, было бы разумно проверить, не связана ли проблема с сервером отображения.
Позвольте мне показать вам, как проверить, какой сервер отображения вы используете.
Проверьте, используется ли Wayland или Xorg.
Самый простой и, пожалуй, самый надежный способ — использовать в терминале следующую команду:
echo $XDG_SESSION_TYPE
Если вы используете Wayland, на выходе вы должны получить «wayland»:
abhishek@linux-console:~$ echo $XDG_SESSION_TYPE wayland

Если вы используете xorg (сервер отображения X), на выходе вы должны получить x11.
abhishek@linux-console:~$ echo $XDG_SESSION_TYPE x11

- Проверьте значение переменной $XDG_SESSION_TYPE в терминале.
- Для Wayland вы получаете Wayland, а для Xorg — выходные данные.
Нелепый, но интересный способ узнать, используете ли вы Wayland в GNOME.
Я нашел его на субреддите Fedora. Если вы используете GNOME, нажмите Alt+F2, введите r в диалоговом окне и нажмите Enter. Обычно он перезапускает оболочку GNOME. Но в Вейланде это не сработает. Отобразится сообщение «Перезапуск недоступен на Wayland».

В Вейланд или нет?
GNOME уделил большое внимание Wayland, чтобы обеспечить современный рабочий стол. Ubuntu, Fedora и многие другие дистрибутивы по умолчанию перешли на Wayland, но многие приложения отстают в поддержке Wayland.
Многие программы для записи экрана и создания снимков экрана не работают с Wayland. Иногда переключение обратно на Xorg является единственным вариантом. К счастью, переключаться между Xorg и Wayland довольно легко. Просто выйдите из системы и щелкните профиль пользователя, а затем щелкните значок шестеренки внизу, чтобы выбрать нужный сеанс.
Лично я предлагаю придерживаться того, что предоставляет ваш дистрибутив. Переключайтесь на другой только тогда, когда это необходимо.
Все права защищены. © Linux-Console.net • 2019-2024
Как проверить, какой графический сервер используется Wayland или Xorg?

Xorg и Wayland – основные серверы отображения в Linux. Xorg, (X Display Server) – это старый сервер отображения, который уже давно используется в большинстве систем Linux. Это самый распространенный сервер отображения и необходимое условие для большинства GUI -приложений.
Wayland – это более новый сервер отображения, который предназначен для замены Xorg Server. На самом деле, Wayland включен по умолчанию в Ubuntu 21.04. Однако Ubuntu вернулась к Xorg из-за большого количества негативных отзывов. В настоящее время Xorg остается сервером отображения по умолчанию в большинстве дистрибутивов.
В этой статье мы попытаемся выяснить, как можно проверить, используете ли вы Wayland или Xorg в вашей системе Linux.
1. Проверка сервера отображения Wayland или Xorg в Linux
Самым простым способом проверки сервера отображения, на котором вы сейчас работаете, является запрос переменной окружения XDG _SESSION_TYPE с помощью команды echo, как показано на рисунке.
echo $XDG_SESSION_TYPE
Если вы используете Wayland, вы получите wayland в качестве вывода.
Если Xorg является вашим сервером отображения, вы получите x11 в качестве вывода.
Если вы подключены к удаленной системе или серверу через SSH -клиент, вы получите tty.
echo $XDG_SESSION_TYPE tty
2. Проверка сервера отображения Wayland или Xorg с помощью команды loginctl
Команда loginctl – это утилита управления системой, которая является частью набора инструментов systemd. Она выполняет различные задачи, включая просмотр вошедших в систему пользователей, управление пользовательскими сессиями, блокировку и разблокировку экрана и т.д.
Команда также может показать сервер отображения, который вы используете.
loginctl show-session $(loginctl | grep $(whoami) | awk '') -p Type
Если вы используете сервер отображения Xorg, вы получите следующий результат.
Type=x11
Для Wayland, следующий результат будет выведен на ваш экран.
Type=wayland
И наконец, если вы подключаетесь удаленно с помощью клиента SSH , вы получите.
Type=tty

Зарубин Иван Эксперт по Linux и Windows
Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.
Похожие статьи

Новая версия KDE Plasma 5.27.4, которая улучшает работу Plasma Wayland на графических процессорах NVIDIA иисправляет множество ошибок
Как узнать Wayland или Xorg
Многие популярные дистрибутивы Linux уже используют Wayland по умолчанию. Так Ubuntu перешла на Wayland по умолчанию начиная с 22.04, Fedora использует Wayland уже давно. Недавно к списку этих дистрибутивов присоединилась ещё и SUSE и Debian. Однако у Wayland всё ещё есть проблемы. Многие старые программы не поддерживаются или работают плохо.
Если у вас возникли какие-либо проблемы при работе с старыми программами, нужно проверить какой дисплейный сервер вы используете. Есть несколько способов сделать это. В этой статье мы рассмотрим как узнать Wayland или Xorg в терминале.
Как посмотреть Wayland или Xorg
Самый простой способ посмотреть какой дисплейный сервер используется в данный момент, это вывести содержимое переменной окружения XDG_SESSION_TYPE. Если сейчас используется Wayland, то будет выведено wayland, а при использовании Xorg — X11:

Кроме того, вы можете узнать тип текущей сессии с помощью loginctl. Посмотрите список сессий запустив утилиту с командой list-sessions или без параметров:

Для того чтобы вывести тип конкретной сессии передайте её идентификатор в команду show-session. Например, если номер сессии 3:
loginctl show-session 3 -p Type

Или можно сделать всё одной командой, получив идентификатор сессии из переменной окружения XDG_SESSION_ID:
loginctl show-session «$XDG_SESSION_ID» -p Type
В Ubuntu эту информацию можно посмотреть и в графическом интерфейсе. Откройте Настройки, перейдите в раздел О системе и найдите пункт Оконный интерфейс. Здесь будет отображено название дисплейного сервера:

Как посмотреть какие приложения используют XWayland
Для того чтобы старые приложения X11 могли работать в Wayland окружении существует прослойка совместимости XWayland. Если вы используете Wayland, то возможно, у вас возникнет необходимость узнать какие приложения используют эту прослойку. Для этого можно использовать команду xlsclients. Она отображает все программы, которые используют Xwayland в данный момент:

Например, в данном случае, запущен xterm. Есть ещё один способ быстро посмотреть какие из запущенных окон используют XWayland. Просто запустите программу Xeyes. После этого появится окно с глазами, которые должны сделить за курсором и смотреть всегда в его сторону. Но поскольку утилита использует X сервер, то и следить она сможет только за курсором в Xorg приложениях. Таким образом, если глаза двигаются когда вы водите курсором мыши в зоне окна — значит оно использует Xwayland, если нет — то Wayland:

Выводы
В этой небольшой статье мы рассмотрели как узнать Wayland или Xorg используется в вашей системе, а также как посмотреть какие приложения всё ещё работают через Xorg когда используется Wayland.
Wayland (Русский)
Состояние перевода: На этой странице представлен перевод статьи Wayland. Дата последней синхронизации: 16 февраля 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.
- Kernel mode setting (Русский)
- Xorg (Русский)
- Screen capture#Wayland
Wayland — протокол для организации графического сервера. В отличие от X Window System, Wayland не имеет API отрисовки и соответственно ей не занимается. Подробнее о отличиях Wayland от Xorg в Википедии (англ.).
Серверы отображения, использующие протокол 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* | Все |
| EGLStreams | NVIDIA | GNOME, Weston (со сторонним патчем) |
* NVIDIA ≥ 495 поддерживает одновременно EGLStreams и GBM.[1] Чтобы использовать GBM в качестве бэкенда, установите следующие переменные окружения:
GBM_BACKEND=nvidia-drm __GLX_VENDOR_LIBRARY_NAME=nvidia
Композиторы
О разнице между фреймовыми и стековыми оконными менеджерами можно прочитать здесь: Оконный менеджер#Типы.
Фреймовые
- Cagebreak — Основан на cage, вдохновлен ratpoison.
- Cardboard — Композитор с прокруткой, вдохновленный PaperWM, на основе wlroots.
- dwl — dwm-подобный композитор Wayland на основе wlroots.
- japokwm — Динамический компоновщик листов Wayland, основанный на создании макетов на основе wlroots.
- Qtile — Полнофункциональный плиточный оконный менеджер и компоновщик Wayland, написанный и настроенный на Python.
- river — Композитор Wayland с динамическим тайлингом, вдохновленный dwm и bspwm (Русский).
- Sway — i3-совместимый Wayland-композитор на основе wlroots.
- Velox — Простой оконный менеджер на основе swc, вдохновленный dwm и xmonad.
- Vivarium — С динамический плитками Wayland, использующий wlroots, с семантикой рабочего стола, вдохновленной xmonad (Русский).
- newm — Композитор Wayland, написанный для ноутбуков и тачпадов.
Стековые
- Enlightenment — Смотрите Enlightenment#Manually. Подробнее: [2][3]
- hikari — Основанный на wlroots композитор, вдохновленный cwm, который активно разрабатывается для FreeBSD, но также поддерживает Linux.
- KDE KWin — Смотрите KDE (Русский)#Запуск Plasma.
- Liri Shell — Часть Liri, создан с использованием QtQuick и QtCompositor в качестве композитора для Wayland.
- labwc — Основанный на wlroots композитор, вдохновленный Openbox.
- Mutter — Смотрите GNOME (Русский)#Запуск GNOME.
- wayfire — 3D композитор, вдохновленный Compiz и основанный на wlroots.
- Weston — Эталонная реализация композитора Wayland.
- wio — Композитор на основе wlroots, призванный воспроизвести внешний вид рабочего стола Rio в Plan 9..
Другие
- Cage — Отображает одно полноэкранное приложение, например для киоска.
- Maze Compositor — Отрисовывает окна в 3D, используя Qt.
- Motorcar — Wayland-композитор для просмотра 3D-окон с использованием виртуальной реальности.
Некоторые из них имеют возможность использовать экранный менеджер. Проверьте /usr/share/wayland-sessions/название_композитора.desktop .
Менеджеры входа
Ниже перечислены менеджеров дисплеем, который поддерживает работу Wayland. Столбец тип указывает, поддерживает ли экранный менеджер работу на Wayland или нет.
| Название | Тип | Описание |
|---|---|---|
| emptty | Запускается в консоли | Простой диспетчер отображения CLI на TTY с поддержкой X и Wayland. |
| GDM | Запускается на Wayland | Экранный менеджер рабочего окружения GNOME |
| greetd | Демон входа в систему | Минималистичный менеджер входа, поддерживает консольный и графический режим |
| Lemurs | Запускается в консоли | Менеджер отображения TUI для Linux, написанный на Rust. |
| LightDM | Запускается на Xorg | Кросс-десктопный Экранный менеджер |
| Ly | Запускается в консоли | Консольный экранный менеджер, написаный на C |
| SDDM | Запускется на Xorg | Экранный менеджер на основе QML. |
| tbsm | Запускается в консоли | Простой запуск сеанса в CLI, написанный на чистом bash. |
Библиотеки графического интерфейса
Смотрите подробности на официальном сайте
GTK
В пакетах gtk3 и gtk4 уже включена поддержка Wayland. GTK будет использовать Wayland по умолчанию, но вы можете изменить это, установив переменную окружения GDK_BACKEND=x11 , чтобы использовать Xwayland.
Qt
Чтобы включить поддержку Wayland в Qt 5 или 6, установите пакет qt5-wayland или qt6-wayland и установите переменную окружения QT_QPA_PLATFORM=wayland . Чтобы заставить приложение использовать Xwayland установите переменную окружения QT_QPA_PLATFORM=xcb . Это может быть необходимо для некоторых проприетарных приложений, которые не используют системную реализацию Qt, к примеру zoom AUR .
На некоторых композиторах, например sway, приложения Qt, работающие нативно, могут иметь неработающую функциональность. Например, KeepassXC не удастся свернуть в трей. Это можно решить, установив qt5ct и прописав QT_QPA_PLATFORMTHEME=qt5ct перед запуском приложения.
Clutter
Инструментарий Clutter имеет поддержку Wayland. Она включена в пакет clutter .
Чтобы запустить приложение Clutter на Wayland, установите CLUTTER_BACKEND=wayland .
SDL2
Для запуска SDL2 приложения на Wayland, выставите переменную окружения SDL_VIDEODRIVER=wayland .
Примечание: Большинство проприетарных игр включают в себя старые версии SDL, которые не поддерживают Wayland. Чтобы заставить приложение работать под Xwayland, используйте SDL_VIDEODRIVER=x11 .
GLFW
Чтобы включить поддержку Wayland в GLFW, установите пакет glfw-wayland (вместо glfw-x11 ).
GLEW
Пакет glew-wayland AUR в настоящее время по-прежнему не работает со многими приложениями на основе GLEW, поэтому единственный вариант — использовать glew с Xwayland. Смотрите FS#62713.
EFL
EFL полностью поддерживает Wayland. Для запуска EFL в Wayland смотрите страницу проекта Wayland.
winit
Winit — это библиотека для работы с окнами в Rust. По умолчанию использует бэкенд Wayland, но его можно переопределить на Xwayland, изменив переменную окружения: WINIT_UNIX_BACKEND=x11 .
Electron
Чтобы использовать electron -приложения через Wayland, создайте или отредактируйте файл $/electron-flags.conf чтобы добавить следующие параметры (один параметр на строку).
~/.config/electron-flags.conf
--enable-features=UseOzonePlatform --ozone-platform=wayland
Обратите внимание, что более старые версии Electron используют отдельные файлы electron-flags.conf . Например, если у вас установлен пакет electron12, вы можете захотеть сделать
$ ln -s ~/.config/electron-flags.conf ~/.config/electron12-flags.conf
из вашего каталога $ (или создать отдельный $/electron12-flags.conf файл, если вы хотите, чтобы разные версии electron использовали разные настройки).
Совет: Вместо глобальных изменения флагов Electron можно отредактировать ярлыки приложений.
Java
OpenJDK — реализация платформы Java с открытым исходным кодом — ещё не имеет встроенной поддержки Wayland.
До Wakefield, который является проектом, направленным на реализацию Wayland в OpenJDK, можно сейчас использовать Xwayland.
Xwayland
Xwayland — это X-сервер, работающий под управлением Wayland. Он обеспечивает обратную совместимость для устаревших приложений X11.
Xwayland запускается через композитор, поэтому вам следует проверить совместимость с Xwayland и инструкции по запуску Xwayland с выбранным вами композитором.
Примечание: Что касается безопасности: Xwayland — это X-сервер, поэтому он не имеет функций безопасности из Wayland!
Драйвер Nvidia
Примечание: Драйверы Nvidia до версии 470 (например, nvidia-390xx-dkms AUR ) не поддерживают Xwayland с аппаратным ускорением, из-за чего приложения, не поддерживающие Wayland нативно, имеют низкую производительность в сеансах Wayland.
Обратите внимание, что включение DRM KMS требуется. Также обратите внимание на дополнительную информацию в официальной документации относительно вашего менеджера входа (например, GDM).
Советы и рекомендации
Консоль отладки Kwin Wayland
Если вы используете kwin , выполните данную команду, чтобы увидеть, какие окна используют Xwayland или нативный Wayland, поверхности, события ввода, содержимое буфера обмена и многое другое.
$ qdbus org.kde.KWin /KWin org.kde.KWin.showDebugConsole
Визуальное обнаружение приложений Xwayland
Чтобы определить, запущено ли приложение через Xwayland, вы можете запустить extramaus AUR .
Наведите указатель мыши на окно приложения. Если красный курсор двигается, приложение работает через Xwayland.
Или вы можете использовать xorg-xeyes и посмотреть, двигаются ли глаза при перемещении курсора по окну приложения.
Переназначение клавиш клавиатуры
Модель безопасности Wayland не позволяет другим программам, кроме композитора, захватывать необработанный ввод с клавиатуры. Некоторые композиторы поддерживают переназначение клавиш (например, mutter через gnome-tweaks ), но многие этого не умеют. Программы evremap-git AUR , evdevremapkeys-git AUR , и kbct-git AUR могут обойти это, захватив клавиатуру перед композитором и передав ему измененный ввод с клавиатуры.
Решение проблем
Цветовая коррекция
Графические артефакты в GNOME
Пользователи gnome-shell могут испытывать проблемы при переходе с Xorg на Wayland. Чаще всего корнем проблемы является установленная переменная CLUTTER_PAINT=disable-clipped-redraws:disable-culling . Уберите её из /etc/environment .
Cannot open display::0 в приложениях на основе Electron
Приложения, написаные на Electron (например, Atom или Discord) не будут работать на Wayland. Установите переменную GDK_BACKEND=x11 для запуска на Xwayland.
Удалённый доступ к ПК
- (20200206) wlroots (используется в sway) имеет поддержку VNC через пакет wayvnc .
- (20180401) mutter теперь имеет поддержку удалённого рабочего стола через пакет gnome-remote-desktop . Читайте [4] для деталей.
- В 2013 году произошло слияние FreeRDP с Weston, включенное с помощью флага компиляции. Пакет weston включен, начиная с версии 6.0.0.
- waypipeAUR (или waypipe-gitAUR ) — прозрачный прокси для запуска Wayland приложений через оболочку SSH
Захват ввода в играх, удалённом рабочем столе и окнах виртуальных машин
В отличие от Xorg, Wayland не допускает эксклюзивного захвата устройства ввода, также известного как активный или явный захват (например, клавиатура, мышь), вместо этого он зависит от композитора Wayland для передачи сочетаний клавиш и ограничения мыши в окне приложения.
Это изменение в захвате ввода нарушает поведение текущих приложений, что означает:
- Комбинации горячих клавиш и модификаторы будут перехвачены композитором и не будут отправлены на удаленный рабочий стол и окна виртуальной машины.
- Указатель мыши не будет ограничен окном приложения, что может вызвать эффект параллакса, когда положение указателя мыши внутри окна виртуальной машины или удаленного рабочего стола смещено от указателя мыши хоста.
Wayland решает эту проблему, добавляя расширения протокола для Wayland и Xwayland. Поддержка этих расширений необходима для добавления в композиторы Wayland. В случае нативных клиентов Wayland используемые наборы библиотеки виджетов (например, GTK, Qt) должны поддерживать эти расширения или сами приложения, если библиотеки виджетов не используется. В случае приложений Xorg не требуется никаких изменений в приложениях или библиотеки виджетов, поскольку достаточно поддержки Xwayland.
Эти расширения уже включены в wayland-protocols и поддерживается в xorg-xwayland .
- Xwayland протокол захвата клавиатуры
- Протокол блокировки сочетаний клавиш в композиторе
- Протокол относительного указателя
- Протокол ограничения указателя
Поддерживающие композиторы Wayland:
- Mutter, композитор GNOMEс версии 3.28
- wlroots поддерживает относительный и ограниченый указатель
Поддерживающие библиотеки виджетов:
- GTK с версии 3.22.18.