Jak sprawdzić, czy używana jest Wayland czy X11


164

Właśnie zainstalowałem najnowszy Kali Linux na moim laptopie, który był oparty na Debian 7 (oldstable). Następnie zaktualizowałem całą wersję do Debiana 8.

Zawsze chciałem Wayland zamiast X11, więc zainstalowałem niezbędne pakiety. Następnie utworzono minimalną ~./config/weston.inikonfigurację. Teraz z ekranu logowania Gnome:Ekran logowania

Mogę uruchomić komputer Gnome on Waylandlub LXDE(między innymi). Poprzedni z bardzo ograniczonym sukcesem, a drugi (LXDE) prawie idealnie, choć panel wymaga konfiguracji (muszę szukać freedesktop).

W każdym razie, w LXDE, GUI reaguje szybciej niż na oldstable i być może tak szybko, gdy działało Windows 7. Byłem zadowolony.

Ale chcę wiedzieć, czy dzieje się tak z powodu wszystkich aktualizacji biblioteki / modułu z Debiana 7 do 8 lub z używania Waylanda (jeśli naprawdę w ogóle używam Waylanda). Przeszedłem przez htop i znalazłem /usr/bin/Xorgdziałający i żaden proces o nazwie „Wayland”. Który z nich aktualnie prowadzę?


uruchom xprop, to narzędzie będzie działać na aplikacjach działających pod emulacją, ale nie na Wayland lub Gnome-Shell na Wayland.
Mike Mestnik,

4
Wydaje mi się, że jako jedyny zauważyłem, że podczas gdy OP powiedział, że działa na Debianie, przedstawiony przez niego zrzut ekranu jest wyraźnie fedora ...
użytkownik1404316

Odpowiedzi:


226

Uzyskaj identyfikator sesji do przekazania, wydając:

loginctl

Następnie:

loginctl show-session <SESSION_ID> -p Type

Jeśli chcesz to wszystko za pomocą jednego polecenia:

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

Użyj tego, który odpowiada Twojej nazwie użytkownika.

Zobacz: https://fedoraproject.org/wiki/How_to_debug_Wayland_problems

Dla mnie jest to:

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

3
Dzięki za świetną odpowiedź. Dodaj, że OP powinien zostać uruchomiony jako loginctlpierwszy, aby zobaczyć sesje.
Ho1,

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

potwierdziłem pracę nad Ubuntu 17.10 z sesją gnome ... zaskakująco dostaję x11
Ray Foss

2
Zgodnie z dokumentami Fedory 28 możesz także użyć tego, echo $WAYLAND_DISPLAYktóry nie drukuje niczego, jeśli wayland nie jest używany.
robsch

3
@DSUprawdź swoje backticksy. Można to skopiować:loginctl show-session $(loginctl|grep $(whoami) |awk '{print $1}') -p Type
Andreas

166

Jak sprawdzić, czy używany jest Wayland czy X11?

w systemach X11 :

$ echo $XDG_SESSION_TYPE
x11

w pewnym systemie waylandów :

$ echo $XDG_SESSION_TYPE
wayland

28
Co to znaczy, że ta zmienna nie jest ustawiona?
g

Czy istnieje sposób, aby pokazać również wersję działających protokołów Wayland?
saitam

28

Działa to na Fedorze

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

Moc potoków i filozofia unixowa. Miły.
Talespin_Kit,

/ mamrocze coś o czymś grep ... | awk, ale hej, w porządku.
rahmu


9

Daj polecenie

ps aux | grep gnome-shell

To da wynik

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

Jeśli Wayland jest aktywny.


5
A co jeśli waylandjest domyślne?
anatoly techtonik

1
Mój proces „gnome-shell” nie działał z opcją --wayland, ale kiedy uruchomiłem ps aux | grep wayland, zauważyłem, że działa / usr / bin / Xwayland.
paulie4,

1
Często masz dwa gnome-shellprocesy: jeden używany dla gdm, a drugi dla sesji użytkownika. Często gnome-shell gdm używa waylanda, ale gnome-shell sesji użytkownika używa X11.
Marius Gedminas

Xwayland jest procesem łączącym aplikacje X11 z serwerem wyświetlania Wayland. Jego obecność sugeruje, że już prowadzisz Wayland - ale sprawdź powyższe zastrzeżenie, możliwe jest, że Wayland jest używany tylko do ekranu logowania.
Marius Gedminas,

1
gnome-shelldziała tylko wtedy, gdy używasz gnoma jako DM.
Sebastian

3

(spróbuj) Uruchom polecenie „r” w menu Alt + F2. Zrestartuje środowisko w Xorg (bez utraty okien i procesów), ale w wayland wyświetli komunikat „Restart nie jest dostępny w Wayland”.


1

Nie, zauważyłem pid o nazwie Wayland w htopie, kiedy przeszedłem do Wayland na chichoty. O ile się to nie zmieni, należy to zobaczyć. Aktualizacja: Oto zrzut ekranu przedstawiający proces Waylanda.

wprowadź opis zdjęcia tutaj


4
Nie widzę waylandprocesu w twoim screengrab; podświetlona linia to dbus-launchproces rozpoczynający sesję o nazwie gnome-wayland.
Stephen Kitt


0

Możesz uruchomić xdpyinfopolecenie. Daje informacje o bieżącym serwerze X11 (i wyświetlaczu). To by się nie powiodło, gdybyś go nie miał (np. W czystym Waylandzie).


wygląda na to, że dobrze działa na mojej waylandsesji ...
don_crissti

IMHO, to tylko oznacza, że ​​twoja sesja Wayland nie jest czystą Wayland.
Basile Starynkevitch

jasne, ale Q to „jak się dowiedzieć, czy użyto waylanda, czy xorga” w bieżącej sesji ... nie wiem, czy działa serwer X11
don_crissti

0

Możesz również sprawdzić, czy aplikacje działają w waylandnatywnej formie:

cd /usr/bin
ldd $application_name | grep wayland

Ponadto, aby sprawdzić, które pliki binarne mają waylandwsparcie, możesz spróbować:

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

Powyższe nie jest naprawdę bardzo czyste, ale działa. Możesz dalej potokować go do pliku, a następnie użyć vimdo nawigacji.

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

-BFlaga stoi na przed i pomaga drukować nazwę binarną.

Możesz to sprawdzić, aby uzyskać więcej informacji. Ta odpowiedź została dostosowana do tego pytania .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.