{ pkgs, tree, ... }: let kodiPackage = pkgs.kodi-wayland.withPackages (kodiPkgs: with kodiPkgs; [ keymap sendtokodi sponsorblock pvr-iptvsimple inputstreamhelper inputstream-adaptive inputstream-rtmp visualization-projectm visualization-waveform visualization-matrix visualization-starburst visualization-spectrum ]); in { environment.systemPackages = [ kodiPackage ]; services.xserver = { enable = true; desktopManager.kodi = { enable = true; package = kodiPackage; }; #autoLogin.enable = true; #autoLogin.user = "kodi"; }; networking.firewall = { allowedTCPPorts = [8080]; allowedUDPPorts = [8080]; }; users.users.kodi = { uid = 1002; isNormalUser = true; extraGroups = [ "video" "input" "uinput" "audio" "rtkit" ]; }; home-manager.users.kodi = { imports = with tree.profiles.home-manager; [ base gui.base gui.environments.gnome apps.fileRoller apps.nautilus apps.pavucontrol apps.mpv apps.firefox apps.telegram apps.aria2 apps.rclone ]; # only for x86_64 home.file.widevine-lib = { source = "${pkgs.widevine-cdm}/share/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so"; target = ".kodi/cdm/libwidevinecdm.so"; }; home.file.widevine-manifest = { source = "${pkgs.widevine-cdm}/share/google/chrome/WidevineCdm/manifest.json"; target = ".kodi/cdm/manifest.json"; }; home.stateVersion = "24.05"; }; }