{ config, lib, pkgs, ... }: with lib; let cfg = config.local.sys.xdg; in { options.local.sys.xdg = { enable = mkEnableOption "xdg settings"; }; config = mkIf cfg.enable { xdg.portal = { enable = true; wlr.enable = true; extraPortals = [pkgs.xdg-desktop-portal-gtk]; xdgOpenUsePortal = true; # warning: xdg-desktop-portal 1.17 reworked how portal implementations are loaded, you # should either set `xdg.portal.config` or `xdg.portal.configPackages` # to specify which portal backend to use for the requested interface. # # https://github.com/flatpak/xdg-desktop-portal/blob/1.18.1/doc/portals.conf.rst.in # # If you simply want to keep the behaviour in < 1.17, which uses the first # portal implementation found in lexicographical order, use the following: # # xdg.portal.config.common.default = "*"; config.common.default = "*"; }; }; }