1{ config, lib, pkgs, ... }:
2
3with lib;
4
5let
6 cfg = config.services.xserver.desktopManager.kodi;
7in
8
9{
10 options = {
11 services.xserver.desktopManager.kodi = {
12 enable = mkOption {
13 type = types.bool;
14 default = false;
15 description = lib.mdDoc "Enable the kodi multimedia center.";
16 };
17
18 package = mkOption {
19 type = types.package;
20 default = pkgs.kodi;
21 defaultText = literalExpression "pkgs.kodi";
22 example = literalExpression "pkgs.kodi.withPackages (p: with p; [ jellyfin pvr-iptvsimple vfs-sftp ])";
23 description = lib.mdDoc ''
24 Package that should be used for Kodi.
25 '';
26 };
27 };
28 };
29
30 config = mkIf cfg.enable {
31 services.xserver.desktopManager.session = [{
32 name = "kodi";
33 start = ''
34 LIRC_SOCKET_PATH=/run/lirc/lircd ${cfg.package}/bin/kodi --standalone &
35 waitPID=$!
36 '';
37 }];
38
39 environment.systemPackages = [ cfg.package ];
40 };
41}