Come sapere se Wayland o X11 sono in uso


166

Quindi ho appena installato l'ultimo Kali Linux sul mio laptop basato su Debian 7 (oldstable). Ho quindi aggiornato il tutto su Debian 8.

Ho sempre desiderato Wayland invece di X11, quindi ho installato i pacchetti necessari. Quindi ha creato una ~./config/weston.iniconfigurazione minima . Ora, dalla schermata di accesso di Gnome:Schermata di accesso

Posso avviare Gnome on Waylando LXDE(tra gli altri). Il precedente con un successo molto limitato e il secondo (LXDE) quasi perfettamente, anche se il pannello ha bisogno di essere installato (devo cercare freedesktop).

Ad ogni modo, in LXDE, la GUI è più reattiva di quanto non fosse su oldstable e possibilmente più veloce quando eseguiva Windows 7. Mi ha fatto piacere.

Ma voglio sapere se questo è dovuto a tutti gli aggiornamenti di libreria / modulo da Debian 7 a 8 o dall'uso di Wayland (se sto davvero usando Wayland). Ho sfogliato htop e ho trovato una /usr/bin/Xorgcorsa e nessun processo chiamato "wayland". Quindi quale sono attualmente in esecuzione?


esegui xprop, questo strumento funzionerà su applicazioni x in esecuzione sotto emulazione ma non wayland o gnome-shell su wayland.
Mike Mestnik,

4
Immagino di essere l'unico a notare che mentre l'OP ha detto che stava operando su Debian, lo screenshot che ha presentato è chiaramente fedora ...
user1404316

Risposte:


228

Ottieni l'ID sessione da trasmettere emettendo:

loginctl

Poi:

loginctl show-session <SESSION_ID> -p Type

Se vuoi tutto questo con un solo comando:

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

Usa quello corrispondente al tuo nome utente.

Fare riferimento a: https://fedoraproject.org/wiki/How_to_debug_Wayland_problems

Quindi, per me è:

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

3
Grazie per la magnifica risposta. Si prega di aggiungere che OP dovrebbe essere eseguito per loginctlprimo per vedere le sessioni.
Ho1,

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

confermato lavoro su Ubuntu 17.10 con gnome-session ... sorprendentemente sto ottenendo x11
Ray Foss

2
Secondo i documenti Fedora 28 puoi anche usare ciò echo $WAYLAND_DISPLAYche non stampa nulla se Wayland non viene usato.
robsch,

3
@DSJustice i tuoi backtick sono stati contrassegnati. Si può copiare questo:loginctl show-session $(loginctl|grep $(whoami) |awk '{print $1}') -p Type
Andreas,

166

Come sapere se Wayland o X11 sono in uso?

su sistemi X11 :

$ echo $XDG_SESSION_TYPE
x11

su alcuni sistemi wayland :

$ echo $XDG_SESSION_TYPE
wayland

29
Cosa significa se questa variabile non è impostata?
g.rocket,

C'è un modo per mostrare anche la versione dei protocolli wayland in esecuzione?
Saitam,

28

Questo funziona su Fedora

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

Potenza dei tubi e filosofia unix. Bello.
Talespin_Kit,

borbotta qualcosa grep ... | awk, ma ehi, va bene.
Rahmu,


9

Dai il comando

ps aux | grep gnome-shell

Darà l'output

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

Se Wayland è attivo.


5
E se waylandè l'impostazione predefinita?
Anatoly Techtonik,

1
Il mio processo "gnome-shell" non era in esecuzione con l'opzione --wayland, ma quando ho eseguito ps aux | grep wayland, ho scoperto che / usr / bin / Xwayland era in esecuzione.
paulie4,

1
Spesso hai due gnome-shellprocessi: uno usato per gdm e uno usato per la sessione utente. Spesso gnome-shell di gdm usa wayland ma gnome-shell della sessione utente usa X11.
Marius Gedminas,

Xwayland è un processo che collega le applicazioni X11 e il server di visualizzazione Wayland. La sua presenza implica che stai già eseguendo Wayland, ma controlla le avvertenze precedenti, è possibile che Wayland sia utilizzato solo per la schermata di accesso.
Marius Gedminas,

1
gnome-shellFunziona solo se usi gnome come DM.
Sebastian

3

(prova a) Esegui il comando 'r' nel menu Alt + F2. Riavverà l'ambiente in Xorg (senza perdere finestre e processi) ma in Wayland verrà visualizzato il messaggio "Il riavvio non è disponibile in Wayland".


1

No, ho notato un pid chiamato Wayland in htop, quando sono passato a Wayland per ridacchiare. A meno che non sia cambiato, questo è ciò che si dovrebbe vedere. Aggiornamento: ecco uno screengrab che mostra il processo Wayland.

inserisci qui la descrizione dell'immagine


4
Non vedo un waylandprocesso nel tuo screengrab; la linea che hai evidenziato è un dbus-launchprocesso, iniziando una sessione chiamata gnome-wayland.
Stephen Kitt,


0

È possibile eseguire il xdpyinfocomando. Fornisce informazioni sul tuo attuale server X11 (e display). Fallirebbe se non ne avessi uno (ad esempio in un ambiente puro di Wayland).


sembra funzionare bene sulla mia waylandsessione ...
don_crissti

IMHO, questo significa solo che la tua sessione Wayland non è pura Wayland.
Basile Starynkevitch il

certo ma la Q è "come sapere se wayland o xorg sono usati" per la sessione corrente ... non come sapere se c'è un server X11 in esecuzione
don_crissti

0

Bene, puoi anche controllare se le applicazioni sono in esecuzione nella loro waylandforma nativa:

cd /usr/bin
ldd $application_name | grep wayland

Inoltre, per verificare quali binari hanno il waylandsupporto puoi provare:

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

Quanto sopra non è davvero molto pulito ma funziona. È inoltre possibile reindirizzarlo a un file e quindi utilizzare vimper navigare.

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

La -Bbandiera sta per prima e aiuta a stampare il nome binario.

Puoi controllare questo per maggiori dettagli. Questa risposta si è adattata da questa domanda .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.