summary refs log tree commit diff
path: root/nixos/modules/config
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2023-11-18 00:54:36 +0100
committerJan Tojnar <jtojnar@gmail.com>2024-02-11 03:32:47 +0100
commitfe40e99020f340c982e156e22ac531157174af5b (patch)
tree786869c369be8d02a36f49188ac825f0c7e88a26 /nixos/modules/config
parent3b2f55e89f8233333b191bb7b4c9d6448a4a2d74 (diff)
nixos/xdg/portal: Use systemPackage instead of buildEnv
Portals are global so we can just link them globally.

There might, in theory, be some unexpected system-path contamination
(e.g. when a portal package installs its executables to `/bin`)
but I think the risk is relatively minor compared to the added complexity.

While at it, let’s point the environment variable to system-path.
That will allow changes to installed portals to apply without having to re-log in.
Diffstat (limited to 'nixos/modules/config')
-rw-r--r--nixos/modules/config/xdg/portal.nix14
1 files changed, 3 insertions, 11 deletions
diff --git a/nixos/modules/config/xdg/portal.nix b/nixos/modules/config/xdg/portal.nix
index a1540d86fa75c..5aa23377f9ffb 100644
--- a/nixos/modules/config/xdg/portal.nix
+++ b/nixos/modules/config/xdg/portal.nix
@@ -119,12 +119,6 @@ in
     let
       cfg = config.xdg.portal;
       packages = [ pkgs.xdg-desktop-portal ] ++ cfg.extraPortals;
-
-      joinedPortals = pkgs.buildEnv {
-        name = "xdg-portals";
-        paths = packages;
-        pathsToLink = [ "/share/xdg-desktop-portal/portals" "/share/applications" ];
-      };
     in
     mkIf cfg.enable {
       warnings = lib.optional (cfg.configPackages == [ ] && cfg.config == { }) ''
@@ -151,11 +145,9 @@ in
       systemd.packages = packages;
 
       environment = {
-        systemPackages = [
-          joinedPortals
-        ] ++ cfg.configPackages;
+        systemPackages = packages ++ cfg.configPackages;
         pathsToLink = [
-          # Upstream desktop environment portal configurations.
+          # Portal definitions and upstream desktop environment portal configurations.
           "/share/xdg-desktop-portal"
           # .desktop files to register fallback icon and app name.
           "/share/applications"
@@ -164,7 +156,7 @@ in
         sessionVariables = {
           GTK_USE_PORTAL = mkIf cfg.gtkUsePortal "1";
           NIXOS_XDG_OPEN_USE_PORTAL = mkIf cfg.xdgOpenUsePortal "1";
-          NIX_XDG_DESKTOP_PORTAL_DIR = "${joinedPortals}/share/xdg-desktop-portal/portals";
+          NIX_XDG_DESKTOP_PORTAL_DIR = "/run/current-system/sw/share/xdg-desktop-portal/portals";
         };
 
         etc = lib.concatMapAttrs