Как узнать, используется ли Wayland или X11


166

Поэтому я только что установил последнюю версию Kali Linux на свой ноутбук, основанный на Debian 7 (oldstable). Затем я переориентировал все это на Debian 8.

Я всегда хотел Wayland вместо X11, поэтому я установил необходимые пакеты. Затем создали минимальную ~./config/weston.iniконфигурацию. Теперь с экрана входа в Gnome:Экран входа

Я могу загрузить Gnome on Waylandили LXDE(среди других). Предыдущий с очень ограниченным успехом и последний (LXDE) почти идеально, хотя панель нуждается в настройке (мне нужно поискать freedesktop).

В любом случае, в LXDE графический интерфейс более отзывчив, чем в предыдущем стабильном, и, возможно, такой же быстрый, когда он работал под управлением Windows 7. Я был доволен.

Но я хочу знать, происходит ли это из-за всех обновлений библиотеки / модуля с Debian 7 до 8 или от использования Wayland (если я действительно использую Wayland вообще). Я пролистал htop и нашел /usr/bin/Xorgзапущенный процесс без имени «wayland». Так, какой я в настоящее время бегаю?


Запустите xprop, этот инструмент будет работать с приложениями, работающими под эмуляцией, но не с Wayland или Gnome-shell на Wayland.
Майк Местник

4
Полагаю, я единственный, кто заметил, что в то время как OP сказал, что работает на Debian, скриншот, который он представил, явно
задан

Ответы:


228

Получите идентификатор сеанса для передачи, выполнив:

loginctl

Затем:

loginctl show-session <SESSION_ID> -p Type

Если вы хотите все это с помощью одной команды:

loginctl show-session $(awk '/tty/ {print $1}' <(loginctl)) -p Type | awk -F= '{print $2}'

Используйте тот, который соответствует вашему имени пользователя.

См. Https://fedoraproject.org/wiki/How_to_debug_Wayland_problems.

Итак, для меня это:

$ loginctl show-session 2 -p Type                                                  
Type=wayland

3
Спасибо за отличный ответ. Пожалуйста, добавьте, что OP должен запускаться loginctlпервым, чтобы увидеть сессии.
Ho1

5
loginctl show-session `loginctl|grep <YOUR_USER_NAME>|awk '{print $1}'` -p Type
solsTiCe

подтвердил работу над Ubuntu 17.10 с gnome-session ... как ни удивительно, я получаю x11
Рэй Фосс

2
Согласно документам Fedora 28 вы также можете использовать тот, echo $WAYLAND_DISPLAYкоторый ничего не печатает, если не используется Wayland.
Робш

3
@DSJustice ваши спины были markdown'd. Можно скопировать это:loginctl show-session $(loginctl|grep $(whoami) |awk '{print $1}') -p Type
Андреас

166

Как узнать, используется ли Wayland или X11?

в системах X11 :

$ echo $XDG_SESSION_TYPE
x11

на некоторой Wayland системы :

$ echo $XDG_SESSION_TYPE
wayland

29
Что это значит, если эта переменная не установлена?
g.rocket

Есть ли способ показать также версию работающих протоколов Wayland?
Сайт

28

Это работает на Fedora

loginctl show-session $(loginctl | grep $(whoami) | awk '{print $1}') -p Type

Сила труб и философия Unix. Приятно.
Talespin_Kit

/ я бормочу что-то о grep ... | awk, но эй, это нормально.
Рахму


9

Дай команду

ps aux | grep gnome-shell

Это даст выход

/usr/bin/gnome-shell --wayland --display-server

Если Wayland активен.


5
А что, если waylandэто по умолчанию?
анатолий техтоник

1
Мой процесс "gnome-shell" не запускался с опцией --wayland, но когда я запустился ps aux | grep wayland, я обнаружил, что / usr / bin / Xwayland работает.
paulie4

1
Часто у вас есть два gnome-shellпроцесса: один используется для gdm, а другой - для сеанса пользователя. Часто gnome-shell gdm использует wayland, но gnome-shell пользовательского сеанса использует X11.
Мариус Гедминас

Xwayland - это процесс, соединяющий приложения X11 с сервером отображения Wayland. Его присутствие подразумевает, что вы уже используете Wayland - но проверьте приведенное выше предостережение, возможно, Wayland используется только для экрана входа в систему.
Мариус Гедминас

1
gnome-shellработает только если вы используете гном в качестве DM.
Себастьян

3

(попробуйте) Запустите команду 'r' в меню Alt + F2. Он перезапустит среду в Xorg (без потери окон и процессов), но в Wayland выдаст сообщение «Перезапуск недоступен в Wayland».


1

Нет, я заметил pid под названием Wayland в htop, когда переключился на Wayland для хихиканья. Если это не изменилось, это то, что нужно видеть. Обновление: вот скриншот, показывающий процесс Wayland.

введите описание изображения здесь


4
Я не вижу waylandпроцесс в вашем скриншоте; выделенная вами строка - это dbus-launchпроцесс, начинающий сессию gnome-wayland.
Стивен Китт


0

Вы можете запустить xdpyinfoкоманду. Он дает информацию о вашем текущем сервере X11 (и отображает). Он потерпит неудачу, если у вас его нет (например, в чистом Уэйленде).


кажется, работает нормально на моей waylandсессии ...
don_crissti

ИМХО, это просто означает, что ваша сессия в Уэйленде - не чистая Уэйленд.
Василий Старынкевич,

конечно, но вопрос «как узнать, используется ли wayland или xorg» для текущего сеанса ... не как узнать, работает ли сервер X11
don_crissti

0

Ну, вы также можете просто проверить, запущены ли приложения в их waylandродной форме:

cd /usr/bin
ldd $application_name | grep wayland

Кроме того, чтобы проверить, какие двоичные файлы имеют waylandподдержку, вы можете попробовать:

cd /usr/bin
find . | xargs ldd | grep wayland -B 55

Выше не очень чисто, но это работает. Вы можете далее передать его в файл, а затем использовать vimдля навигации.

cd /usr/bin
find . | xargs ldd | grep wayland -B 55 >> candidates
vim candidates
# Use vi movement

-BФлаг означает , прежде чем и помогает печатать двоичное имя.

Вы можете проверить это для более подробной информации. Этот ответ адаптирован из этого вопроса .

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.