diff --git a/nix/default.nix b/nix/default.nix index fcafe7fe..663d5429 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -33,99 +33,104 @@ wrapRuntimeDeps ? true, version ? "git", commit, + # deprecated flags + nvidiaPatches ? false, + hidpiXWayland ? false, }: -stdenv.mkDerivation { - pname = "hyprland${lib.optionalString enableNvidiaPatches "-nvidia"}${lib.optionalString debug "-debug"}"; - inherit version; +assert lib.assertMsg (!nvidiaPatches) "The option `nvidiaPatches` has been renamed `enableNvidiaPatches`"; +assert lib.assertMsg (!hidpiXWayland) "The option `hidpiXWayland` has been removed. Please refer https://wiki.hyprland.org/Configuring/XWayland"; + 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 enableNvidiaPatches;}) - ] - ++ 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"; + }; + }