Wayland

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

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.
  • https://gitlab.com/cardboardwm/cardboard || não embalado? pesquisa em AUR

    • dwl – compositor Wayland tipo dwm, baseado em wlroots.

    https://github.com/djpohly/dwl ||| dwlAUR

    • japokwm – Dynamic wayland tiling compositor baseado na criação de layouts, baseado em wlroots.

    https://github.com/werererer/japokwm ||| não empacotado? search in AUR

    • river – Dynamic tiling Wayland compositor inspirado em dwm e bspwm.

    https://github.com/ifreund/river || river-gitAUR

    • Sway – compositor de Wayland compatível com i3, baseado em wlroots.
    • >https://github.com/ifreund/river | | river-gitAUR

      • Sway – compositor de Wayland compatível com i3, baseado em wlroots.
      • https://github.com/swaywm/sway |||| Sway

        • Velox – gestor de janelas simples baseado em swc, inspirado em dwm e xmonad.

        https://github.com/michaelforney/velox || veloxAUR

        • waymonad – compositor Wayland inspirado em xmonad escrito em Haskell.
        • https://github.com/waymonad/waymonad || não empacotado? pesquisa em AUR

          Stacking

          • Enlightenment – Ver Enlightenment#Manually. Mais informações:
          • https://www.enlightenment.org/ |Lightenment

            • Greenfield – Funciona em um navegador web e pode exibir aplicações remotas.

            https://greenfield.app/ || não empacotado? pesquisa em AUR

            • Grefsen – Compositor Qt/Wayland fornecendo um ambiente de trabalho mínimo.

            https://github.com/ec1oud/grefsen || não empacotado? pesquisa em AUR

            • hikari – compositor baseado em wlroots inspirado no cwm que é activamente desenvolvido no FreeBSD mas também suporta Linux.

            https://hikari.acmelabs.space/ ||| hikariAUR

            • KDE KWin – Veja KDE#Starting Plasma.

            https://userbase.kde.org/KWin ||| kwin

            • Liri Shell – Parte do Liri, construído usando QtQuick e QtCompositor como um compositor para Wayland.

            https://github.com/lirios/shell || liri-shell-gitAUR

            • labwc – compositor baseado em wlroots inspirado no Openbox.

            https://github.com/johanmalm/labwc || labwc-gitAUR

            • Mutter – Veja GNOME#Starting.

            https://gitlab.gnome.org/GNOME/mutter || murmúrio

            • wayfire – compositor 3D inspirado no Compiz e baseado em wlroots.
            • https://wayfire.org/ || wayfireAUR

              • Weston – implementação de referência de um compositor Wayland.

              https://gitlab.freedesktop.org/wayland/weston ||| weston

              • wio – compositor baseado em wlroots que visa replicar o aspecto e a sensação do ambiente de trabalho do Plano 9 do Rio.
              • https://wio-project.org/ || não embalado? search in AUR

                Other

                • Cage – Mostra uma única aplicação em tela cheia como um quiosque.

                https://www.hjdskes.nl/projects/cage/ ||| cage

                • Maze Compositor – Renderiza janelas em um labirinto 3D usando Qt.

                https://github.com/imbavirus/mazecompositor || não empacotado? search in AUR

                • Motorcar – Wayland compositor para explorar janelas 3D usando realidade virtual.

                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.

                Nota: Muitos jogos proprietários vêm empacotados com versões antigas do SDL, que não suportam o Wayland e podem quebrar totalmente se você setar 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.

                Nota:

                • 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.

                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

                • (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

                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:

                • 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.

                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:

                • XWayland keyboard grabbing protocol
                • A atalhos do compositor inibem o protocolo
                • Protocolo do ponteiro relativo
                • Protocolo de restrições do ponteiro

                Suportando compositores Wayland:

                • Mutter, o compositor do GNOME desde a versão 3.28
                • >

                • wlroots suporta ponteiro relativo e restrições de ponteiro

                Suportando conjuntos de ferramentas widget:

                • GTK desde a versão 3.22.18.

                Ver também

                • 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
                • >

Deixe uma resposta

O seu endereço de email não será publicado.