Tuesday, 21 January 2020

Using Kodi with multiple monitors is abysmal.

Kodi is a great media player except for how it handles display settings. One of the areas that will really trip it up is when your computer has multiple monitors, especially if they have different resolutions.

What I am generally seeing in my experience with multiple monitors is that Kodi's default if it is the wrong monitor, then you go into the System settings and change the screen to the monitor you want to use, it tries to use that screen, trips over something silly like it is a different resolution from the one it was on before, and refuses to use it. 

Even if you go into the settings file and hard code the display you want it to be on, you can't get it to actually display on that screen, it will completely ignore you.

What I find really annoying is if I manage to get it to work on the correct screen, then if I reinstall the operating system, I have to go through this annoyance all over again. Every other piece of software on my computer can see that there is an existing user profile with settings in it for them to read, but Kodi insists that I have to set it up all over again.

At any rate here is where some of the settings are stored in the settings file.

You can set the monitor to be used by finding the .kodi folder in your user profile, then go into the userdata folder, open guisettings.xml and scroll down to the section starting with <videoscreen>. Then find the <monitor> </monitor> line. This should show the name of the display to be used, e.g.
<monitor>HDMI-2</monitor>

To get the names of the display outputs on your computer, open a command prompt and run
xrandr
which gives a list of the ports with their names. For example a typical output might look like
VGA-1 disconnected...
HDMI-1 connected...
HDMI-2 connected primary...

so the display name you want is one of those ones like VGA-1, HDMI-1, DP-1 and so on.

If Kodi is using its "default monitor", this line will look something like
<monitor default="true">Default</monitor>

and then you need to change it to look like the format above to use the monitor you want.

If Kodi still won't use the correct display then I have found a brute force approach to the settings can be helpful. I recommend you back up guisettings.xml first.

Edit as above except in the <videoscreen> section remove every line except the one that specifies the monitor, e.g.
<videoscreen>
       <monitor>HDMI-2</monitor>
</videoscreen> 

I have found this to work, but once Kodi is running, then naturally it may be necessary to go into the Settings section in the application and change a few of the other settings that were in there, because of the ones you deleted from the settings file.

However on other occasions I have found that Kodi will only work for the first time it runs with most of the display settings removed. After it has written some new stuff into the config file, the next time it starts up, it's problems again, like the settings it wrote to the file contradict the one that tells it which display to use. In other words, this problem can't actually be solved.

So it is simply impossible to use Kodi in certain display configurations; it won't work on any display except the default one.