kodi.nix (4534B)
1 { config, vars, pkgs, ... }: 2 3 { 4 programs.kodi = { 5 enable = true; 6 package = pkgs.kodi-wayland.withPackages (kodiPkgs: with kodiPkgs; [ 7 a4ksubtitles 8 inputstream-adaptive 9 sendtokodi 10 sponsorblock 11 upnext 12 youtube 13 ]); 14 addonSettings = { 15 "plugin.video.youtube" = { "kodion.video.quality" = "3"; "kodion.setup_wizard" = "false"; }; 16 "service.subtitles.a4ksubtitles" = { "opensubtitles.enabled" = "false"; }; 17 "service.upnext" = { "stopAfterClose" = "true"; "enablePlaylist" = "true"; "includeWatched" = "true";}; 18 "service.watchedlist" = { "extdb" = "true"; "dbpath" = "/home/${vars.user.username}/vault/"; "dbfilename" = "watchedlist.db"; }; 19 }; 20 sources = { 21 video = { 22 default = "movies"; 23 source = [ 24 { name = "${vars.user.username}"; path = "/home/${vars.user.username}"; allowsharing = "true"; } 25 { name = "movies"; path = "/tank/media/videos/movies"; allowsharing = "true"; } 26 { name = "seedbox"; path = "/home/${vars.user.username}/seedbox"; allowsharing = "true"; } 27 { name = "television"; path = "/tank/media/videos/television"; allowsharing = "true"; } 28 ]; 29 }; 30 }; 31 }; 32 home.file.".kodi/userdata/guisettings.xml" = { 33 force = true; 34 text = '' 35 <settings version="2"> 36 <setting id="addons.unknownsources">true</setting> 37 <setting id="addons.updatemode">1</setting> 38 <setting id="locale.country">UK (12h)</setting> 39 <setting id="locale.language">resource.language.en_gb</setting> 40 <setting id="locale.timezone">${vars.user.timezone}</setting> 41 <setting id="locale.timezonecountry">Britain (UK)</setting> 42 <setting id="lookandfeel.skincolors">midnight</setting> 43 <setting id="screensaver.mode">screensaver.xbmc.builtin.dim</setting> 44 <setting id="screensaver.time">5</setting> 45 <setting id="services.webserver">true</setting> 46 <setting id="services.webserverauthentication">true</setting> 47 <setting id="services.webserverpassword">kodi</setting> 48 <setting id="services.webserverport">8080</setting> 49 <setting id="services.webserverusername">kodi</setting> 50 <setting id="videolibrary.tvshowsselectfirstunwatcheditem">2</setting> 51 </settings> 52 ''; 53 }; 54 home.file.".kodi/userdata/addon_data/skin.estuary/settings.xml".text = '' 55 <settings version="2"> 56 <setting id="background_overlay" type="string">4</setting> 57 <setting id="homemenunogamesbutton" type="bool">true</setting> 58 <setting id="homemenunomusicbutton" type="bool">true</setting> 59 <setting id="homemenunomusicvideobutton" type="bool">true</setting> 60 <setting id="homemenunopicturesbutton" type="bool">true</setting> 61 <setting id="homemenunoradiobutton" type="bool">true</setting> 62 <setting id="homemenunotvbutton" type="bool">true</setting> 63 <setting id="homemenunovideosbutton" type="bool">true</setting> 64 <setting id="homemenunoweatherbutton" type="bool">true</setting> 65 <setting id="no_slide_animations" type="bool">true</setting> 66 </settings> 67 ''; 68 home.file.".kodi/userdata/favourites.xml".text = '' 69 <favourites> 70 <!-- sort:start --> 71 <favourite name="EndlessBBT">ActivateWindow(10025,"special://profile/playlists/video/EndlessBBT.xsp",return)</favourite> 72 <favourite name="Moonlight">System.Exec("moonlight")</favourite> 73 <favourite name="Retroarch">System.Exec("retroarch")</favourite> 74 <favourite name="Seedbox">ActivateWindow(10502,"/home/${vars.user.username}/seedbox/",return)</favourite> 75 <favourite name="Spotify">System.Exec("alacritty -e spotify_player")</favourite> 76 <!-- sort:end --> 77 </favourites> 78 ''; 79 home.file.".kodi/userdata/playlists/video/EndlessBBT.xsp".text = '' 80 <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> 81 <smartplaylist type="episodes"><name>EndlessBBT</name> 82 <match>all</match><limit>25</limit><order direction="ascending">random</order> 83 <rule field="tvshow" operator="is"><value>The Big Bang Theory</value></rule> 84 </smartplaylist> 85 ''; 86 87 # Launch Kodi via Hyprland 88 wayland.windowManager.hyprland.extraConfig = '' 89 hl.on("hyprland.start",function()hl.exec_cmd("${pkgs.coreutils}/bin/env TZDIR=/etc/zoneinfo TZ=${vars.user.timezone} ${config.programs.kodi.package}/bin/kodi")end) 90 ''; 91 92 }