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

77 lines
1.6 KiB
Nix

{ pkgs, ... }:
let
user = "kodi";
kodi-standalone = pkgs.kodi-wayland.withPackages
(kodiPkgs: with pkgs.kodiPackages; [
youtube
pvr-iptvsimple
keymap
inputstream-adaptive
inputstream-ffmpegdirect
requests-cache
inputstreamhelper
advanced-emulator-launcher
jellyfin
]);
in
{
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"
];
};
sops.secrets = {
"kodi-advancedsettings" = {
owner = user;
format = "binary";
sopsFile = ./secrets/advancedsettings.xml;
path = "/home/${user}/.kodi/userdata/advancedsettings.xml";
};
"kodi-passwords" = {
owner = user;
format = "binary";
sopsFile = ./secrets/passwords.xml;
path = "/home/${user}/.kodi/userdata/passwords.xml";
};
"kodi-youtube" = {
owner = user;
format = "binary";
sopsFile = ./secrets/youtube.json;
path = "/home/${user}/.kodi/userdata/addon_data/plugin.video.youtube/api_keys.json";
};
};
networking.firewall.allowedTCPPorts = [ 8080 9090 ];
environment.sessionVariables = {
WLR_LIBINPUT_NO_DEVICES = builtins.toString 1;
};
environment.systemPackages = with pkgs; [
#kodi-standalone
alsa-utils
(retroarch.override {
cores = with libretro; [
snes9x
pcsx-rearmed
nestopia
];
})
];
}