diff --git a/pkgs/by-name/hy/hydrapaper/package.nix b/pkgs/by-name/hy/hydrapaper/package.nix new file mode 100644 index 000000000000..313a9ed4b829 --- /dev/null +++ b/pkgs/by-name/hy/hydrapaper/package.nix @@ -0,0 +1,77 @@ +{ lib +, python3Packages +, fetchFromGitLab +, meson +, ninja +, glib +, pkg-config +, pandoc +, appstream +, blueprint-compiler +, gobject-introspection +, wrapGAppsHook4 +, dbus +, libadwaita +, xdg-user-dirs +}: + +python3Packages.buildPythonApplication rec { + pname = "hydrapaper"; + version = "3.3.2"; + pyproject = false; + + src = fetchFromGitLab { + owner = "gabmus"; + repo = "HydraPaper"; + rev = version; + hash = "sha256-IDaM8bM/0KH9h59523WqLKe400V5lLNyJ4faPf980Ro="; + }; + + nativeBuildInputs = [ + meson + ninja + glib + pkg-config + pandoc + appstream + blueprint-compiler + gobject-introspection + wrapGAppsHook4 + ]; + + buildInputs = [ + dbus + glib + libadwaita + ]; + + propagatedBuildInputs = with python3Packages; [ + dbus-python + pygobject3 + pillow + ]; + + # wrapGAppsHook4 propogates gtk4 -- which provides gtk4-update-icon-cache instead + preInstall = '' + substituteInPlace /build/source/meson_post_install.py \ + --replace-fail gtk-update-icon-cache gtk4-update-icon-cache + ''; + + dontWrapGApps = true; + + preFixup = '' + gappsWrapperArgs+=( + --prefix PATH : ${lib.makeBinPath [ glib xdg-user-dirs ]} + ) + makeWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + meta = { + description = "GNOME utility for setting different wallpapers on individual monitors"; + homepage = "https://hydrapaper.gabmus.org"; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ lachrymal ]; + mainProgram = "hydrapaper"; + platforms = lib.platforms.linux; + }; +}