diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.nix b/nixos/modules/services/x11/desktop-managers/pantheon.nix index 112f493b811c2..2fd8255030ac7 100644 --- a/nixos/modules/services/x11/desktop-managers/pantheon.nix +++ b/nixos/modules/services/x11/desktop-managers/pantheon.nix @@ -226,8 +226,9 @@ in environment.sessionVariables.GTK_CSD = "1"; environment.etc."gtk-3.0/settings.ini".source = "${pkgs.pantheon.elementary-default-settings}/etc/gtk-3.0/settings.ini"; - xdg.portal.extraPortals = [ - pkgs.pantheon.elementary-files + xdg.portal.extraPortals = with pkgs; [ + pantheon.elementary-files + xdg-desktop-portal-pantheon ]; # Override GSettings schemas diff --git a/pkgs/development/libraries/xdg-desktop-portal-pantheon/default.nix b/pkgs/development/libraries/xdg-desktop-portal-pantheon/default.nix new file mode 100644 index 0000000000000..fbc8a58dc8ee9 --- /dev/null +++ b/pkgs/development/libraries/xdg-desktop-portal-pantheon/default.nix @@ -0,0 +1,63 @@ +{ lib +, stdenv +, fetchFromGitHub +, nix-update-script +, meson +, ninja +, pkg-config +, vala +, wrapGAppsHook +, glib +, gtk3 +, libhandy +, pantheon +, systemd +, vte +}: + +stdenv.mkDerivation rec { + pname = "xdg-desktop-portal-pantheon"; + version = "1.0.0"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = "portals"; + rev = "d12f82e6d55ea2f1555441e7f2244363b3383506"; + sha256 = "sha256-vZ4CPyWR5QXS5uFQ1lCZmE4uvfU8IHABWVO1KHFIV5U="; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + vala + wrapGAppsHook + ]; + + buildInputs = [ + glib + gtk3 + libhandy + pantheon.granite + systemd + vte + ]; + + mesonFlags = [ + "-Dsystemduserunitdir=${placeholder "out"}/lib/systemd/user" + ]; + + passthru = { + updateScript = nix-update-script { + attrPath = pname; + }; + }; + + meta = with lib; { + description = "Backend implementation for xdg-desktop-portal for the Pantheon desktop environment"; + homepage = "https://github.com/elementary/portals"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = teams.pantheon.members; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2876e328f0e2b..66b384c948254 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -28870,6 +28870,8 @@ with pkgs; xdg-desktop-portal-gtk = callPackage ../development/libraries/xdg-desktop-portal-gtk { }; + xdg-desktop-portal-pantheon = callPackage ../development/libraries/xdg-desktop-portal-pantheon { }; + xdg-desktop-portal-wlr = callPackage ../development/libraries/xdg-desktop-portal-wlr { }; xdg-user-dirs = callPackage ../tools/X11/xdg-user-dirs { };