kodi: separate desktop from program
This commit is contained in:
parent
887c7813d1
commit
0a5126f435
2 changed files with 73 additions and 44 deletions
options/custom
|
@ -1,7 +1,6 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
|
@ -9,14 +8,13 @@ with lib; let
|
|||
in {
|
||||
options.custom.desktops.kodi = {
|
||||
enable = mkOption {default = false;};
|
||||
firewall = mkOption {default = false;};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# https://github.com/xbmc/xbmc
|
||||
# https://kodi.wiki/view/Main_Page
|
||||
# https://wiki.archlinux.org/title/Kodi
|
||||
# https://wiki.nixos.org/wiki/Kodi
|
||||
custom = {
|
||||
programs.kodi.enable = true;
|
||||
};
|
||||
|
||||
services = {
|
||||
displayManager.autoLogin = {
|
||||
enable = true;
|
||||
|
@ -29,50 +27,13 @@ in {
|
|||
|
||||
desktopManager.kodi = {
|
||||
enable = true;
|
||||
|
||||
# https://wiki.nixos.org/wiki/Kodi#Plugins
|
||||
package = pkgs.unstable.kodi-gbm.withPackages (kodiPackages:
|
||||
with kodiPackages; [
|
||||
youtube # https://github.com/anxdpanic/plugin.video.youtube
|
||||
]);
|
||||
package = config.custom.programs.kodi.package;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# https://kodi.wiki/view/Smartphone/tablet_remotes#Firewall
|
||||
# https://wiki.nixos.org/wiki/Kodi#Access_from_other_machines
|
||||
networking.firewall = mkIf cfg.firewall {
|
||||
allowedTCPPorts = [8080];
|
||||
allowedUDPPorts = [9777];
|
||||
};
|
||||
|
||||
users.users.kodi = {
|
||||
isNormalUser = true;
|
||||
};
|
||||
|
||||
home-manager.users.kodi = {
|
||||
programs = {
|
||||
home-manager.enable = true;
|
||||
|
||||
kodi = {
|
||||
enable = true;
|
||||
package = config.services.xserver.desktopManager.kodi.package;
|
||||
|
||||
# advancedsettings.xml
|
||||
# https://kodi.wiki/view/Advancedsettings.xml
|
||||
settings = {
|
||||
# guisettings.xml
|
||||
# https://kodi.wiki/view/Advancedsettings.xml#guisettings.xml_Setting_Conversion
|
||||
# https://github.com/xbmc/xbmc/blob/master/system/settings/settings.xml
|
||||
|
||||
# https://kodi.wiki/view/Webserver
|
||||
services = {
|
||||
webserver = "true";
|
||||
webserverauthentication = "false";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
68
options/custom/programs/kodi.nix
Normal file
68
options/custom/programs/kodi.nix
Normal file
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.custom.programs.kodi;
|
||||
in {
|
||||
options.custom.programs.kodi = {
|
||||
enable = mkEnableOption "kodi";
|
||||
firewall = mkOption {default = false;};
|
||||
|
||||
package = mkOption {
|
||||
default =
|
||||
pkgs.kodi-gbm.withPackages (kodiPackages:
|
||||
forEach cfg.plugins (plugin: kodiPackages.${plugin}));
|
||||
|
||||
type = types.package;
|
||||
};
|
||||
|
||||
# https://wiki.nixos.org/wiki/Kodi#Plugins
|
||||
plugins = mkOption {
|
||||
default = [
|
||||
"youtube" # https://github.com/anxdpanic/plugin.video.youtube
|
||||
];
|
||||
|
||||
type = with types; listOf str;
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# https://kodi.wiki/view/Smartphone/tablet_remotes#Firewall
|
||||
# https://wiki.nixos.org/wiki/Kodi#Access_from_other_machines
|
||||
networking.firewall = mkIf cfg.firewall {
|
||||
allowedTCPPorts = [8080];
|
||||
allowedUDPPorts = [9777];
|
||||
};
|
||||
|
||||
home-manager.sharedModules = [
|
||||
{
|
||||
# https://github.com/xbmc/xbmc
|
||||
# https://kodi.wiki/view/Main_Page
|
||||
# https://wiki.archlinux.org/title/Kodi
|
||||
# https://wiki.nixos.org/wiki/Kodi
|
||||
programs.kodi = {
|
||||
enable = true;
|
||||
package = cfg.package;
|
||||
|
||||
# advancedsettings.xml
|
||||
# https://kodi.wiki/view/Advancedsettings.xml
|
||||
settings = {
|
||||
# guisettings.xml
|
||||
# https://kodi.wiki/view/Advancedsettings.xml#guisettings.xml_Setting_Conversion
|
||||
# https://github.com/xbmc/xbmc/blob/master/system/settings/settings.xml
|
||||
|
||||
# https://kodi.wiki/view/Webserver
|
||||
services = {
|
||||
webserver = "true";
|
||||
webserverauthentication = "false";
|
||||
webserverport = "8888";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue