Wayland é um protocolo de servidor de visualização. O seu objectivo é tornar-se o sucessor do Sistema X Window. Você pode encontrar uma comparação entre Wayland e Xorg na Wikipedia.
Servidores de exibição usando o protocolo Wayland são chamados de compositores porque eles também atuam como gerenciadores de janelas compositoras. Abaixo você pode encontrar uma lista de compositores Wayland.
Para compatibilidade com versões anteriores para executar aplicações X11, XWayland pode ser usado, que fornece um servidor X no Wayland.
- Requisitos
- Compositores
- Mosaico
- Stacking
- Other
- Gerentes de exibição
- Bibliotecas GUI
- GTK
- Qt
- Clutter
- SDL2
- GLFW
- GLEW
- EFL
- winit
- XWayland
- Solução de problemas
- Correção de cor
- Movimento lento, falhas gráficas e colisões
- Não pode abrir o display: :0 com aplicações baseadas no Electron
- Representação remota
- Agarramento de entrada em jogos, desktop remoto e janelas VM
- Ver também
Requisitos
Mais os compositores Wayland só funcionam em sistemas usando a configuração do modo Kernel. O Wayland por si só não fornece um ambiente gráfico; para isso você também precisa de um compositor (veja a seção seguinte), ou um ambiente desktop que inclua um compositor (por exemplo, GNOME ou KDE).
Para que o driver da GPU e o compositor Wayland sejam compatíveis, eles precisam suportar a mesma API de buffer. Existem duas APIs principais: GBM e EGLStreams.
Buffer API | Suporte de driverGPU | Suporte de compositor Wayland |
---|---|---|
GBM | Todos excepto NVIDIA | Todos |
EGLStreams | NVIDIA | GNOME, KDE, Weston (com um patch de terceiros) |
Compositores
Ver Window manager#Tipos para a diferença entre Tiling e Stacking.
Mosaico
- Cagebreak – Baseado em gaiola, inspirado em ratpoison.
https://github.com/project-repo/cagebreak || cagebreakAUR cagebreak-binAUR
- Cartão – Compositor de rolagem, inspirado em PaperWM, baseado em wlroots.
- dwl – compositor Wayland tipo dwm, baseado em wlroots.
- japokwm – Dynamic wayland tiling compositor baseado na criação de layouts, baseado em wlroots.
- river – Dynamic tiling Wayland compositor inspirado em dwm e bspwm.
- Sway – compositor de Wayland compatível com i3, baseado em wlroots.
- Sway – compositor de Wayland compatível com i3, baseado em wlroots.
- Velox – gestor de janelas simples baseado em swc, inspirado em dwm e xmonad.
- waymonad – compositor Wayland inspirado em xmonad escrito em Haskell.
- Enlightenment – Ver Enlightenment#Manually. Mais informações:
- Greenfield – Funciona em um navegador web e pode exibir aplicações remotas.
- Grefsen – Compositor Qt/Wayland fornecendo um ambiente de trabalho mínimo.
- hikari – compositor baseado em wlroots inspirado no cwm que é activamente desenvolvido no FreeBSD mas também suporta Linux.
- KDE KWin – Veja KDE#Starting Plasma.
- Liri Shell – Parte do Liri, construído usando QtQuick e QtCompositor como um compositor para Wayland.
- labwc – compositor baseado em wlroots inspirado no Openbox.
- Mutter – Veja GNOME#Starting.
- wayfire – compositor 3D inspirado no Compiz e baseado em wlroots.
- Weston – implementação de referência de um compositor Wayland.
- wio – compositor baseado em wlroots que visa replicar o aspecto e a sensação do ambiente de trabalho do Plano 9 do Rio.
- Cage – Mostra uma única aplicação em tela cheia como um quiosque.
- Maze Compositor – Renderiza janelas em um labirinto 3D usando Qt.
- Motorcar – Wayland compositor para explorar janelas 3D usando realidade virtual.
- Regarding Security: XWayland é um servidor X, portanto não possui os recursos de segurança do Wayland!
- Por enquanto o driver proprietário da Nvidia não suporta aceleração da GPU para XWayland. Veja esta ou esta solicitação pull para o status do suporte ao XWayland.
- (20200206) wlroots (usado pelo sway) oferece um backend VNC via wayvncAUR desde a versão 0.10. O backend do RDP foi removido. .
- (20180401) mutter agora tem o desktop remoto ativado em tempo de compilação, veja e gnome-remote-desktop para detalhes.
- Houve uma fusão do FreeRDP em Weston em 2013, ativada através de uma bandeira de compilação. O pacote weston está habilitado desde a versão 6.0.0.
- waypipe-gitAUR é um proxy transparente para aplicativos Wayland, com um comando wrapper para rodar sobre SSH
- As combinações e modificadores de teclas quentes serão pegos pelo compositor e não serão enviados para a área de trabalho remota e para as janelas da máquina virtual.
- O ponteiro do rato não ficará restrito à janela da aplicação o que poderá causar um efeito de paralaxe onde a localização do ponteiro do rato dentro da janela da máquina virtual ou da área de trabalho remota é deslocada do ponteiro do rato do anfitrião.
- XWayland keyboard grabbing protocol
- A atalhos do compositor inibem o protocolo
- Protocolo do ponteiro relativo
- Protocolo de restrições do ponteiro
- Mutter, o compositor do GNOME desde a versão 3.28
- wlroots suporta ponteiro relativo e restrições de ponteiro
- GTK desde a versão 3.22.18.
- Documentação de Wayland online
- Relatório oficial de Wayland Gitland
- Fedora:Como depurar problemas de Wayland
- Projetos Wayland incríveis
- Temas de cursores
- Discussão do fórum Arch Linux
- i3 Guia de migração – Aplicações X11 comuns usadas em i3 com alternativas Wayland
https://gitlab.com/cardboardwm/cardboard || não embalado? pesquisa em AUR
https://github.com/djpohly/dwl ||| dwlAUR
https://github.com/werererer/japokwm ||| não empacotado? search in AUR
https://github.com/ifreund/river || river-gitAUR
>https://github.com/ifreund/river | | river-gitAUR
https://github.com/swaywm/sway |||| Sway
https://github.com/michaelforney/velox || veloxAUR
https://github.com/waymonad/waymonad || não empacotado? pesquisa em AUR
Stacking
https://www.enlightenment.org/ |Lightenment
https://greenfield.app/ || não empacotado? pesquisa em AUR
https://github.com/ec1oud/grefsen || não empacotado? pesquisa em AUR
https://hikari.acmelabs.space/ ||| hikariAUR
https://userbase.kde.org/KWin ||| kwin
https://github.com/lirios/shell || liri-shell-gitAUR
https://github.com/johanmalm/labwc || labwc-gitAUR
https://gitlab.gnome.org/GNOME/mutter || murmúrio
https://wayfire.org/ || wayfireAUR
https://gitlab.freedesktop.org/wayland/weston ||| weston
https://wio-project.org/ || não embalado? search in AUR
Other
https://www.hjdskes.nl/projects/cage/ ||| cage
https://github.com/imbavirus/mazecompositor || não empacotado? search in AUR
https://github.com/evil0sheep/motorcar || não empacotado? search in AUR
Alguns dos acima indicados podem suportar gestores de ecrã. Verifique /usr/share/wayland-sessions/compositor.desktop
para ver como eles são iniciados.
Gerentes de exibição
Gerentes de exibição listados abaixo suportam o lançamento de compositores Wayland. A coluna “Type” indica se o gerenciador de display suporta a execução do mesmo no Wayland ou não.
Nome | Type | Descrição |
---|---|---|
GDM | Executar no Wayland | Gerenciador de display GNOME. |
GDM | Demónio de login | Demónio de login mínimo e flexível. |
LightDM | Executar no X11 | Gerenciador de ecrãs cross-desktop. |
Ly | Executar na consola | Gerenciador de ecrãs TUI escrito em C |
SDDM | Executar no X11 | Gerenciador de ecrãs baseado em QML. |
tbsm | Executar na consola | Simples lançador de sessões CLI escrito em puro bash. |
Bibliotecas GUI
Ver detalhes no site oficial.
GTK
Os pacotes gtk3 e gtk4 têm o backend Wayland activado. O GTK terá como padrão o backend Wayland, mas é possível substituí-lo pelo Xwayland através da modificação de uma variável de ambiente: GDK_BACKEND=x11
.
Qt
Para habilitar o suporte ao Wayland no Qt 5 ou 6, instale o pacote qt5-wayland ou qt6-wayland, respectivamente.
Para executar uma aplicação Qt com o plugin Wayland , use -platform wayland
ou QT_QPA_PLATFORM=wayland
variável de ambiente. Para forçar o uso do X11 em uma sessão Wayland, use QT_QPA_PLATFORM=xcb
. Isto pode ser necessário para algumas aplicações proprietárias que não usam a implementação do sistema Qt, como o zoomAUR.
Em alguns compositores, por exemplo sway, aplicações Qt rodando nativamente podem ter funcionalidades faltando. Por exemplo, o KeepassXC será incapaz de minimizar a bandeja. Isto pode ser resolvido instalando qt5ct e configurando QT_QPA_PLATFORMTHEME=qt5ct
antes de executar a aplicação.
Clutter
O kit de ferramentas Clutter tem um backend Wayland que permite que ele seja executado como um cliente Wayland. O backend é habilitado no pacote clutter.
Para rodar uma aplicação Clutter no Wayland, set CLUTTER_BACKEND=wayland
.
SDL2
Para rodar uma aplicação SDL2 no Wayland, set SDL_VIDEODRIVER=wayland
.
SDL_VIDEODRIVER=wayland
. Para forçar a aplicação a rodar com o XWayland, defina SDL_VIDEODRIVER=x11
.GLFW
Para usar GLFW com o backend Wayland, instale o pacote glfw-wayland (ao invés de glfw-x11).
GLEW
O pacote glew-waylandAUR atualmente ainda não funciona com muitas aplicações baseadas em GLEW, então a única opção é usar o glew com o Xwayland. Veja FS#62713.
EFL
EFL tem suporte completo ao Wayland. Para executar uma aplicação EFL no Wayland, veja a página do projeto Wayland.
winit
Winit é a biblioteca de manuseio de janelas em Rust. Ela será padrão para o backend Wayland, mas é possível substituí-la para o Xwayland modificando uma variável de ambiente: WINIT_UNIX_BACKEND=x11
.
XWayland
XWayland é um servidor X que corre sob o Wayland. Ele fornece compatibilidade retroativa para aplicativos X11 legados.
Para usá-lo, instale o pacote xorg-xwayland.
XWayland é iniciado através de um compositor, então você deve verificar a compatibilidade do XWayland e instruções sobre como iniciar o XWayland, com o compositor de sua escolha.
Solução de problemas
Correção de cor
Veja a luz de fundo#Correção de cor.
Movimento lento, falhas gráficas e colisões
Utilizadores de gnome-shell podem ter problemas de exibição quando mudam de X para Wayland. Uma das causas pode ser a CLUTTER_PAINT=disable-clipped-redraws:disable-culling
definida por você mesmo para gnome-shell baseado em Xorg. Apenas tente removê-lo de /etc/environment
ou outros arquivos rc para ver se tudo volta ao normal.
Não pode abrir o display: :0 com aplicações baseadas no Electron
Certifique-se de não ter definido GDK_BACKEND=wayland. Defini-lo globalmente irá quebrar as aplicações Electron.
Representação remota
Agarramento de entrada em jogos, desktop remoto e janelas VM
Em contraste com o Xorg, o Wayland não permite o agarramento exclusivo de dispositivos de entrada, também conhecido como active ou explicit grab (e.g. teclado, mouse), ao invés disso, depende do compositor Wayland para passar atalhos de teclado e confinar o dispositivo apontador à janela da aplicação.
Esta alteração na captura de entrada quebra o comportamento das aplicações atuais, ou seja:
Wayland resolve isto adicionando extensões de protocolo para Wayland e XWayland. O suporte para estas extensões é necessário para ser adicionado aos compositores do Wayland. No caso de clientes nativos Wayland, os kits de ferramentas widget usados (por exemplo GTK, Qt) precisam suportar estas extensões ou as próprias aplicações se nenhum kit de ferramentas widget estiver sendo usado. No caso das aplicações Xorg, nenhuma mudança nas aplicações ou conjuntos de ferramentas widget são necessárias, já que o suporte ao XWayland é suficiente.
Estas extensões já estão incluídas nos protocolos wayland, e são suportadas pelo xorg-xwayland.
As extensões relacionadas são:
Suportando compositores Wayland:
>
Suportando conjuntos de ferramentas widget:
Ver também
>
>
>