fedora 41 was used to build wlroots 0.18 and dwl 0.7

Install Required Packages

  • Same packages are needed by both wlroots and dwl
    sudo dnf install make gcc libinput-devel meson wayland-devel wayland-utils wayland-protocols-devel waylandpp-devel libdrm-devel libxkbcommon-devel pixman-devel xcb-util-cursor-devel xcb-util-errors-devel xcb-util-xrm-devel xcb-util-devel mesa-libgbm-devel lcms2-devel vulkan-loader-devel glslang-devel libseat-devel hwdata-devel libdisplay-info-devel libliftoff-devel xcb-util-wm-devel xorg-x11-server-Xwayland xorg-x11-server-Xwayland-devel cairo-devel
    

Wlroots

Building wlroots is recommended as you can customize your build (enabling Xwayland support)

  • Clone and build
    git clone --branch 0.18 https://gitlab.freedesktop.org/wlroots/wlroots.git
    cd wlroots/
    meson setup build
    ninja -C build
    

To enable Xwayland support edit meson.build and set x11-backend and xwayland to true in features

  • Install
    sudo ninja -C build install
    sudo cp /usr/local/lib64/pkgconfig/wlroots-0.18.pc /usr/lib64/pkgconfig/
    sudo cp /usr/local/lib64/libwlroots-0.18.so /usr/lib64/
    

dwl

  • Clone and install
    git clone --branch 0.7 https://codeberg.org/dwl/dwl.git
    cd dwl/
    sudo make install
    

Just use the command dwl to start