2025-07-08 16:19:56 +02:00
|
|
|
{
|
|
|
|
config,
|
|
|
|
lib,
|
|
|
|
pkgs,
|
|
|
|
...
|
|
|
|
}: let
|
2025-07-13 22:51:22 +02:00
|
|
|
inherit (lib.modules) mkIf;
|
2025-07-08 16:19:56 +02:00
|
|
|
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
|
2025-07-08 17:15:27 +02:00
|
|
|
pkgs.kdePackages.xdg-desktop-portal-kde
|
2025-07-08 16:19:56 +02:00
|
|
|
]
|
|
|
|
++ (
|
|
|
|
optional config.programs.niri.enable
|
|
|
|
pkgs.xdg-desktop-portal-gnome
|
|
|
|
)
|
|
|
|
++ (
|
|
|
|
optional config.programs.hyprland.enable
|
|
|
|
pkgs.xdg-desktop-portal-hyprland
|
|
|
|
);
|
|
|
|
config = {
|
2025-07-08 17:15:27 +02:00
|
|
|
hyprland.default = mkIf config.programs.hyprland.enable ["*"];
|
|
|
|
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"];
|
|
|
|
};
|
2025-07-08 16:19:56 +02:00
|
|
|
};
|
2025-07-13 22:51:22 +02:00
|
|
|
};
|
|
|
|
environment.variables = {
|
2025-07-08 16:19:56 +02:00
|
|
|
};
|
2024-05-20 23:55:11 +02:00
|
|
|
}
|