maomaowm/nix/default.nix
2025-07-30 15:03:10 +08:00

86 lines
1.5 KiB
Nix

{
lib,
fetchFromGitHub,
libX11,
libinput,
libxcb,
libxkbcommon,
pcre2,
pixman,
pkg-config,
stdenv,
wayland,
wayland-protocols,
wayland-scanner,
xcbutilwm,
xwayland,
enableXWayland ? true,
meson,
ninja,
mmsg,
scenefx,
wlroots_0_19,
libGL,
}: let
pname = "mango";
# Use patched wlroots from github.com/DreamMaoMao/wlroots
wlroots-git = wlroots_0_19.overrideAttrs (
final: prev: {
src = fetchFromGitHub {
owner = "DreamMaoMao";
repo = "wlroots";
rev = "afbb5b7c2b14152730b57aa11119b1b16a299d5b";
sha256 = "sha256-pVU+CuiqvduMTpsnDHX/+EWY2qxHX2lXKiVzdGtcnYY=";
};
}
);
in
stdenv.mkDerivation {
inherit pname;
version = "nightly";
src = builtins.path {
path = ../.;
name = "source";
};
nativeBuildInputs = [
meson
ninja
pkg-config
wayland-scanner
];
buildInputs =
[
libinput
libxcb
libxkbcommon
pcre2
pixman
wayland
wayland-protocols
wlroots-git
scenefx
libGL
]
++ lib.optionals enableXWayland [
libX11
xcbutilwm
xwayland
];
passthru = {
providedSessions = ["mango"];
inherit mmsg;
};
meta = {
mainProgram = "mango";
description = "A streamlined but feature-rich Wayland compositor";
homepage = "https://github.com/DreamMaoMao/mango";
license = lib.licenses.gpl3Plus;
maintainers = [];
platforms = lib.platforms.unix;
};
}