{ lib, config, pkgs, ... }: let inherit (lib) mkIf mkOption mkEnableOption types ; cfg = config.nixos.system.xdg; in { options = { nixos.system.xdg = { enable = mkEnableOption "Enable XDG portal."; xdgOpenUsePortal = mkOption { type = types.bool; default = true; description = "Use xdg-open via the portal."; }; }; }; config = mkIf cfg.enable { xdg.portal = { enable = true; xdgOpenUsePortal = cfg.xdgOpenUsePortal; config = { common.default = [ "gtk" "gnome" ]; hyprland.default = [ "gtk" "hyprland" ]; }; extraPortals = with pkgs; [ xdg-desktop-portal-gtk xdg-desktop-portal-gnome ]; }; }; }