aboutsummaryrefslogtreecommitdiffhomepage
path: root/nix
diff options
context:
space:
mode:
authorMihai Fufezan <[email protected]>2023-08-01 23:58:01 +0300
committerMihai Fufezan <[email protected]>2023-08-14 10:39:57 +0300
commitc1bcbdb3dd1370351738d3874a58c57be8faaa9a (patch)
tree6bf5bdc2f1b6ff1b73691b7715a830f1a815e871 /nix
parent0314a727eb27dd880b172b9ff2dc78c863f3ce5f (diff)
downloadHyprland-c1bcbdb3dd1370351738d3874a58c57be8faaa9a.tar.gz
Hyprland-c1bcbdb3dd1370351738d3874a58c57be8faaa9a.zip
Nix: remove HiDPI patches
- remove `hidpiXWayland` option - rename `nvidiaPatches` -> `enableNvidiaPatches` for consistency
Diffstat (limited to 'nix')
-rw-r--r--nix/default.nix180
-rw-r--r--nix/overlays.nix14
-rw-r--r--nix/wlroots.nix74
3 files changed, 113 insertions, 155 deletions
diff --git a/nix/default.nix b/nix/default.nix
index 3fb3545b..fcafe7fe 100644
--- a/nix/default.nix
+++ b/nix/default.nix
@@ -26,114 +26,106 @@
xcbutilwm,
xwayland,
debug ? false,
+ enableNvidiaPatches ? false,
enableXWayland ? true,
- hidpiXWayland ? false,
legacyRenderer ? false,
- nvidiaPatches ? false,
withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd,
wrapRuntimeDeps ? true,
version ? "git",
commit,
-}: let
- assertXWayland = lib.assertMsg (hidpiXWayland -> enableXWayland) ''
- Hyprland: cannot have hidpiXWayland when enableXWayland is false.
- '';
-in
- assert assertXWayland;
- stdenv.mkDerivation {
- pname = "hyprland" + lib.optionalString debug "-debug";
- inherit version;
+}:
+stdenv.mkDerivation {
+ pname = "hyprland${lib.optionalString enableNvidiaPatches "-nvidia"}${lib.optionalString debug "-debug"}";
+ inherit version;
- src = lib.cleanSourceWith {
- filter = name: type: let
- baseName = baseNameOf (toString name);
- in
- ! (
- lib.hasSuffix ".nix" baseName
- );
- src = lib.cleanSource ../.;
- };
+ src = lib.cleanSourceWith {
+ filter = name: type: let
+ baseName = baseNameOf (toString name);
+ in
+ ! (lib.hasSuffix ".nix" baseName);
+ src = lib.cleanSource ../.;
+ };
- nativeBuildInputs = [
- jq
- meson
- ninja
- pkg-config
- makeWrapper
- wayland-scanner
- ];
+ nativeBuildInputs = [
+ jq
+ meson
+ ninja
+ pkg-config
+ makeWrapper
+ wayland-scanner
+ ];
- outputs = [
- "out"
- "man"
- "dev"
- ];
+ outputs = [
+ "out"
+ "man"
+ "dev"
+ ];
- buildInputs =
- [
- git
- cairo
- hyprland-protocols
- libdrm
- libinput
- libxkbcommon
- mesa
- pango
- udis86
- wayland
- wayland-protocols
- pciutils
- (wlroots.override {inherit enableXWayland hidpiXWayland nvidiaPatches;})
- ]
- ++ lib.optionals enableXWayland [libxcb xcbutilwm xwayland]
- ++ lib.optionals withSystemd [systemd];
+ buildInputs =
+ [
+ git
+ cairo
+ hyprland-protocols
+ libdrm
+ libinput
+ libxkbcommon
+ mesa
+ pango
+ udis86
+ wayland
+ wayland-protocols
+ pciutils
+ (wlroots.override {inherit enableNvidiaPatches;})
+ ]
+ ++ lib.optionals enableXWayland [libxcb xcbutilwm xwayland]
+ ++ lib.optionals withSystemd [systemd];
- mesonBuildType =
- if debug
- then "debug"
- else "release";
+ mesonBuildType =
+ if debug
+ then "debug"
+ else "release";
- mesonFlags = builtins.concatLists [
- ["-Dauto_features=disabled"]
- (lib.optional enableXWayland "-Dxwayland=enabled")
- (lib.optional legacyRenderer "-Dlegacy_renderer=enabled")
- (lib.optional withSystemd "-Dsystemd=enabled")
- ];
+ mesonFlags = builtins.concatLists [
+ ["-Dauto_features=disabled"]
+ (lib.optional enableXWayland "-Dxwayland=enabled")
+ (lib.optional legacyRenderer "-Dlegacy_renderer=enabled")
+ (lib.optional withSystemd "-Dsystemd=enabled")
+ ];
- patches = [
- # make meson use the provided wlroots instead of the git submodule
- ./patches/meson-build.patch
- # fixes portals search path to be picked up from $XDG_DESKTOP_PORTAL_DIR
- ./patches/portals.patch
- ];
+ patches = [
+ # make meson use the provided wlroots instead of the git submodule
+ ./patches/meson-build.patch
+ # fixes portals search path to be picked up from $XDG_DESKTOP_PORTAL_DIR
+ ./patches/portals.patch
+ ];
- postPatch = ''
- # Fix hardcoded paths to /usr installation
- sed -i "s#/usr#$out#" src/render/OpenGL.cpp
- substituteInPlace meson.build \
- --replace "@GIT_COMMIT_HASH@" '${commit}' \
- --replace "@GIT_DIRTY@" '${
- if commit == ""
- then "dirty"
- else ""
- }'
- '';
+ postPatch = ''
+ # Fix hardcoded paths to /usr installation
+ sed -i "s#/usr#$out#" src/render/OpenGL.cpp
+ substituteInPlace meson.build \
+ --replace "@GIT_COMMIT_HASH@" '${commit}' \
+ --replace "@GIT_DIRTY@" '${
+ if commit == ""
+ then "dirty"
+ else ""
+ }'
+ '';
- postInstall = ''
- ln -s ${wlroots}/include/wlr $dev/include/hyprland/wlroots
- ${lib.optionalString wrapRuntimeDeps ''
- wrapProgram $out/bin/Hyprland \
- --suffix PATH : ${lib.makeBinPath [binutils pciutils]}
- ''}
- '';
+ postInstall = ''
+ ln -s ${wlroots}/include/wlr $dev/include/hyprland/wlroots
+ ${lib.optionalString wrapRuntimeDeps ''
+ wrapProgram $out/bin/Hyprland \
+ --suffix PATH : ${lib.makeBinPath [binutils pciutils]}
+ ''}
+ '';
- passthru.providedSessions = ["hyprland"];
+ passthru.providedSessions = ["hyprland"];
- meta = with lib; {
- homepage = "https://github.com/vaxerski/Hyprland";
- description = "A dynamic tiling Wayland compositor that doesn't sacrifice on its looks";
- license = licenses.bsd3;
- platforms = platforms.linux;
- mainProgram = "Hyprland";
- };
- }
+ meta = with lib; {
+ homepage = "https://github.com/vaxerski/Hyprland";
+ description = "A dynamic tiling Wayland compositor that doesn't sacrifice on its looks";
+ license = licenses.bsd3;
+ platforms = platforms.linux;
+ mainProgram = "Hyprland";
+ };
+}
diff --git a/nix/overlays.nix b/nix/overlays.nix
index 6516c755..807e0cad 100644
--- a/nix/overlays.nix
+++ b/nix/overlays.nix
@@ -35,14 +35,14 @@ in {
commit = self.rev or "";
inherit (final) udis86 hyprland-protocols;
};
-
hyprland-unwrapped = final.hyprland.override {wrapRuntimeDeps = false;};
hyprland-debug = final.hyprland.override {debug = true;};
- hyprland-hidpi = final.hyprland.override {hidpiXWayland = true;};
- hyprland-nvidia = final.hyprland.override {nvidiaPatches = true;};
- hyprland-no-hidpi =
- builtins.trace
- "hyprland-no-hidpi was removed. Please use the default package."
+ hyprland-nvidia = final.hyprland.override {enableNvidiaPatches = true;};
+ hyprland-hidpi =
+ builtins.trace ''
+ hyprland-hidpi was removed. Please use the hyprland package.
+ For more information, refer to https://wiki.hyprland.org/Configuring/XWayland.
+ ''
final.hyprland;
})
];
@@ -80,6 +80,7 @@ in {
wlroots-hyprland = final.callPackage ./wlroots.nix {
version = "${mkDate (inputs.wlroots.lastModifiedDate or "19700101")}_${inputs.wlroots.shortRev or "dirty"}";
src = inputs.wlroots;
+
libdisplay-info = prev.libdisplay-info.overrideAttrs (old: {
version = "0.1.1+date=2023-03-02";
src = final.fetchFromGitLab {
@@ -90,6 +91,7 @@ in {
sha256 = "sha256-/q79o13Zvu7x02SBGu0W5yQznQ+p7ltZ9L6cMW5t/o4=";
};
});
+
libliftoff = prev.libliftoff.overrideAttrs (old: {
version = "0.5.0-dev";
src = final.fetchFromGitLab {
diff --git a/nix/wlroots.nix b/nix/wlroots.nix
index 794bb959..c1aa27de 100644
--- a/nix/wlroots.nix
+++ b/nix/wlroots.nix
@@ -1,64 +1,28 @@
{
+ lib,
version,
src,
- #
wlroots,
- xwayland,
- fetchpatch,
- lib,
hwdata,
- libliftoff,
libdisplay-info,
- hidpiXWayland ? true,
+ libliftoff,
enableXWayland ? true,
- nvidiaPatches ? false,
+ enableNvidiaPatches ? 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) [
- # adapted from https://gitlab.freedesktop.org/lilydjwg/wlroots/-/commit/6c5ffcd1fee9e44780a6a8792f74ecfbe24a1ca7
- ./patches/wlroots-hidpi.patch
- (fetchpatch {
- url = "https://gitlab.freedesktop.org/wlroots/wlroots/-/commit/18595000f3a21502fd60bf213122859cc348f9af.diff";
- sha256 = "sha256-jvfkAMh3gzkfuoRhB4E9T5X1Hu62wgUjj4tZkJm0mrI=";
- revert = true;
- })
- ])
- ++ (lib.optionals nvidiaPatches [
- ./patches/wlroots-nvidia.patch
- ]);
- buildInputs = old.buildInputs ++ [hwdata libliftoff libdisplay-info];
+wlroots.overrideAttrs (old: {
+ inherit version src enableXWayland;
+
+ pname = "${old.pname}-hyprland${lib.optionalString enableNvidiaPatches "-nvidia"}";
+
+ patches =
+ (old.patches or [])
+ ++ (lib.optionals enableNvidiaPatches [
+ ./patches/wlroots-nvidia.patch
+ ]);
+
+ buildInputs = old.buildInputs ++ [hwdata libliftoff libdisplay-info];
- NIX_CFLAGS_COMPILE = toString [
- "-Wno-error=maybe-uninitialized"
- ];
- }))
- .override {
- xwayland = xwayland.overrideAttrs (old: {
- patches =
- (old.patches or [])
- ++ (lib.optionals hidpiXWayland [
- ./patches/xwayland-vsync.patch
- ./patches/xwayland-hidpi.patch
- ]);
- });
- }
+ NIX_CFLAGS_COMPILE = toString [
+ "-Wno-error=maybe-uninitialized"
+ ];
+})