Using KDE and switching between desktop monitors and TV, best way?

Hi,

I’m running Plasma 6.6.2 with 4 devices connected to my NVIDIA RTX4090:

3 x monitor
1 x AV Reciever / TV (downstairs, connected with a long fiber optic HDMI cable).

I want to switch between the two, I currently have a script that uses kscreen-doctor to switch between the two but it can be unreliable (Sometimes KDE stops outputting anything with 4 monitors connected, and I have to reboot to the PC, I filed a bug but apparently it’s an upstream issue with NVIDIA - https://bugs.kde.org/show_bug.cgi?id=507285)

What’s the best way to do this in KDE? Should I make a separate user account for using the PC downstairs, with the monitor set up as the only device, and just logout/switch when needed? Would that be cleaner than using a script?

Thanks for any help!


Don’t complain about a new user. It’s inefficient.

The most stable solution for your setup (RTX 4090 + Fiber Optic) is to use autorandr. Although common on i3/Sway, it works on Plasma and is much more resilient than pure kscreen-doctor in handling problematic EDIDs from long fiber optic cables, which often “flicker” and confuse KWin.

Install autorandr.

Save the “Desktop” configuration: autorandr --save desktop.

Save the “TV” configuration: autorandr --save tv.

Alternative with autorandr --load tv.

If the problem persists, the issue is the fiber HDMI handshake. These cables keep the signal active (5V) even with the TV off, making the NVIDIA driver think the device still requires resources.

1 Like

Thank you, that sounds like just what I was looking for! I will check it out.

i am aways here

1 Like

I am curious as to what the other person said now!

I tried autorandr, and unfortunately I am on Wayland so it doesn’t work, I probably should’ve lead with that, but that’s one of the reasons I’m on kscreen-doctor.

I thought kscreen-doctor allowed to save configs now, but I don’t see the option to. I had a quick look through the source code and didn’t see anything either, I see you can spit a config out as JSON, but not the other way around.