‹ Écran d'accueilDéveloppement

Développer LineXinBar : documentation, code source, traductions

Documentation

La référence complète pour les utilisateurs et les développeurs vit à côté du code, dans docs/. Tous les guides :

Comment il est construit

Deux programmes, tous deux en Rust : lxb, un petit compositeur Wayland construit sur Smithay, et lxb-desktop, le shell, dessiné sur le GPU avec wgpu.

  • Le compositeur pilote lui-même les écrans grâce à DRM/KMS — chaque connecteur une vraie sortie avec sa propre swapchain et sa propre boucle cadencée par le vblank — ou tourne imbriqué dans une fenêtre pour le développement. Il fait tourner les programmes X11 grâce à un Xwayland privé.
  • Le shell est un client layer-shell, il tourne donc aussi sur d'autres compositeurs qui implémentent layer-shell. Il parle au compositeur via un protocole privé, lxb_shell_v1, que seuls les programmes de la session peuvent utiliser.
  • L'apparence est calculée, pas peinte. Le fond d'écran est une seule fonction analytique de l'endroit où l'on regarde, évaluée à chaque pixel ; chaque marque est une silhouette blanche mesurée en champ de distances et dressée en goutte d'eau par le shader. Ce site fait tourner des portages de ces deux mêmes shaders.
  • Autour d'eux : lxb-portal pour le partage d'écran, les boîtes de dialogue de fichiers et le reste du portail de bureau ; lxb-updates, le coordinateur de mises à jour ; et les assistants facultatifs pour RetroArch, Heroic et RPCS3.

Traductions

Chaque mot qu'affiche le shell vient d'un catalogue Fluent, en dix langues : allemand, anglais britannique et américain, espagnol, français, hindi, polonais, portugais du Brésil, russe et chinois simplifié.

Les catalogues sont de simples fichiers texte dans crates/lxb-desktop/locales/. Corriger une traduction, c'est modifier une ligne ; une nouvelle langue, c'est un nouveau catalogue, et les tests vérifient que chaque catalogue porte les mêmes messages avec les mêmes arguments. L'écran de connexion et les applications sœurs ont leurs propres catalogues, sous la même forme.

Signaler un bogue

Ouvrez un ticket sur GitHub, et joignez les quatre choses qui rendent un problème reproductible :

  • votre distribution et sa version ;
  • votre carte graphique et son pilote ;
  • comment vous avez lancé LineXinBar — depuis l'écran de connexion, avec lxb --shell sur une console, ou en imbriqué ;
  • les journaux autour du moment où ça s'est mal passé — journalctl --user -b pour une session, ou la sortie du terminal d'une exécution imbriquée.

Un problème de manette se traque plus facilement avec la marque et le modèle de la manette, et en sachant si elle est branchée ou en Bluetooth.

Contribuer

Rapports de bogues, tests matériels, traductions et code sont tous bienvenus.

  • Les tests matériels comptent le plus en ce moment : autres fabricants graphiques, consoles portables, plusieurs GPU, écrans et manettes inhabituels.
  • Traductions : corrigez ce qui sonne faux dans votre langue, ou ajoutez-en une.
  • Code : la compilation, c'est cargo build --release --locked, les tests, cargo test, et la session imbriquée est le moyen de voir un changement fonctionner.

Licence

LineXinBar est un logiciel libre, sous licence GNU General Public License, version 3 uniquement.

Les polices Roboto et Roboto Mono fournies sont sous leurs propres licences libres, tout comme les polices Noto que le shell emporte pour le hindi et le chinois et le thème de curseurs Bibata. Ce site fait partie du dépôt et est sous la même licence.