forked from ehmry/syndicated-open
40 lines
970 B
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 ];
|
|
}
|