Desarrollar LineXinBar: documentación, código fuente, traducciones
Documentación
La referencia completa para usuarios y desarrolladores vive junto al código, en docs/. Todas las guías:
Cómo está hecho
Dos programas, ambos en Rust: lxb, un pequeño compositor Wayland construido sobre Smithay, y lxb-desktop, el shell, dibujado en la GPU con wgpu.
- El compositor maneja las pantallas él mismo a través de DRM/KMS —cada conector, una salida real con su propia swapchain y su propio bucle marcado por el vblank— o funciona anidado en una ventana para el desarrollo. Ejecuta los programas X11 a través de un Xwayland privado.
- El shell es un cliente layer-shell, así que también funciona sobre otros compositores que implementen layer-shell. Habla con el compositor mediante un protocolo privado,
lxb_shell_v1, que solo pueden usar los programas propios de la sesión. - El aspecto se calcula, no se pinta. El fondo es una única función analítica del punto al que se mira, evaluada en cada píxel; cada marca es una silueta blanca medida en un campo de distancias y levantada como una gota de agua por el shader. Este sitio web ejecuta adaptaciones de esos mismos dos shaders.
- A su alrededor:
lxb-portalpara compartir pantalla, los diálogos de archivos y el resto del portal de escritorio;lxb-updates, el coordinador de actualizaciones; y los asistentes opcionales para RetroArch, Heroic y RPCS3.
Traducciones
Cada palabra que muestra el shell sale de un catálogo Fluent, en diez idiomas: alemán, inglés británico y estadounidense, español, francés, hindi, polaco, portugués de Brasil, ruso y chino simplificado.
Los catálogos son archivos de texto sencillos en crates/lxb-desktop/locales/. Corregir una traducción es editar una línea; un idioma nuevo es un catálogo nuevo, y las pruebas comprueban que todos los catálogos llevan los mismos mensajes con los mismos argumentos. La pantalla de inicio de sesión y las aplicaciones hermanas tienen sus propios catálogos con la misma forma.
Informar de un error
Abra una incidencia en GitHub e incluya las cuatro cosas que hacen que un problema se pueda reproducir:
- su distribución y su versión;
- su tarjeta gráfica y su controlador;
- cómo inició LineXinBar: desde la pantalla de inicio de sesión, con
lxb --shellen una consola o anidado; - los registros del momento en que algo salió mal:
journalctl --user -bpara una sesión, o la salida del terminal de una ejecución anidada.
Un problema con un mando es más fácil de seguir con la marca y el modelo del mando, y sabiendo si está conectado por cable o por Bluetooth.
Colaborar
Los informes de errores, las pruebas de hardware, las traducciones y el código son bienvenidos.
- Las pruebas de hardware son lo que más importa ahora: otros fabricantes de gráficos, portátiles de juego, varias GPU, pantallas y mandos poco habituales.
- Traducciones: corrija lo que suene mal en su idioma, o añada uno.
- Código: la compilación es
cargo build --release --locked, las pruebas soncargo test, y la sesión anidada es la forma de ver un cambio funcionando.
Licencia
LineXinBar es software libre, con licencia GNU General Public License, solo la versión 3.
Las fuentes Roboto y Roboto Mono incluidas tienen sus propias licencias libres, igual que las fuentes Noto que el shell lleva para el hindi y el chino y el tema de cursor Bibata. Este sitio web forma parte del repositorio y tiene la misma licencia.