nixos-combined-flake/modules/nixos/mediacenter/kodi/default.nix

66 lines
1.3 KiB
Nix

{
pkgs,
config,
lib,
...
}: let
cfg = config.mediacenter.kodi;
in
with lib; {
options = {
mediacenter.kodi = {
enable = mkEnableOption "kodi";
};
};
config = let
user = "kodi";
kodi-standalone =
pkgs.kodi-wayland.passthru.withPackages
(kodiPkgs:
with pkgs.kodiPackages; [
youtube
pvr-iptvsimple
keymap
inputstream-adaptive
inputstream-ffmpegdirect
requests-cache
inputstreamhelper
]);
in
lib.mkIf cfg.enable {
services.cage = {
inherit user;
enable = true;
program = "${kodi-standalone}/bin/kodi-standalone";
};
users.users.kodi = {
name = user;
isNormalUser = true;
extraGroups = [
"audio"
"video"
"disk"
"plugdev"
"i2c"
"spi"
"power"
];
};
networking.firewall.allowedTCPPorts = [8080 9090];
environment.systemPackages = with pkgs; [
kodi-standalone
alsa-utils
(retroarch.override {
cores = with libretro; [
snes9x
pcsx-rearmed
nestopia
];
})
];
};
}