{ fetchFromGitLab, lib, meson, ninja, python3, weston, xorg, xwayland, withCage ? false, cage, withKwin ? false, kdePackages, withMutter ? false, gnome, withDbus ? withMutter, dbus, # Since 0.0.3, mutter compositors run with their own DBUS sessions }: let compositors = [ weston ] ++ lib.optional withCage cage ++ lib.optional withKwin kdePackages.kwin ++ lib.optional withMutter gnome.mutter ++ lib.optional withDbus dbus; in python3.pkgs.buildPythonApplication rec { pname = "xwayland-run"; version = "0.0.4"; src = fetchFromGitLab { domain = "gitlab.freedesktop.org"; owner = "ofourdan"; repo = "xwayland-run"; rev = version; hash = "sha256-FP/2KNPehZEGKXr+fKdVj4DXzRMpfc3x7K6vH6ZsGdo="; }; pyproject = false; outputs = [ "out" "man" ]; nativeBuildInputs = [ meson ninja ]; postInstall = '' wrapProgram $out/bin/wlheadless-run \ --prefix PATH : ${lib.makeBinPath compositors} wrapProgram $out/bin/xwayland-run \ --prefix PATH : ${ lib.makeBinPath [ xwayland xorg.xauth ] } wrapProgram $out/bin/xwfb-run \ --prefix PATH : ${ lib.makeBinPath ( compositors ++ [ xwayland xorg.xauth ] ) } ''; meta = { changelog = "https://gitlab.freedesktop.org/ofourdan/xwayland-run/-/releases/${src.rev}"; description = "Set of small utilities revolving around running Xwayland and various Wayland compositor headless"; homepage = "https://gitlab.freedesktop.org/ofourdan/xwayland-run"; license = lib.licenses.gpl2Only; maintainers = with lib.maintainers; [ arthsmn ]; platforms = lib.platforms.linux; }; }