2022-09-01 20:35:50 +03:00
|
|
|
{
|
|
|
|
version,
|
|
|
|
src,
|
|
|
|
#
|
|
|
|
wlroots,
|
|
|
|
xwayland,
|
|
|
|
fetchpatch,
|
|
|
|
lib,
|
2022-11-13 22:32:15 +03:00
|
|
|
hwdata,
|
2022-09-01 20:35:50 +03:00
|
|
|
hidpiXWayland ? true,
|
|
|
|
enableXWayland ? true,
|
|
|
|
nvidiaPatches ? false,
|
|
|
|
}:
|
|
|
|
assert (lib.assertMsg (hidpiXWayland -> enableXWayland) ''
|
|
|
|
wlroots-hyprland: cannot have hidpiXWayland when enableXWayland is false.
|
|
|
|
'');
|
|
|
|
(wlroots.overrideAttrs
|
|
|
|
(old: {
|
|
|
|
inherit version src;
|
|
|
|
pname =
|
|
|
|
old.pname
|
|
|
|
+ "-hyprland"
|
|
|
|
+ (
|
|
|
|
if hidpiXWayland
|
|
|
|
then "-hidpi"
|
|
|
|
else ""
|
|
|
|
)
|
|
|
|
+ (
|
|
|
|
if nvidiaPatches
|
|
|
|
then "-nvidia"
|
|
|
|
else ""
|
|
|
|
);
|
|
|
|
patches =
|
|
|
|
(old.patches or [])
|
|
|
|
++ (lib.optionals (enableXWayland && hidpiXWayland) [
|
|
|
|
(fetchpatch {
|
|
|
|
url = "https://gitlab.freedesktop.org/lilydjwg/wlroots/-/commit/6c5ffcd1fee9e44780a6a8792f74ecfbe24a1ca7.diff";
|
|
|
|
sha256 = "sha256-Eo1pTa/PIiJsRZwIUnHGTIFFIedzODVf0ZeuXb0a3TQ=";
|
|
|
|
})
|
|
|
|
(fetchpatch {
|
|
|
|
url = "https://gitlab.freedesktop.org/wlroots/wlroots/-/commit/18595000f3a21502fd60bf213122859cc348f9af.diff";
|
|
|
|
sha256 = "sha256-jvfkAMh3gzkfuoRhB4E9T5X1Hu62wgUjj4tZkJm0mrI=";
|
|
|
|
revert = true;
|
|
|
|
})
|
|
|
|
]);
|
|
|
|
postPatch =
|
|
|
|
(old.postPatch or "")
|
|
|
|
+ (
|
|
|
|
if nvidiaPatches
|
|
|
|
then ''
|
|
|
|
substituteInPlace render/gles2/renderer.c --replace "glFlush();" "glFinish();"
|
|
|
|
''
|
|
|
|
else ""
|
|
|
|
);
|
2022-11-13 22:32:15 +03:00
|
|
|
buildInputs = old.buildInputs ++ [hwdata];
|
2022-09-01 20:35:50 +03:00
|
|
|
}))
|
|
|
|
.override {
|
|
|
|
xwayland = xwayland.overrideAttrs (old: {
|
|
|
|
patches =
|
|
|
|
(old.patches or [])
|
|
|
|
++ (lib.optionals hidpiXWayland [
|
|
|
|
./xwayland-vsync.patch
|
|
|
|
./xwayland-hidpi.patch
|
|
|
|
]);
|
|
|
|
});
|
|
|
|
}
|