Install guide
Using package managers
If you are using Nix(OS) with Nix Flakes enabled, refer to the Nix page, and the example Nix flakes setup
Manual install
First, get the latest Rust available through your preferred means.
Minimum supported rust version
The MSRV of fht-compositor
is mostly tied to Smithay's MSRV.
As of writing this it's currently 1.84
You will need the following system dependencies. Depending on your distribution, you might want to install the -dev
or -devel
or -headers
variant to get developement headers that are required to build.
libwayland
and dependencieslibxkbcommon
and dependenciesmesa
with the appropriate OpenGL driver for you GPU.- In order to run the compositor from a TTY:
libudev
,libinput
,libgbm
,libseat
,libdrm
andlib-displayinfo
- To use XDG screencast portal:
pipewire
,dbus
Then you can proceed with compiling.
# Clone and build.
git clone https://github.com/nferhat/fht-compositor/ && cd fht-compositor
# If you are not under systemd
cargo build --profile opt
# If you are under systemd, highly recommended
# See below the note on UWSM
cargo build --profile opt --features uwsm
# You can copy it to /usr/local/bin or ~/.local/bin, make sure its in $PATH though!
cp target/opt/fht-compositor /somewhere/inside/PATH
# Wayland session desktop files
install -Dm644 res/fht-compositor.desktop -t /usr/share/wayland-sessions # generic
# See below the note on UWSM, highly recommended
install -Dm644 res/fht-compositor-uwsm.desktop -t /usr/share/wayland-sessions
Build features
Do not compile the compositor with --all-features
as some of these are reserved for dev/testing purposes (for exxample enabling profiling). Always refer to the Cargo.toml
file before enabling features
Using Universal Wayland Session Manager
If you are using a systemd distribution, you are highlighy recommended to install UWSM to launch the compositor session as it will bind many systemd targets to make the overall compositor experience better.
To do so, install UWSM with your favourite package manager and enable the uwsm
feature at build time.
Portals
Refer to the portals page if you want the included portal (you most likely want to)