Desenvolva o LineXinBar: documentação, código-fonte, traduções
Documentação
A referência completa para usuários e desenvolvedores fica ao lado do código, em docs/. Todos os guias:
Como ele é feito
Dois programas, ambos em Rust: lxb, um pequeno compositor Wayland feito sobre o Smithay, e lxb-desktop, o shell, desenhado na GPU com wgpu.
- O compositor controla as telas ele mesmo, por DRM/KMS — cada conector uma saída de verdade com a sua própria swapchain e o seu próprio loop ditado pelo vblank — ou roda aninhado numa janela para o desenvolvimento. Ele roda programas X11 por um Xwayland privado.
- O shell é um cliente layer-shell, então também roda em outros compositores que implementam o layer-shell. Ele conversa com o compositor por um protocolo privado,
lxb_shell_v1, que só os programas da própria sessão podem usar. - A aparência é calculada, não pintada. O papel de parede é uma única função analítica de para onde você olha, avaliada a cada pixel; cada marca é uma silhueta branca medida num campo de distâncias e erguida como uma gota d'água pelo shader. Este site roda versões desses mesmos dois shaders.
- Em volta deles:
lxb-portalpara o compartilhamento de tela, os diálogos de arquivos e o resto do portal de desktop;lxb-updates, o coordenador de atualizações; e os assistentes opcionais para RetroArch, Heroic e RPCS3.
Traduções
Cada palavra que o shell mostra vem de um catálogo Fluent, em dez idiomas: alemão, inglês britânico e americano, espanhol, francês, hindi, polonês, português do Brasil, russo e chinês simplificado.
Os catálogos são arquivos de texto simples em crates/lxb-desktop/locales/. Corrigir uma tradução é editar uma linha; um idioma novo é um catálogo novo, e os testes conferem se todo catálogo tem as mesmas mensagens com os mesmos argumentos. A tela de login e os aplicativos irmãos têm catálogos próprios no mesmo formato.
Relatar um bug
Abra uma issue no GitHub e inclua as quatro coisas que tornam um problema reproduzível:
- a sua distribuição e a versão dela;
- a sua placa de vídeo e o driver;
- como você iniciou o LineXinBar — pela tela de login, com
lxb --shellnum console, ou aninhado; - os logs do momento em que deu errado —
journalctl --user -bpara uma sessão, ou a saída do terminal de uma execução aninhada.
Um problema de controle é mais fácil de rastrear com a marca e o modelo do controle, e sabendo se ele está conectado por cabo ou por Bluetooth.
Contribuir
Relatos de bugs, testes de hardware, traduções e código são todos bem-vindos.
- Testes de hardware são o que mais importa agora: outros fabricantes de vídeo, portáteis, várias GPUs, telas e controles incomuns.
- Traduções: corrija o que soa errado no seu idioma, ou acrescente um.
- Código: a compilação é
cargo build --release --locked, os testes sãocargo test, e a sessão aninhada é o jeito de ver uma mudança funcionando.
Licença
O LineXinBar é software livre, licenciado sob a GNU General Public License, somente a versão 3.
As fontes Roboto e Roboto Mono incluídas estão sob as suas próprias licenças abertas, assim como as fontes Noto que o shell leva para o hindi e o chinês e o tema de cursores Bibata. Este site faz parte do repositório e está sob a mesma licença.