nix: wrap hyprland-share-picker with hyprland in PATH

This commit is contained in:
Mihai Fufezan 2022-12-09 15:37:23 +02:00
parent 756789211e
commit 5f7eecff55
No known key found for this signature in database
GPG Key ID: 5899325F2F120900
3 changed files with 36 additions and 32 deletions

View File

@ -26,12 +26,15 @@
(builtins.substring 4 2 longDate) (builtins.substring 4 2 longDate)
(builtins.substring 6 2 longDate) (builtins.substring 6 2 longDate)
]); ]);
version = "0.pre" + "+date=" + (mkDate (self.lastModifiedDate or "19700101")) + "_" + (self.shortRev or "dirty");
in { in {
overlays.default = _: prev: { overlays.default = _: prev: rec {
xdg-desktop-portal-hyprland = prev.callPackage ./nix/default.nix { xdg-desktop-portal-hyprland = prev.callPackage ./nix/default.nix {
version = "0.pre" + "+date=" + (mkDate (self.lastModifiedDate or "19700101")) + "_" + (self.shortRev or "dirty");
inherit (inputs) hyprland-protocols; inherit (inputs) hyprland-protocols;
inherit hyprland-share-picker version;
}; };
hyprland-share-picker = prev.libsForQt5.callPackage ./nix/hyprland-share-picker.nix {inherit version;};
}; };
packages = genSystems (system: packages = genSystems (system:

View File

@ -8,6 +8,7 @@
pkg-config, pkg-config,
wayland-protocols, wayland-protocols,
wayland-scanner, wayland-scanner,
hyprland-share-picker,
hyprland-protocols, hyprland-protocols,
inih, inih,
libdrm, libdrm,
@ -17,39 +18,38 @@
wayland, wayland,
libsForQt5, libsForQt5,
version ? "git", version ? "git",
}: let }:
hyprland-share-picker = libsForQt5.callPackage ./hyprland-share-picker.nix {inherit version;}; stdenv.mkDerivation {
in pname = "xdg-desktop-portal-hyprland";
stdenv.mkDerivation { inherit version;
pname = "xdg-desktop-portal-hyprland";
inherit version;
src = ../.; src = ../.;
strictDeps = true; strictDeps = true;
depsBuildBuild = [pkg-config]; depsBuildBuild = [pkg-config];
nativeBuildInputs = [meson ninja pkg-config wayland-scanner makeWrapper]; nativeBuildInputs = [meson ninja pkg-config wayland-scanner makeWrapper];
buildInputs = [inih libdrm mesa pipewire systemd wayland wayland-protocols]; buildInputs = [inih libdrm mesa pipewire systemd wayland wayland-protocols];
preConfigure = '' preConfigure = ''
rmdir protocols/hyprland-protocols # for some reason rmdir doesn't work in a dirty tree
rmdir protocols/hyprland-protocols || true
ln -s ${hyprland-protocols.outPath}/ protocols/hyprland-protocols ln -s ${hyprland-protocols.outPath}/ protocols/hyprland-protocols
''; '';
mesonFlags = [ mesonFlags = [
"-Dsd-bus-provider=libsystemd" "-Dsd-bus-provider=libsystemd"
]; ];
postInstall = '' postInstall = ''
wrapProgram $out/libexec/xdg-desktop-portal-hyprland --prefix PATH ":" ${lib.makeBinPath [hyprland-share-picker]} wrapProgram $out/libexec/xdg-desktop-portal-hyprland --prefix PATH ":" ${lib.makeBinPath [hyprland-share-picker]}
''; '';
meta = with lib; { meta = with lib; {
homepage = "https://github.com/emersion/xdg-desktop-portal-hyprland"; homepage = "https://github.com/emersion/xdg-desktop-portal-hyprland";
description = "xdg-desktop-portal backend for Hyprland"; description = "xdg-desktop-portal backend for Hyprland";
maintainers = with maintainers; [fufexan]; maintainers = with maintainers; [fufexan];
platforms = platforms.linux; platforms = platforms.linux;
license = licenses.mit; license = licenses.mit;
}; };
} }

View File

@ -5,6 +5,7 @@
qtbase, qtbase,
makeShellWrapper, makeShellWrapper,
wrapQtAppsHook, wrapQtAppsHook,
hyprland,
slurp, slurp,
version ? "git", version ? "git",
... ...
@ -22,6 +23,6 @@ stdenv.mkDerivation {
postInstall = '' postInstall = ''
wrapProgramShell $out/bin/hyprland-share-picker \ wrapProgramShell $out/bin/hyprland-share-picker \
"''${qtWrapperArgs[@]}" \ "''${qtWrapperArgs[@]}" \
--prefix PATH ":" ${lib.makeBinPath [slurp]} --prefix PATH ":" ${lib.makeBinPath [slurp hyprland]}
''; '';
} }