Como saber se Wayland ou X11 está sendo usado


165

Acabei de instalar o Kali Linux mais recente no meu laptop, baseado no Debian 7 (oldstable). Eu então fiz a atualização completa para o Debian 8.

Eu sempre quis o Wayland em vez do X11, então instalei os pacotes necessários. Em seguida, criou uma ~./config/weston.iniconfiguração mínima . Agora, na tela de login do Gnome:Tela de login

Eu posso inicializar para Gnome on Waylandou LXDE(entre outros). O anterior com sucesso muito limitado e o último (LXDE) quase perfeitamente, embora o painel precise ser configurado (eu tenho que procurar no freedesktop).

De qualquer forma, no LXDE, a GUI é mais responsiva do que era no oldstable e possivelmente tão rápida quando estava executando o Windows 7. Fiquei satisfeito.

Mas eu quero saber se isso é devido a todas as atualizações da biblioteca / módulo do Debian 7 para 8 ou do uso de Wayland (se eu realmente estiver usando Wayland). Eu olhei através do htop e encontrei um /usr/bin/Xorgprocesso em execução e nenhum chamado "wayland". Então, qual deles eu estou executando atualmente?


executar xprop, esta ferramenta funcionará em aplicativos xa em execução em emulação, mas não em wayland ou gnome-shell em wayland.
Mike Mestnik

4
Eu acho que eu sou o único a notar que, enquanto o OP disse que estava operando no debian, a imagem que ele apresentou é claramente fedora ...
user1404316

Respostas:


227

Obtenha o ID da sessão a ser transmitido emitindo:

loginctl

Então:

loginctl show-session <SESSION_ID> -p Type

Se você quiser tudo isso em um único comando:

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

Use o correspondente ao seu nome de usuário.

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

Então, para mim é:

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

3
Obrigado pela ótima resposta. Por favor, adicione que o OP deve ser executado loginctlprimeiro para ver as sessões.
• Ho1

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

confirmou trabalhando em Ubuntu 17.10 com gnome-session ... surpreendentemente Estou ficando x11
Ray Foss

2
De acordo com os documentos do Fedora 28, você também pode usar o echo $WAYLAND_DISPLAYque imprime nada se o wayland não for usado.
robsch

3
@DSJustice seus backticks foram reduzidos. Pode-se copiar isso:loginctl show-session $(loginctl|grep $(whoami) |awk '{print $1}') -p Type
Andreas

166

Como saber se Wayland ou X11 está sendo usado?

em sistemas X11 :

$ echo $XDG_SESSION_TYPE
x11

em algum sistema de wayland :

$ echo $XDG_SESSION_TYPE
wayland

29
O que significa se essa variável não está definida?
g.rocket

Existe uma maneira de mostrar também a versão dos protocolos de wayland em execução?
Saitam 31/08/19

28

Isso funciona no fedora

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

Poder dos tubos e filosofia unix. Agradável.
Talespin_Kit

Eu murmuro algo grep ... | awk, mas ei, tudo bem.
rahmu


9

Dê o comando

ps aux | grep gnome-shell

Isso dará a saída

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

Se Wayland estiver ativo.


5
E se waylandfor o padrão?
Anatoly techtonik

1
Meu processo "gnome-shell" não estava sendo executado com a opção --wayland, mas quando executei ps aux | grep wayland, descobri que / usr / bin / Xwayland estava em execução.
precisa saber é o seguinte

1
Geralmente, você tem dois gnome-shellprocessos: um usado para o gdm e outro usado para a sessão do usuário. Frequentemente, o gnome-shell do gdm usa wayland, mas o gnome-shell da sessão do usuário usa o X11.
Marius Gedminas

Xwayland é um processo que faz a ponte entre aplicativos X11 e o servidor de exibição Wayland. Sua presença implica que você já está executando o Wayland - mas verifique a ressalva acima, é possível que o Wayland seja usado apenas para a tela de login.
Marius Gedminas

1
gnome-shellsó funciona se você estiver usando o gnome como DM.
27317 Sebastian

3

(tente) Execute o comando 'r' no menu Alt + F2. Ele reiniciará o ambiente no Xorg (sem perder janelas e processos), mas no wayland será exibida a mensagem "Reiniciar não está disponível no Wayland".


1

Não, notei um pid chamado Wayland no htop, quando mudei para Wayland para rir. A menos que seja alterado, é o que se deve ver. Atualização: Aqui está uma captura de tela mostrando o processo de Wayland.

insira a descrição da imagem aqui


4
Não vejo um waylandprocesso no seu screengrab; a linha que você destacou é um dbus-launchprocesso, iniciando uma sessão chamada gnome-wayland.
Stephen Kitt


0

Você pode executar o xdpyinfocomando Ele fornece informações sobre o seu servidor X11 atual (e a tela). Falha se você não tiver um (por exemplo, em um ambiente puro de Wayland).


parece estar funcionando bem no meu waylandsessão ...
don_crissti

IMHO, isso significa apenas que sua sessão de wayland não é pura Wayland.
Basile Starynkevitch 22/03

certo, mas o Q é "como saber se Wayland ou xorg é usado" para a sessão atual ... não como saber se há um servidor em execução X11
don_crissti

0

Bem, você também pode verificar se os aplicativos estão sendo executados em sua waylandforma nativa:

cd /usr/bin
ldd $application_name | grep wayland

Além disso, para verificar quais binários têm waylandsuporte, você pode tentar:

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

O exposto acima não é realmente muito limpo, mas funciona. Você pode canalizá-lo ainda mais para um arquivo e usá-lo vimpara navegar.

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

A -Bbandeira é anterior e ajuda a imprimir o nome binário.

Você pode verificar isso para mais detalhes. Esta resposta foi adaptada desta pergunta .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.