Kodi: Difference between revisions

From NixOS Wiki
imported>Mic92
imported>Mic92
No edit summary
Line 1: Line 1:
Kodi (formerly known as XBMC) is an award-winning free and open source (GPL) software media player and entertainment hub that can be installed on Linux, OSX, Windows, iOS and Android, featuring a 10-foot user interface for use with televisions and remote controls.
Kodi (formerly known as XBMC) is an award-winning free and open source (GPL) software media player and entertainment hub that can be installed on Linux, OSX, Windows, iOS and Android, featuring a 10-foot user interface for use with televisions and remote controls.


== Module usage ==
== Basic module usage ==


The NixOS module for kodi sets kodi up as a desktop session.
The NixOS module for kodi sets kodi up as a desktop session.
Line 16: Line 16:
   # Define a user account
   # Define a user account
   users.extraUsers.kodi.isNormalUser = true;
   users.extraUsers.kodi.isNormalUser = true;
}
</syntaxHighlight>


  # allow everybody in the net to access the wifi
== Access from other machines ==
 
For this to work kodi's remote interface must be enabled in the kodi configuration.
Kodi uses by default udp/tcp port 8080, which must be allowed in the firewall:
 
<syntaxHighlight lang=nix>
   networking.firewall = {
   networking.firewall = {
     allowedTCPPorts = [ 8080 ];
     allowedTCPPorts = [ 8080 ];
     allowedUDPPorts = [ 8080 ];
     allowedUDPPorts = [ 8080 ];
   };
   };
}
</syntaxHighlight>
</syntaxHighlight>



Revision as of 08:02, 17 September 2020

Kodi (formerly known as XBMC) is an award-winning free and open source (GPL) software media player and entertainment hub that can be installed on Linux, OSX, Windows, iOS and Android, featuring a 10-foot user interface for use with televisions and remote controls.

Basic module usage

The NixOS module for kodi sets kodi up as a desktop session. With this configuration kodi will run automatically on boot:

{
  services.xserver.enable = true;
  services.xserver.desktopManager.kodi.enable = true;
  services.xserver.displayManager.autoLogin.enable = true;
  services.xserver.displayManager.autoLogin.user = "kodi";
  users.extraUsers.kodi.isNormalUser = true;

  # Define a user account
  users.extraUsers.kodi.isNormalUser = true;
}

Access from other machines

For this to work kodi's remote interface must be enabled in the kodi configuration. Kodi uses by default udp/tcp port 8080, which must be allowed in the firewall:

  networking.firewall = {
    allowedTCPPorts = [ 8080 ];
    allowedUDPPorts = [ 8080 ];
  };

With wayland

Especially on less-powerful ARM boards the wayland variant is faster. In this example cage, kiosk compositor for Wayland, will run kodi as its only application:

{ pkgs, ... }: {
  # Define a user account
  users.extraUsers.kodi.isNormalUser = true;
  services.cage.user = "kodi";
  services.cage.program = "${pkgs.kodi-wayland}/bin/kodi-standalone";
  services.cage.enable = true;
}