diff options
author | Mihai Fufezan <fufexan@protonmail.com> | 2023-08-03 19:50:26 +0300 |
---|---|---|
committer | Mihai Fufezan <fufexan@protonmail.com> | 2023-08-08 20:32:40 +0300 |
commit | d2eddd374f530b1d49c9e12908bab31cfa9d091f (patch) | |
tree | ad9c15a21cd68da424cf35c005c028060514a41f /pkgs/applications/window-managers/hyprwm/hyprland | |
parent | 404abaa27acc261d654bd8ec384641200feb8e2a (diff) | |
download | nixpkgs-d2eddd374f530b1d49c9e12908bab31cfa9d091f.tar nixpkgs-d2eddd374f530b1d49c9e12908bab31cfa9d091f.tar.gz nixpkgs-d2eddd374f530b1d49c9e12908bab31cfa9d091f.tar.bz2 nixpkgs-d2eddd374f530b1d49c9e12908bab31cfa9d091f.tar.lz nixpkgs-d2eddd374f530b1d49c9e12908bab31cfa9d091f.tar.xz nixpkgs-d2eddd374f530b1d49c9e12908bab31cfa9d091f.tar.zst nixpkgs-d2eddd374f530b1d49c9e12908bab31cfa9d091f.zip |
hyprland: 0.27.0 -> unstable-2023-08-08
Diffstat (limited to 'pkgs/applications/window-managers/hyprwm/hyprland')
-rw-r--r-- | pkgs/applications/window-managers/hyprwm/hyprland/default.nix | 38 | ||||
-rw-r--r-- | pkgs/applications/window-managers/hyprwm/hyprland/wlroots.nix | 71 |
2 files changed, 39 insertions, 70 deletions
diff --git a/pkgs/applications/window-managers/hyprwm/hyprland/default.nix b/pkgs/applications/window-managers/hyprwm/hyprland/default.nix index b6af6a34151..f2b430c5bc1 100644 --- a/pkgs/applications/window-managers/hyprwm/hyprland/default.nix +++ b/pkgs/applications/window-managers/hyprwm/hyprland/default.nix @@ -2,8 +2,10 @@ , stdenv , fetchFromGitHub , pkg-config +, makeWrapper , meson , ninja +, binutils , cairo , git , hyprland-protocols @@ -24,34 +26,33 @@ , xcbutilwm , xwayland , debug ? false +, enableNvidiaPatches ? false , enableXWayland ? true -, hidpiXWayland ? false , legacyRenderer ? false -, nvidiaPatches ? false , withSystemd ? true +, wrapRuntimeDeps ? true + # deprecated flags +, nvidiaPatches ? false +, hidpiXWayland ? false }: -let - assertXWayland = lib.assertMsg (hidpiXWayland -> enableXWayland) '' - Hyprland: cannot have hidpiXWayland when enableXWayland is false. - ''; -in -assert assertXWayland; +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 (finalAttrs: { pname = "hyprland" + lib.optionalString debug "-debug"; - version = "0.27.0"; + version = "unstable-2023-08-08"; src = fetchFromGitHub { owner = "hyprwm"; repo = finalAttrs.pname; - rev = "v${finalAttrs.version}"; - hash = "sha256-mEKF6Wcx+wSF/eos/91A7LxhFLDYhSnQnLpwZF13ntg="; + rev = "8e04a80e60983f5def26bdcaea701040fea9a7ae"; + hash = "sha256-5/vEdU3SzAdeIyPykjks/Zxkvh9luPTIei6oa77OY2Q="; }; patches = [ # make meson use the provided dependencies instead of the git submodules - "${finalAttrs.src}/nix/meson-build.patch" + "${finalAttrs.src}/nix/patches/meson-build.patch" # look into $XDG_DESKTOP_PORTAL_DIR instead of /usr; runtime checks for conflicting portals - "${finalAttrs.src}/nix/portals.patch" + "${finalAttrs.src}/nix/patches/portals.patch" ]; postPatch = '' @@ -64,6 +65,7 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ jq + makeWrapper meson ninja pkg-config @@ -90,7 +92,7 @@ stdenv.mkDerivation (finalAttrs: { wayland-protocols pango pciutils - (wlroots.override { inherit enableXWayland hidpiXWayland nvidiaPatches; }) + (wlroots.override { inherit enableNvidiaPatches; }) ] ++ lib.optionals enableXWayland [ libxcb xcbutilwm xwayland ] ++ lib.optionals withSystemd [ systemd ]; @@ -106,6 +108,14 @@ stdenv.mkDerivation (finalAttrs: { (lib.optional withSystemd "-Dsystemd=enabled") ]; + 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" ]; meta = with lib; { diff --git a/pkgs/applications/window-managers/hyprwm/hyprland/wlroots.nix b/pkgs/applications/window-managers/hyprwm/hyprland/wlroots.nix index e1d6bfc7e51..7b44e9cf521 100644 --- a/pkgs/applications/window-managers/hyprwm/hyprland/wlroots.nix +++ b/pkgs/applications/window-managers/hyprwm/hyprland/wlroots.nix @@ -1,15 +1,11 @@ { fetchFromGitLab , hyprland , wlroots -, xwayland -, fetchpatch , lib , libdisplay-info , libliftoff , hwdata -, hidpiXWayland ? true -, enableXWayland ? true -, nvidiaPatches ? false +, enableNvidiaPatches ? false }: let libdisplay-info-new = libdisplay-info.overrideAttrs (old: { @@ -38,10 +34,7 @@ let ]; }); in -assert (lib.assertMsg (hidpiXWayland -> enableXWayland) '' - wlroots-hyprland: cannot have hidpiXWayland when enableXWayland is false. -''); -(wlroots.overrideAttrs +wlroots.overrideAttrs (old: { version = "0.17.0-dev"; @@ -49,65 +42,31 @@ assert (lib.assertMsg (hidpiXWayland -> enableXWayland) '' domain = "gitlab.freedesktop.org"; owner = "wlroots"; repo = "wlroots"; - rev = "7e7633abf09b362d0bad9e3fc650fd692369291d"; - hash = "sha256-KovjVFwcuoUO0eu/UiWrnD3+m/K+SHSAVIz4xF9K1XA="; + rev = "e8d545a9770a2473db32e0a0bfa757b05d2af4f3"; + hash = "sha256-gv5kjss6REeQG0BmvK2gTx7jHLRdCnP25po6It6I6N8="; }; pname = old.pname + "-hyprland" - + ( - if hidpiXWayland - then "-hidpi" - else "" - ) - + ( - if nvidiaPatches - then "-nvidia" - else "" - ); + + lib.optionalString enableNvidiaPatches "-nvidia"; patches = (old.patches or [ ]) - ++ (lib.optionals (enableXWayland && hidpiXWayland) [ - "${hyprland.src}/nix/wlroots-hidpi.patch" - (fetchpatch { - url = "https://gitlab.freedesktop.org/wlroots/wlroots/-/commit/18595000f3a21502fd60bf213122859cc348f9af.diff"; - sha256 = "sha256-jvfkAMh3gzkfuoRhB4E9T5X1Hu62wgUjj4tZkJm0mrI="; - revert = true; - }) - ]) - ++ (lib.optionals nvidiaPatches [ - (fetchpatch { - url = "https://aur.archlinux.org/cgit/aur.git/plain/0001-nvidia-format-workaround.patch?h=hyprland-nvidia-screenshare-git&id=2830d3017d7cdd240379b4cc7e5dd6a49cf3399a"; - sha256 = "A9f1p5EW++mGCaNq8w7ZJfeWmvTfUm4iO+1KDcnqYX8="; - }) + ++ (lib.optionals enableNvidiaPatches [ + "${hyprland.src}/nix/patches/nvidia.patch" ]); postPatch = (old.postPatch or "") + ( - if nvidiaPatches - then '' - substituteInPlace render/gles2/renderer.c --replace "glFlush();" "glFinish();" - '' - else "" + lib.optionalString enableNvidiaPatches + ''substituteInPlace render/gles2/renderer.c --replace "glFlush();" "glFinish();"'' ); - buildInputs = - old.buildInputs - ++ [ - hwdata - libdisplay-info-new - libliftoff-new - ]; - })).override { - xwayland = xwayland.overrideAttrs (old: { - patches = - (old.patches or [ ]) - ++ (lib.optionals hidpiXWayland [ - "${hyprland.src}/nix/xwayland-vsync.patch" - "${hyprland.src}/nix/xwayland-hidpi.patch" - ]); - }); -} + buildInputs = old.buildInputs ++ [ + hwdata + libdisplay-info-new + libliftoff-new + ]; + }) |