Repository navigation
Compust 0.3.0-beta.2
Pre-releaseCompust 0.3.0-beta.2
English
The fifth beta of Compust, for controlled testing, on the path to 1.0. It brings the features of the 1.0 milestone's first step, shadows, fullscreen unredirection, and rules by focus, together with rounded corners and configuration reloads when the file is saved. Read the beta guide before installing: it lists the declared scope, how to return to your previous compositor, and how to report a problem.
Declared scope
One recorded machine has run this beta's code: an AMD Ryzen 5 5600GT with integrated Radeon Vega graphics and radeonsi, on Xorg 21.1.24 with the modesetting driver and glamor, at 1920×1080 and 60 Hz. Its desktop sessions passed every scenario under i3 4.25.1 with Present, with direct XRender, and with fades, translucency, and blur, at a commit before rounded corners, which are off by default, and before the GPU fix below. Its feature checks of shadows, focus rules, rounded corners, and fullscreen suspension passed with XRender and with the GPU renderer at a commit whose compositor source differs from the release's only in its version number. The RX 9060 XT desktop on XLibre ran 0.3.0-beta.1, and the Intel laptop ran the earlier betas. NVIDIA GPUs, Intel GPUs with this beta, XLibre with this beta, and other window managers are untested; reports are welcome.
Changes since 0.3.0-beta.1
- Shadows: with
shadow_radiusabove zero, windows cast a soft black shadow, set byshadow_offset_x,shadow_offset_y, andshadow_opacity. Normal windows, dialogs, utility windows, splash screens, and toolbars cast one; menus, tooltips, docks, and windows that draw their own shadow do not. A rule'sshadowoverrides that. Shadows are off by default. - Rounded corners:
corner_radiusrounds the corners of the same windows, smoothed across each pixel an arc crosses, and their shadows and the blur behind them follow the arcs. A rule'scorner_radiusrounds or squares the windows it chooses. Shaped and fullscreen windows stay square. Corners are off by default. - Fullscreen unredirection: with
unredirect_fullscreen = true, Compust stops compositing while one opaque, square window covers the whole screen, as a game or video in fullscreen does, and resumes as soon as that changes. - Rules by focus: a rule's
focusedselector chooses the active window or every other one, from the window manager's_NET_ACTIVE_WINDOW, so that a rule can make inactive windows translucent. - Reload on save: Compust reloads the configuration when its file is saved, once it has stayed unchanged for a tenth of a second. It watches the directories of the files it would read and the target of a symbolic link, so editors that replace the file are followed too. SIGUSR1 still reloads.
- Fixes: after a root resize, the server could present the replaced renderer's last frame after the new one's first, leaving old pixels on screen; the frame is now shown again. The GPU renderer blended a translucent window twice where two of the rectangles it repainted overlapped, which showed on translucent windows with a shadow and blur.
- Tools: the desktop probe's
--featuresmode andtools/features-check.shcheck shadows, focus rules, rounded corners, and fullscreen suspension on a dedicated display, and compare the GPU renderer's images with XRender's.
The desktop qualification guide records the checks behind this beta. No performance advantage over picom is claimed.
Known limits
Shadows are black, shaped windows cast none, and a thick window border is rounded at its outer edge only. Fullscreen unredirection never applies to one monitor of several. Focus rules need a window manager that sets _NET_ACTIVE_WINDOW. The GPU renderer stays opt-in. The beta guide has the full list.
Files
compust-0.3.0-beta.2-x86_64-linux.tar.gz contains the binary, BUILDINFO, the README in both languages, the example configuration, and the license. Verify it with sha256sum -c SHA256SUMS. The binary needs x86_64 Linux with glibc 2.34 or newer. The GPU renderer loads the system's EGL library when it starts; without one, Compust draws with XRender.
Português (Brasil)
A quinta beta do Compust, para testes controlados, no caminho até a 1.0. Ela traz os recursos da primeira etapa do marco 1.0, sombras, suspensão da composição em tela cheia e regras pelo foco, junto com cantos arredondados e recarga da configuração quando o arquivo é salvo. Leia o guia da beta antes de instalar: ele traz o escopo declarado, como voltar ao compositor anterior e como relatar um problema.
Escopo declarado
Uma máquina registrada rodou o código desta beta: um AMD Ryzen 5 5600GT com gráficos Radeon Vega integrados e radeonsi, no Xorg 21.1.24 com o driver modesetting e glamor, em 1920×1080 a 60 Hz. Suas sessões de desktop passaram em todos os cenários com o i3 4.25.1, com Present, com XRender direto e com fades, translucidez e desfoque, num commit anterior aos cantos arredondados, que vêm desligados, e à correção da GPU abaixo. Suas verificações de sombras, regras pelo foco, cantos arredondados e suspensão em tela cheia passaram com o XRender e com o renderizador de GPU num commit cujo código do compositor difere do desta versão apenas no número da versão. O desktop com RX 9060 XT e XLibre rodou a 0.3.0-beta.1, e o laptop Intel rodou as betas anteriores. GPUs NVIDIA, GPUs Intel com esta beta, o XLibre com esta beta e outros gerenciadores de janelas não foram testados; relatos são bem-vindos.
Mudanças desde a 0.3.0-beta.1
- Sombras: com
shadow_radiusacima de zero, as janelas projetam uma sombra preta suave, ajustada porshadow_offset_x,shadow_offset_yeshadow_opacity. Janelas normais, diálogos, janelas utilitárias, telas de abertura e barras de ferramentas projetam sombra; menus, dicas de ferramenta, docks e janelas que desenham a própria sombra, não. Oshadowde uma regra muda isso. As sombras vêm desligadas. - Cantos arredondados:
corner_radiusarredonda os cantos das mesmas janelas, suavizados em cada pixel que um arco cruza, e suas sombras e o desfoque atrás delas acompanham os arcos. Ocorner_radiusde uma regra arredonda ou deixa quadradas as janelas que ela escolhe. Janelas com formato próprio e em tela cheia continuam quadradas. Os cantos vêm desligados. - Suspensão da composição em tela cheia: com
unredirect_fullscreen = true, o Compust para de compor enquanto uma janela opaca e quadrada cobre a tela inteira, como um jogo ou vídeo em tela cheia, e volta assim que isso muda. - Regras pelo foco: o seletor
focusedde uma regra escolhe a janela ativa ou todas as outras, a partir do_NET_ACTIVE_WINDOWdo gerenciador de janelas, para que uma regra deixe translúcidas as janelas inativas. - Recarga ao salvar: o Compust recarrega a configuração quando o arquivo é salvo, depois que ele fica um décimo de segundo sem mudar. Ele observa os diretórios dos arquivos que leria e o destino de um link simbólico, então editores que substituem o arquivo também são acompanhados. O SIGUSR1 continua recarregando.
- Correções: depois de um redimensionamento da raiz, o servidor podia apresentar o último quadro do renderizador substituído depois do primeiro do novo, deixando pixels antigos na tela; agora o quadro é mostrado de novo. O renderizador de GPU misturava duas vezes uma janela translúcida onde dois dos retângulos que repintava se sobrepunham, o que aparecia em janelas translúcidas com sombra e desfoque.
- Ferramentas: o modo
--featuresdo probe de desktop e otools/features-check.shconferem sombras, regras pelo foco, cantos arredondados e suspensão em tela cheia num display dedicado, e comparam as imagens do renderizador de GPU com as do XRender.
O guia de validação em desktops registra as verificações por trás desta beta. Nenhuma vantagem de desempenho sobre o picom é alegada.
Limitações conhecidas
As sombras são pretas, janelas com formato próprio não projetam sombra, e uma borda de janela grossa é arredondada apenas no lado externo. A suspensão da composição em tela cheia nunca vale para um monitor entre vários. As regras pelo foco precisam de um gerenciador de janelas que defina o _NET_ACTIVE_WINDOW. O renderizador de GPU continua opcional. O guia da beta traz a lista completa.
Arquivos
compust-0.3.0-beta.2-x86_64-linux.tar.gz contém o binário, BUILDINFO, o README nos dois idiomas, a configuração de exemplo e a licença. Verifique-o com sha256sum -c SHA256SUMS. O binário exige Linux x86_64 com glibc 2.34 ou mais recente. O renderizador de GPU carrega a biblioteca EGL do sistema ao iniciar; sem ela, o Compust desenha com XRender.