Rozwój LineXinBar: dokumentacja, kod źródłowy, tłumaczenia
Dokumentacja
Pełna dokumentacja dla użytkowników i programistów leży obok kodu, w docs/. Wszystkie przewodniki:
Jak to jest zbudowane
Dwa programy, oba w Rust: lxb, mały kompozytor Wayland zbudowany na Smithay, oraz lxb-desktop, powłoka, rysowana na GPU przez wgpu.
- Kompozytor sam steruje ekranami przez DRM/KMS — każde złącze to prawdziwe wyjście z własnym swapchainem i własną pętlą taktowaną vblankiem — albo działa zagnieżdżony w oknie na potrzeby rozwoju. Programy X11 uruchamia przez prywatny Xwayland.
- Powłoka jest klientem layer-shell, więc działa też na innych kompozytorach, które implementują layer-shell. Rozmawia z kompozytorem przez jeden prywatny protokół,
lxb_shell_v1, którego mogą używać tylko własne programy sesji. - Wygląd jest wyliczany, a nie malowany. Tapeta to jedna funkcja analityczna miejsca, na które się patrzy, obliczana dla każdego piksela; każdy znak to biała sylwetka zmierzona w pole odległości i postawiona przez shader jako kropla wody. Ta strona uruchamia przeniesienia tych samych dwóch shaderów.
- Wokół nich:
lxb-portaldo udostępniania ekranu, okien wyboru plików i reszty portalu pulpitu;lxb-updates, koordynator aktualizacji; oraz opcjonalni pomocnicy dla RetroArch, Heroic i RPCS3.
Tłumaczenia
Każde słowo, które pokazuje powłoka, pochodzi z katalogu Fluent, w dziesięciu językach: niemieckim, brytyjskim i amerykańskim angielskim, hiszpańskim, francuskim, hindi, polskim, brazylijskim portugalskim, rosyjskim i chińskim uproszczonym.
Katalogi to zwykłe pliki tekstowe w crates/lxb-desktop/locales/. Poprawienie tłumaczenia to edycja jednej linii; nowy język to nowy katalog, a testy sprawdzają, czy każdy katalog ma te same komunikaty z tymi samymi argumentami. Ekran logowania i siostrzane aplikacje mają własne katalogi w tej samej postaci.
Zgłoś błąd
Otwórz zgłoszenie na GitHubie i dołącz cztery rzeczy, dzięki którym problem da się odtworzyć:
- twoją dystrybucję i jej wersję;
- twoją kartę graficzną i sterownik;
- sposób uruchomienia LineXinBar — z ekranu logowania, przez
lxb --shellna konsoli albo w sesji zagnieżdżonej; - logi z chwili, gdy coś poszło nie tak —
journalctl --user -bdla sesji albo wyjście terminala z uruchomienia zagnieżdżonego.
Problem z kontrolerem łatwiej wyśledzić, znając markę i model pada oraz wiedząc, czy jest podłączony kablem, czy przez Bluetooth.
Współtwórz
Zgłoszenia błędów, testy sprzętu, tłumaczenia i kod są mile widziane.
- Testy sprzętu liczą się teraz najbardziej: inni producenci grafiki, konsole przenośne, kilka GPU, nietypowe ekrany i kontrolery.
- Tłumaczenia: popraw to, co w twoim języku brzmi źle, albo dodaj nowy język.
- Kod: budowanie to
cargo build --release --locked, testy tocargo test, a sesja zagnieżdżona to sposób, żeby zobaczyć zmianę w działaniu.
Licencja
LineXinBar to wolne oprogramowanie na licencji GNU General Public License, wyłącznie w wersji 3.
Dołączone fonty Roboto i Roboto Mono mają własne otwarte licencje, podobnie jak fonty Noto, które powłoka zawiera dla hindi i chińskiego, oraz motyw kursorów Bibata. Ta strona jest częścią repozytorium i ma tę samą licencję.