Build and install
Atrium is built from source on Void Linux. These steps produce the compositor, the session wrapper, and the greeter entry. The shell and the other components each have their own short section afterwards.
Build dependencies
doas xbps-install -S rust cargo pkg-config \
libdrm-devel libinput-devel libseat-devel libxkbcommon-devel \
mesa-devel MesaLib-devel wayland-devel wayland-protocols \
pango-devel cairo-devel pipewire-devel libdisplay-info-devel
Rust stable, MSRV 1.85.
Runtime dependencies
doas xbps-install -S libdrm libinput libseat libxkbcommon mesa wayland \
pango cairo pipewire libdisplay-info \
seatd dbus xdg-desktop-portal xdg-desktop-portal-gtk \
xwayland-satellite
Seat management is seatd: enable the service (ln -s /etc/sv/seatd /var/service/) and put your user in the _seatd group. libseat auto-detects it. Atrium does not use elogind; The system underneath covers the rest of the base.
Build
git clone https://git.efpsoftware.org/atrium/atrium.git
cd atrium
make build
make build runs cargo build --release --no-default-features --features dbus,screencast: no systemd feature, D-Bus kept for portals, screencasting on.
make test runs the same gate the pre-commit hook enforces: cargo fmt --check, clippy with -D warnings across the workspace, and the tests.
Try it nested
cargo run
Opens a compositor window inside your current Wayland session through the winit backend, reading your real config. Do not pass --session here; that forces the TTY/DRM backend.
Install
doas make install
Installs to /usr/local/bin (atrium, atrium-session, atrium-session-debug), the wayland-session entries for greetd or any display manager (atrium.desktop, atrium-debug.desktop), the portal configuration, the default config, and the bundled Heroicons. The install target does not rebuild; run make build first.
First-time setup
mkdir -p ~/.config/atrium
cp /usr/share/atrium/default-config.kdl ~/.config/atrium/config.kdl
Then edit ~/.config/atrium/config.kdl. The two bindings to set first are the terminal and launcher under binds (Mod+Return, Mod+R). The file hot-reloads on save. See Configuration.
The shell
git clone https://git.efpsoftware.org/atrium/atrium-shell.git
cd atrium-shell
make install # to ~/.local
Requires quickshell (Atrium builds its own lean package without polkit; see The system underneath). Add spawn-at-startup "~/.local/bin/atrium-shell" to config.kdl. atrium-shell restart restarts a running instance.
Network app and portal
cd atrium-network && make build && doas make install
cd atrium-portal && make build && doas make install
atrium-network needs gtk4, gtk4-layer-shell, and a running wpa_supplicant with its D-Bus interface enabled (-u). atrium-portal is D-Bus activated by xdg-desktop-portal when an app asks to share the screen; see atrium-portal for the portals.conf entry.