‹ StartbildschirmEntwicklung

LineXinBar entwickeln: Dokumentation, Quellcode, Übersetzungen

Dokumentation

Die vollständige Referenz für Nutzer und Entwickler liegt neben dem Code, in docs/. Jede Anleitung:

Wie es aufgebaut ist

Zwei Programme, beide in Rust: lxb, ein kleiner Wayland-Compositor auf Basis von Smithay, und lxb-desktop, die Shell, mit wgpu auf der GPU gezeichnet.

  • Der Compositor steuert die Bildschirme selbst über DRM/KMS an — jeder Anschluss ein echter Ausgang mit eigener Swapchain und eigener vom VBlank getriebener Schleife — oder läuft zur Entwicklung verschachtelt in einem Fenster. X11-Programme führt er über ein privates Xwayland aus.
  • Die Shell ist ein Layer-Shell-Client, läuft also auch auf anderen Compositoren, die Layer-Shell umsetzen. Sie spricht mit dem Compositor über ein privates Protokoll, lxb_shell_v1, das nur die eigenen Programme der Sitzung benutzen dürfen.
  • Das Aussehen wird berechnet, nicht gemalt. Der Hintergrund ist eine einzige analytische Funktion des Blickpunkts, pro Pixel ausgewertet; jedes Zeichen ist eine weiße Silhouette, in ein Distanzfeld vermessen und vom Shader als Wassertropfen aufgestellt. Diese Website nutzt Portierungen derselben beiden Shader.
  • Drumherum: lxb-portal für Bildschirmfreigabe, Dateidialoge und den Rest des Desktop-Portals; lxb-updates, der Aktualisierungskoordinator; und die optionalen Helfer für RetroArch, Heroic und RPCS3.

Übersetzungen

Jedes Wort, das die Shell zeigt, stammt aus einem Fluent-Katalog, in zehn Sprachen: Deutsch, britisches und amerikanisches Englisch, Spanisch, Französisch, Hindi, Polnisch, brasilianisches Portugiesisch, Russisch und vereinfachtes Chinesisch.

Die Kataloge sind einfache Textdateien in crates/lxb-desktop/locales/. Eine Übersetzung zu korrigieren heißt, eine Zeile zu bearbeiten; eine neue Sprache ist ein neuer Katalog, und die Tests prüfen, dass jeder Katalog dieselben Meldungen mit denselben Argumenten trägt. Der Anmeldebildschirm und die Geschwister-Anwendungen haben eigene Kataloge in derselben Form.

Einen Fehler melden

Eröffnen Sie ein Issue auf GitHub und geben Sie die vier Dinge an, die ein Problem nachvollziehbar machen:

  • Ihre Distribution und deren Version;
  • Ihre Grafikkarte und den Treiber;
  • wie Sie LineXinBar gestartet haben — vom Anmeldebildschirm, mit lxb --shell auf einer Konsole oder verschachtelt;
  • die Protokolle um den Moment, in dem es schiefging — journalctl --user -b für eine Sitzung oder die Terminalausgabe eines verschachtelten Laufs.

Einem Controller-Problem ist mit Hersteller und Modell des Controllers leichter beizukommen, und damit, ob er per Kabel oder über Bluetooth verbunden ist.

Mitmachen

Fehlerberichte, Hardwaretests, Übersetzungen und Code sind alle willkommen.

  • Hardwaretests zählen gerade am meisten: andere Grafikhersteller, Handhelds, mehrere GPUs, ungewöhnliche Bildschirme und Controller.
  • Übersetzungen: Korrigieren Sie, was in Ihrer Sprache falsch klingt, oder fügen Sie eine hinzu.
  • Code: Der Build ist cargo build --release --locked, die Tests sind cargo test, und die verschachtelte Sitzung ist der Weg, eine Änderung in Aktion zu sehen.

Lizenz

LineXinBar ist freie Software, lizenziert unter der GNU General Public License, ausschließlich Version 3.

Die mitgelieferten Schriften Roboto und Roboto Mono stehen unter ihren eigenen offenen Lizenzen, ebenso die Noto-Schriften, die die Shell für Hindi und Chinesisch mitbringt, und das Cursor-Thema Bibata. Diese Website ist Teil des Repositorys und steht unter derselben Lizenz.