Как узнать, используется ли 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». Так, какой я в настоящее время бегаю?

Dehbop
источник
Запустите 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
Andreas
источник
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
Ayush
источник
29
Что это значит, если эта переменная не установлена?
g.rocket
Есть ли способ показать также версию работающих протоколов Wayland?
Сайт
28

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

loginctl show-session $(loginctl | grep $(whoami) | awk '{print $1}') -p Type
antismap
источник
Сила труб и философия Unix. Приятно.
Talespin_Kit
/ я бормочу что-то о grep ... | awk, но эй, это нормально.
Рахму
10

Мне больше всего нравится ответ Аюша , но я подумал, что скажу, что ответ Андреаса можно сделать в одну строку:

loginctl show-session "$XDG_SESSION_ID" -p Type

Вы можете дополнительно пройти, --valueчтобы сбросить Type=префикс.

Алекс Роббинс
источник
9

Дай команду

ps aux | grep gnome-shell

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

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

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

rksomayaji
источник
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.

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

SD Аллен
источник
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Флаг означает , прежде чем и помогает печатать двоичное имя.

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

HaoZeke
источник