mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-07 21:05:58 +01:00
nix: move wlroots and add nvidia patches (#608)
This commit is contained in:
parent
8581e71789
commit
c0a7dffcdc
4 changed files with 68 additions and 39 deletions
|
@ -28,11 +28,10 @@
|
||||||
]);
|
]);
|
||||||
in {
|
in {
|
||||||
overlays.default = _: prev: rec {
|
overlays.default = _: prev: rec {
|
||||||
wlroots-hyprland = prev.wlroots.overrideAttrs (__: {
|
wlroots-hyprland = prev.callPackage ./nix/wlroots.nix {
|
||||||
version = mkDate (inputs.wlroots.lastModifiedDate or "19700101") + "_" + (inputs.wlroots.shortRev or "dirty");
|
version = mkDate (inputs.wlroots.lastModifiedDate or "19700101") + "_" + (inputs.wlroots.shortRev or "dirty");
|
||||||
src = inputs.wlroots;
|
src = inputs.wlroots;
|
||||||
});
|
};
|
||||||
|
|
||||||
hyprland = prev.callPackage ./nix/default.nix {
|
hyprland = prev.callPackage ./nix/default.nix {
|
||||||
stdenv = prev.gcc12Stdenv;
|
stdenv = prev.gcc12Stdenv;
|
||||||
version = "0.12.1beta" + "+date=" + (mkDate (self.lastModifiedDate or "19700101")) + "_" + (self.shortRev or "dirty");
|
version = "0.12.1beta" + "+date=" + (mkDate (self.lastModifiedDate or "19700101")) + "_" + (self.shortRev or "dirty");
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
enableXWayland ? true,
|
enableXWayland ? true,
|
||||||
hidpiXWayland ? true,
|
hidpiXWayland ? true,
|
||||||
legacyRenderer ? false,
|
legacyRenderer ? false,
|
||||||
|
nvidiaPatches ? false,
|
||||||
version ? "git",
|
version ? "git",
|
||||||
}: let
|
}: let
|
||||||
assertXWayland = lib.assertMsg (hidpiXWayland -> enableXWayland) ''
|
assertXWayland = lib.assertMsg (hidpiXWayland -> enableXWayland) ''
|
||||||
|
@ -68,11 +69,7 @@ in
|
||||||
wayland
|
wayland
|
||||||
wayland-protocols
|
wayland-protocols
|
||||||
wayland-scanner
|
wayland-scanner
|
||||||
(
|
(wlroots.override {inherit enableXWayland hidpiXWayland nvidiaPatches;})
|
||||||
if hidpiXWayland
|
|
||||||
then (import ./hidpi_wlroots.nix {inherit wlroots xwayland fetchpatch;})
|
|
||||||
else wlroots.override {inherit enableXWayland;}
|
|
||||||
)
|
|
||||||
xcbutilwm
|
xcbutilwm
|
||||||
]
|
]
|
||||||
++ lib.optional enableXWayland xwayland;
|
++ lib.optional enableXWayland xwayland;
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
{
|
|
||||||
wlroots,
|
|
||||||
xwayland,
|
|
||||||
fetchpatch,
|
|
||||||
}:
|
|
||||||
(wlroots.overrideAttrs
|
|
||||||
(old: {
|
|
||||||
patches =
|
|
||||||
(old.patches or [])
|
|
||||||
++ [
|
|
||||||
(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;
|
|
||||||
})
|
|
||||||
];
|
|
||||||
}))
|
|
||||||
.override {
|
|
||||||
xwayland = xwayland.overrideAttrs (old: {
|
|
||||||
patches =
|
|
||||||
(old.patches or [])
|
|
||||||
++ [
|
|
||||||
./xwayland-vsync.patch
|
|
||||||
./xwayland-hidpi.patch
|
|
||||||
];
|
|
||||||
});
|
|
||||||
}
|
|
64
nix/wlroots.nix
Normal file
64
nix/wlroots.nix
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
{
|
||||||
|
version,
|
||||||
|
src,
|
||||||
|
#
|
||||||
|
wlroots,
|
||||||
|
xwayland,
|
||||||
|
fetchpatch,
|
||||||
|
lib,
|
||||||
|
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 ""
|
||||||
|
);
|
||||||
|
}))
|
||||||
|
.override {
|
||||||
|
xwayland = xwayland.overrideAttrs (old: {
|
||||||
|
patches =
|
||||||
|
(old.patches or [])
|
||||||
|
++ (lib.optionals hidpiXWayland [
|
||||||
|
./xwayland-vsync.patch
|
||||||
|
./xwayland-hidpi.patch
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
}
|
Loading…
Reference in a new issue