nix-configs

Personal NixOS and home-manager configuration files
Log | Files | Refs

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 }