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}