Léxico de TI › Programação › layer-shell

layer-shell

Programação Svenska → Atualizado: 2026-10-10

O protocolo que dá a painéis, papéis de parede e telas de bloqueio um lugar no Wayland — superfícies ancoradas a uma borda da tela, empilhadas em uma de quatro camadas e capazes de reservar espaço para que as janelas comuns fiquem longe da barra.

O xdg-shell descreve janelas de aplicativos, mas um desktop também é feito de coisas que não são janelas: uma barra no topo, um fundo lá embaixo, uma notificação num canto, uma tela de bloqueio por cima de tudo. No X, o EWMH cuidava disso com tipos de janela e _NET_WM_STRUT; o Wayland não tinha nada até Drew DeVault escrever o wlr-layer-shell em 2018, para as ferramentas do próprio Sway: swaybar, swaybg e swaylock. O cliente pede uma layer_surface numa saída, numa das camadas background, bottom, top ou overlay, ancora em uma ou mais bordas, define margens e uma zona exclusiva que o compositor subtrai da área que as janelas comuns podem usar. O foco do teclado fica desligado, a menos que o cliente o peça.

Apesar do "wlr" no nome, o protocolo foi muito além do wlroots: o KWin o suporta desde o Plasma 5.20, em 2020, o Mir e o Hyprland também, e a biblioteca gtk-layer-shell deixou programas GTK usá-lo sem mexer no Wayland cru. Waybar, wofi, mako e fuzzel são escritos em cima dele. O grande resistente é o Mutter: o GNOME Shell desenha o próprio painel e não vê motivo para deixar entrar o de mais ninguém. Por isso a caixa de ferramentas de quem usa mosaico raramente funciona no GNOME, e por isso as tentativas de transformá-lo num ext-layer-shell neutro quanto a fabricantes são debatidas há anos no wayland-protocols.

← Voltar ao léxico