Wayland (Português) - ArchWiki

# Wayland (Português)

From ArchWiki
Jump to navigation Jump to search
Status de tradução: Esse artigo é uma tradução de Wayland. Data da última tradução: 2020-05-23. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Artigos relacionados

- KMS
- Xorg
- Screen capture#Wayland

Wayland é um protocolo para um gerenciador de janelas de composição falar com seus clientes, como também sua própria biblioteca. É suportada por alguns ambientes desktop como GNOME and KDE. Existe também uma implementação referência de compositor chamada Weston. XWayland provê uma camada de compatibilidade para rodar programas Xorg em Wayland.

## Requerimentos

A maioria do compositores Wayland somente funcionam em sistemas que usam Kernel mode setting. Wayland por si só não provê um ambiente gráfico; para isto você também precisa de um compositor como Weston ou Sway, ou um ambiente desktop que inclui um, como GNOME ou KDE.

Para o driver GPU e o compositor Wayland serem compatíveis eles devem suportar a mesma buffer API. Existem duas principais APIs: GBM e EGLStreams.

Buffer API | Suporte de driver GPU | Suporte de compositores Wayland
--- | --- | ---
GBM | Todos exceto NVIDIA | Todos
EGLStreams | NVIDIA | GNOME, KDE

## Compositores

Nome | Tipo | Descrição
--- | --- | ---
Mutter | Stacking | Veja GNOME#Iniciando.
sway | Tiling | Sway é um compositor e gerenciador de janelas compatível com o i3 para Wayland. GitHub.
Enlightenment | Stacking e tiling | Veja Enlightenment#Manually. Mais informação: [1] [2].
KDE Kwin | Stacking | Veja KDE#Iniciando o Plasma.
Orbment | Tiling | orbment (antiga loliwm) é um projeto abandonado de tiling WM para Wayland.
Velox | Tiling | Velox é um gerenciador de janelas simples baseado no swc. É inspirado por dwm e xmonad.
Orbital | Stacking | Orbital é um compositor e shell(mais semelhante a uma WM do que DE) que usa Qt5 e Weston. Com o objetivo de construir um simples mas flexível e bonito desktop.
Liri Shell | Stacking | Liri Shell É um shell para Liri, construído com QtQuick e QtCompositor como um compositor para Wayland.
Maynard | (Incerto) | Maynard é um cliente shell desktop para Weston feito em GTK. Foi baseado no weston-gtk-shell, um projeto de Tiago Vignatti. Não está em desenvolvimento. [3][4]
Motorcar | (Incerto) | Motorcar é um compositor Wayland para exploração de janelas 3D usando realidade virtual.
Maze Compositor | Flutuante 3D | Maze Compositor é um compositor Wayland 3D feito em Qt.
Cage | Kiosk | Cage é um compositor Wayland que mostra somente um programa em tela cheia.
Greenfield | Stacking | Greenfield é um compositor Wayland que roda no navegador e pode mostrar aplicações remotamente.
Grefsen | Flutuante | Grefsen é um compositor Qt/Wayland que oferece um desktop mínimo.
Waymonad | Tiling | Waymonad é um compositor Wayland inspirado e baseado nas ideias do xmonad.
wayfire | Stacking | Wayfire é um compositor de propósito geral.
Weston | Floating | Weston é uma implementação referência de compositor Wayland.

Alguns destes acima podem ser suportados por gerenciadores de janela. Cheque `/usr/share/wayland-sessions/compositor.desktop` para saber como eles são iniciados.

## Gerenciadores de login

Abaixo estão listados gerenciadores de login que suportam rodar compositores Wayland. A coluna Tipo indica se o gerenciador de login suporta ou não ser executado em Wayland.

Nome | Tipo | Descrição
--- | --- | ---
GDM | Roda em Wayland | Gerenciador de login do GNOME.
LightDM | Roda em X11 | Gerenciador de login TUI escrito em C
Ly | Roda no console | TUI display manager written in C
SDDM | Roda em X11 | Gerenciador de login feito em QML.
greetd | Daemon de login | Daemon de login minímo e flexível.

## Bibliotecas GUI

Veja detalhes no site oficial.

### GTK 3

O pacote gtk3 tem o backend Wayland já habilitado. GTK irá ser executado por padrão em Wayland, mas é possível sobrescrever isto para Xwayland ao modificar a variável de ambiente: `GDK_BACKEND=x11`.

### Qt 5

Para habilitar o suporte para Wayland no Qt 5, instale o pacote qt5-wayland.

Para rodar um programa Qt 5 com o plugin Wayland [5], use `-platform wayland` ou a variável de ambiente `QT_QPA_PLATFORM=wayland`. Para forçar o uso do X11 numa sessão Wayland, use `QT_QPA_PLATFORM=xcb`. Isto pode ser necessário para alguns programas proprietários que não usam a implementação do Qt presente no sistema, como zoomAUR.

Em alguns compositores, como o sway, programas Qt executados nativamente em Wayland podem perder funcionalidade. Por exemplo, KeepassXC não vai conseguir minimizar para a barra. Isto pode ser resolvido ao instalar qt5ct e definindo `QT_QPA_PLATFORMTHEME=qt5ct` antes de executar o programa.

### Clutter

O toolkit Clutter suporta o backend Wayland e isto possibilita que ele rode como um cliente Wayland. O backend já é habilitado por padrão no pacote clutter.

Para rodar um programa Clutter em Wayland, defina: `CLUTTER_BACKEND=wayland`.

### SDL2

Para rodar um programa SDL2 no Wayland, defina `SDL_VIDEODRIVER=wayland`.

Nota: Muitos jogos proprietários vem com versões antigas do SDL, que não suportam Wayland e podem deixar de funcionar se você definir `SDL_VIDEODRIVER=wayland`. Para forçar o programa a rodar com Xwayland, defina `SDL_VIDEODRIVER=x11`.

### GLFW

Para usar GLFW com o backend Wayland, instale o pacote glfw-wayland (ao invés do glfw-x11).

### GLEW

Para usar GLEW com o backend Wayland, instale o pacote glew-wayland (ao invés do glew).

### EFL

EFL tem suporte completo ao Wayland. Para rodar um programa EFL no Wayland, veja a página do projeto.

### winit

Winit é uma biblioteca de gerenciamento de janela em Rust. Por padrão utiliza o backend Wayland, mas é possível forçar o uso do XWayland ao modificar a variável de ambiente: `WINIT_UNIX_BACKEND=x11`.

## Resolução de problemas

### Gama

This article or section is a candidate for merging with Backlight#Color correction.

Notes: Mesmo tópico. (Discuss in talk:Wayland)

Enquanto Redshift não suporta Wayland (sem um patch) é possível aplicar a temperatura desejada no tty antes de iniciar o compositor. Por exemplo:

    redshift -m drm -PO 3000

Apesar disso alguns compositores possuem essa funcionalidade enquanto rodam:

- No GNOME, a funcionalidade nativa Luz noturna pode ser usada.
- No KDE Plasma, a funcionalidade nativa KDE#Cor noturna[broken link: invalid section] pode ser usada.
- No Sway 1.0 e outros compositores baseados no wlroots, e também o Orbital, redshift-wayland-gitAUR/redshift-wlr-gamma-control-gitAUR pode ser usado (os dois pacotes do AUR são o mesmo).

### Tela lenta, glitches gráficos, e crashes

Usuários do gnome-shell podem sofrer problemas na tela quando eles mudam para Wayland do X. Uma das causas desse problema pode ser o `CLUTTER_PAINT=disable-clipped-redraws:disable-culling` definido para o gnome-shell baseado no Xorg. Tente remover isto do `/etc/environment` ou outros arquivos rc para ver se tudo volta ao normal.

### Cannot open display: :0 com programas feitos em Electron

Tenha certeza que você não definiu GDK_BACKEND=wayland. Definir isso globalmente irá quebrar programas Electron.

### Exibição remota

- (20200206) wlroots (usado pelo Sway) oferece um backend VNC com wayvncAUR desde a versão 0.10. Suporte ao backend RDP foi removido.

[6].

- (20180401) mutter tem agora desktop remoto habilitado no tempo de compilação, veja [7] e gnome-remote-desktop para detalhes.
- Existe um merge do FreeRDP no Weston em 2013, habilitado com uma flag de compilação. O pacote weston vem com isso habilitado desde a versão 6.0.0.
- waypipe-gitAUR é um proxy transparente para programas Wayland, com um comando que roda via SSH.

### Captação de entradas nos jogos, desktop remoto e janelas VM

Diferente do Xorg, Wayland não permite captação exclusiva de entrada, também conhecido como captação ativa ou explicita (exemplo teclado, mouse), ao invés disso, depende do compositor Wayland para direcionar os atalhos do teclado e confinar o ponteiro para a janela do programa.

Esta mudança na captação de entrada quebra o atual comportamento dos programas:

- Combinação de teclas e modificadores irão ser pegos pelo compositor e não serão enviados para o desktop remoto e janelas de máquina virtual.
- O mouse não irá ser restrito a janela da aplicação, isto pode causar um efeito de paralaxe onde a localização do ponteiro dentro da janela da máquina virtual ou desktop remoto é mal interpretado do host.

Isto é resolvido adicionando extensões para o protocolo Wayland e XWayland. O suporte para estas extensões precisam ser adicionados para compositores Wayland. Os clientes nativos do Wayland, toolkits widget (exemplo GTK, Qt) ou as próprias aplicações, se nenhum toolkit está sendo usado, também precisam suportar estas extensões. Programas Xorg não precisam de mudança devido a existência do XWayland.

Estas extensões já estão incluídas no wayland-protocols, e suportadas por xorg-server-xwayland 1.20.

Extensões relacionadas são:

- XWayland keyboard grabbing protocol
- Compositor shortcuts inhibit protocol
- Relative pointer protocol
- Pointer constraints protocol

Compositores que suportam Wayland:

- Mutter, compositor do GNOME desde versão 3.28.
- wlroots suporta relative-pointer e pointer-constraints

Toolkits widget que suportam:

- GTK desde a versão 3.22.18.

## Veja também

- Artigo sobre depuração de Wayland no Fedora Wiki
- Temas de cursor
- Discussão no fórum do Arch Linux
- Documentação online do Wayland
- Incríveis projetos Wayland

Category:

- Graphical user interfaces (Português)

Hidden categories:

- Pages or sections flagged with Template:Merge
- Pages with broken section links