You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
997 B
Nix

{
config,
lib,
pkgs,
...
}:
let
cfg = config.programs.retroarch;
in
{
options.programs.retroarch = {
enable = lib.mkEnableOption "RetroArch as user program";
package = lib.mkPackageOption pkgs "retroarch" {
example = lib.literalExpression "pkgs.retroarchFull";
};
cores = lib.mkOption {
description = "List of cores to install.";
type = lib.types.listOf lib.types.package;
default = [ ];
example = lib.literalExpression "with pkgs.libretro; [ twenty-fortyeight ]";
};
finalPackage = lib.mkOption {
description = "RetroArch package with the cores selected";
type = lib.types.package;
readOnly = true;
default = if cfg.cores == [ ] then cfg.package else cfg.package.override { inherit (cfg) cores; };
defaultText = ''
with config.programs.retroarch;
package.override { inherit cores; }
'';
};
};
config = {
home.packages = lib.singleton cfg.finalPackage;
};
}