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