xdg_open_ng/nixos-module.nix

40 lines
970 B
Nix

{ 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 ];
}