Change:
{ lib , stdenv , fetchFromGitHub <del> , fetchFromGitLab , cmake </del> <ins> , pkg-config , meson , ninja , cairo , git , hyprland-protocols , jq </ins> , libdrm , libinput , libxcb , libxkbcommon , mesa <del> , pango , pkg-config </del> <ins> , pciutils , systemd , udis86 </ins> , wayland , wayland-protocols , wayland-scanner , wlroots , xcbutilwm <ins> , xwayland , debug ? false , enableXWayland ? true , hidpiXWayland ? false , legacyRenderer ? false , nvidiaPatches ? false , withSystemd ? true </ins> }: <del> stdenv.mkDerivation (finalAttrs: { pname = "hyprland"; version = "0.6.1beta"; </del> <ins> let assertXWayland = lib.assertMsg (hidpiXWayland -> enableXWayland) '' Hyprland: cannot have hidpiXWayland when enableXWayland is false. ''; in assert assertXWayland; stdenv.mkDerivation rec { pname = "hyprland" + lib.optionalString debug "-debug"; version = "0.23.0beta"; </ins> src = fetchFromGitHub { owner = "hyprwm"; <del> repo = "Hyprland"; rev = "v${finalAttrs.version}"; hash = "sha256-0Msqe2ErAJvnO1zHoB2k6TkDhTYnHRGkvJrfSG12dTU="; </del> <ins> repo = "hyprland"; rev = "v${version}"; hash = "sha256-aPSmhgof4nIJquHmtxxirIMVv439wTYYCwf1ekS96gA="; </ins> }; <ins> patches = [ # make meson use the provided dependencies instead of the git submodules "${src}/nix/meson-build.patch" ]; postPatch = '' # Fix hardcoded paths to /usr installation sed -i "s#/usr#$out#" src/render/OpenGL.cpp substituteInPlace meson.build  --replace "@GIT_COMMIT_HASH@" '${version}'  --replace "@GIT_DIRTY@" "" ''; </ins> nativeBuildInputs = [ <del> cmake </del> <ins> jq meson ninja </ins> pkg-config <del> wayland-scanner </del> ]; <del> buildInputs = [ libdrm libinput libxcb libxkbcommon mesa pango wayland wayland-protocols xcbutilwm ] ++ [ # INFO: When updating src, remember to synchronize this wlroots with the # exact commit used by upstream (wlroots.overrideAttrs (_: { version = "unstable-2022-06-07"; src = fetchFromGitLab { domain = "gitlab.freedesktop.org"; owner = "wlroots"; repo = "wlroots"; rev = "b89ed9015c3fbe8d339e9d65cf70fdca6e5645bc"; hash = "sha256-8y3u8CoigjoZOVbA2wCWBHlDNEakv0AVxU46/cOC00s="; }; })) </del> <ins> outputs = [ "out" "man" </ins> ]; <del> # build with system wlroots postPatch = '' sed -Ei 's|"../wlroots/include/([a-zA-Z0-9./_-]+)"|<1>|g' src/includes.hpp ''; preConfigure = '' make protocols ''; </del> <ins> buildInputs = [ cairo git hyprland-protocols libdrm libinput libxkbcommon mesa udis86 wayland wayland-protocols wayland-scanner pciutils (wlroots.override { inherit enableXWayland hidpiXWayland nvidiaPatches; }) ] ++ lib.optionals enableXWayland [ libxcb xcbutilwm xwayland ] ++ lib.optionals withSystemd [ systemd ]; </ins> <del> postBuild = '' pushd ../hyprctl ${stdenv.cc.targetPrefix}c++ -std=c++20 -w ./main.cpp -o ./hyprctl popd ''; </del> <ins> mesonBuildType = if debug then "debug" else "release"; </ins> <del> installPhase = '' runHook preInstall </del> <ins> mesonFlags = builtins.concatLists [ (lib.optional (!enableXWayland) "-Dxwayland=disabled") (lib.optional legacyRenderer "-DLEGACY_RENDERER:STRING=true") (lib.optional withSystemd "-Dsystemd=enabled") ]; </ins> <del> install -Dm755 ../hyprctl/hyprctl ./Hyprland -t $out/bin runHook postInstall ''; </del> <ins> passthru.providedSessions = [ "hyprland" ]; </ins> meta = with lib; { <del> inherit (finalAttrs.src.meta) homepage; </del> <ins> homepage = "https://github.com/vaxerski/Hyprland"; </ins> description = "A dynamic tiling Wayland compositor that doesn't sacrifice on its looks"; license = licenses.bsd3; <del> maintainers = with maintainers; [ wozeparrot ]; inherit (wayland.meta) platforms; </del> <ins> maintainers = with maintainers; [ wozeparrot fufexan ]; </ins> mainProgram = "Hyprland"; <ins> platforms = wlroots.meta.platforms; </ins> }; <del> }) </del> <ins> } </ins>

Discussion:
Project description A wlroots-compatible Wayland color picker that does not suck. Metadata homepage URL: source URL: license: platforms: linux Just because you made available on NixOS, I wanted to point you on hyprpicker, too - if you're interested to have a look into this(?)
I'll take a look into packaging this.