Installation

Requirements

  • Linux or FreeBSD.

  • Rust 1.96 or later.

  • Python 3.

  • libseat, libinput and udev (development headers to build from source).

  • A GPU with DRM/KMS support.

Install

Arch Linux

Install ionwl-git from the AUR.

From Source

Build and install with make:

make
make install PREFIX=/opt/ionwl

mkdir -p ~/.config/ionwl
cp config/default/ion_init.py ~/.config/ionwl/

PREFIX defaults to /usr/local. Rather than repeating it on each command, set it once in a gitignored .env file at the repository root (a command-line PREFIX=... still overrides it):

PREFIX = /opt/ionwl

Runtime Programs

The bundled configuration binds external programs for its default actions: a terminal (foot), an application launcher (tofi), a notification daemon (mako) and volume/media controls (wpctl, cmus). Install the ones you use, or edit the bindings in your config.

Launching

Run from a TTY, not from inside another compositor. Launching from a TTY needs an active seat, provided either by a logind session (the usual case on systemd systems - simply log in on a virtual terminal) or a running seatd daemon.

Launch either the local build produced by cargo or the installed binary.

Local Build
./target/release/ionwl
Installed
/opt/ionwl/bin/ionwl
From a Display Manager

make install also installs a wayland-sessions entry, so IonWL appears as a session at the login screen. Display managers only scan wayland-sessions directories on XDG_DATA_DIRS, so install into a prefix they search (typically /usr):

make install PREFIX=/usr

Uninstalling

Remove an installation with make uninstall, passing the same PREFIX.

Next Steps

See Configuration to set up preferences and key bindings.