{ config, lib, pkgs, ... }: let inherit (lib.modules) mkIf; inherit (lib.lists) optional; in { xdg.portal = { enable = true; # Sets environment variable NIXOS_XDG_OPEN_USE_PORTAL to 1. # This will make xdg-open use the portal to open programs, # which resolves bugs involving programs opening inside FHS envs # or with unexpected env vars set from wrappers. # See #160923 for more info. xdgOpenUsePortal = true; extraPortals = [ pkgs.xdg-desktop-portal-gtk pkgs.kdePackages.xdg-desktop-portal-kde pkgs.kdePackages.kwallet pkgs.xdg-desktop-portal-gnome ]; config = { common = { "org.freedesktop.impl.portal.Secret" = [ "kwallet" ]; "org.freedesktop.secrets" = [ "kwalletd6" ]; }; niri = { default = [ "gnome" "gtk" "kde" ]; # Portal API reference: # https://docs.flatpak.org/en/latest/portal-api-reference.html # "org.freedesktop.impl.portal.Access" = ["kde"]; # "org.freedesktop.impl.portal.Notification" = ["kde"]; "org.freedesktop.impl.portal.FileChooser" = [ "kde" ]; }; }; }; }