‹ Tela inicialDesenvolvimento

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-portal para 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 --shell num console, ou aninhado;
  • os logs do momento em que deu errado — journalctl --user -b para 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ão cargo 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.