‹ Start screenGet started

Get started with LineXinBar: Arch, Debian, Ubuntu, Fedora, NixOS

Try it in a window

You do not have to leave your desktop to see it. With Rust 1.89 or newer and the build dependencies installed, one script builds LineXinBar and opens it as a window inside the session you already have.

git clone https://github.com/Petexy/LineXinBar.git
cd LineXinBar
./scripts/run-nested.sh

The nested desktop gets its own session bus, so the applications you open inside it stay inside it. Closing the window ends it. ./scripts/run-nested.sh 3 opens three virtual displays instead of one, to try the multi-display side.

Build dependencies, for each distribution:

sudo pacman -S --needed rust pkgconf clang wayland libinput seatd systemd-libs libdrm \
    mesa libxkbcommon libglvnd libx11 libxcb libxcursor libxi libxkbcommon-x11 \
    alsa-lib ffmpeg libpipewire

Install a package

Ready-made packages for Arch, Debian and Ubuntu, and Fedora are attached to each release on GitHub. Or build them yourself from the checkout — the recipes are in the repository.

./packaging/build.sh arch -- --syncdeps

Renders a PKGBUILD for the checkout and runs makepkg; the packages land in packaging/out/arch/.

Install lxb-compositor and lxb-desktop: the compositor, and the shell with its portal, its update coordinator and the session entry.

Start the session

Once the packages are installed, choose LineXinBar from the session list on your login screen, like any other desktop.

From a text console, lxb --shell starts the whole thing; quitting the shell logs you out rather than leaving an empty screen behind. The Console Experience login screen is made to go with it, and hands over to the shell as one continuous picture.

Settings live in ~/.config/lxb/ — mostly written by the shell's own Settings column, all readable and editable by hand.

Optional packages

Three integrations are packages of their own, so a machine that never emulates a console carries none of it. Install one while the session runs and its row appears within seconds.

Each is version-locked to the shell it was built with. Steam needs no package of its own — only Valve's Steam client.

What it needs

  • Linux, with a graphics driver that can drive the displays (DRM/KMS) and a working OpenGL ES driver; a Vulkan driver is used where there is one.
  • systemd-logind or seatd, which hands the session its displays and input devices.
  • udev, to hear about screens and controllers being plugged in.
  • Optional: Xwayland for X11 programs, PipeWire for sound and screen sharing, Flatpak for the integrations, ddcutil for the brightness of external monitors.

Everything about the hardware is discovered as it runs — every display, mode and GPU — so nothing has to be configured for your machine first.

Hardware

LineXinBar is in early development. Testing so far has been mainly on one AMD graphics card driving two displays, plus nested sessions.

Nothing is tied to that hardware — the multi-GPU path exists — but other graphics vendors, handhelds and multi-GPU machines need more people trying them. If you run it on something new, a report of what worked and what did not is one of the most useful things you can send.