{ config, lib, pkgs, ... }: with lib; let programCfg = config.programs.xdg-open-ng; settingsFormat = pkgs.formats.preserves { }; prCfgFile = settingsFormat.generate "xdg-open.pr" programCfg.settings; pkg = programCfg.package; in { options.programs.xdg-open-ng = { enable = mkEnableOption "xdg-open-ng"; package = mkOption { type = types.package; default = pkgs.xdg-open-ng; defaultText = literalExpression "pkgs.xdg-open-ng"; }; settings = mkOption { type = settingsFormat.type; default = [ ]; defaultText = literalExpression '' [ [ ".*mkv|.*mp4" [ "${pkgs.mpv}/bin/mpv" "$#" ] ] [ "gemini://.*|file:///.*.gmi" [ "${pkgs.kristall}/bin/kristall" "$#" ]; ] [ "tox:.*" [ "${pkgs.qtox}/bin/qtox" "$#" ] ] ] ''; }; }; config = mkIf programCfg.enable { environment.systemPackages = [ pkg ]; }; meta.maintainers = with lib.maintainers; [ ehmry ]; }