https://bugs.kde.org/show_bug.cgi?id=454621

--- Comment #13 from Allistar <allista...@gmail.com> ---
I have tried with 5.27.4.1 (the currently stable version on Gentoo) and the
problem is still there. I have fixed this locally by modifying
plasma-workspace/shell/screenpool.cpp by telling it to ignore two of my
monitors by their serial number. I'll attach my patch file.

The fundamental issue is the same and that's that the code identifies monitors
by QScreen.name(). This is not unique. It's possible to have two monitors on
the same system with the same name. The name is the xrandr output name. I have
these monitors on my system:

GPU 1: DVI-I-1, HDMI-0, DVI-D-0, HDMI-1
GPU 2:  DVI-I-1, DVI-D-0

Note that there are two monitors that both have the name "DV!-I-1" and
"DVI-D-0". The bug is primarily in ScreenPool::handleOutputOrderChanged and
handleScreenAdded. The class "OutputOrderWatcher" also has a bug because it's
using the screen name to identify the screen.

My patch looks in plasmashellrc for a "[IgnoredScreens]" setting which is a
list of the serial numbers to ignore. I've modified handleScreenAdded and
handleOutputOrderChanged to skip over QScreens that have a matching serial
number.

A proper fix for this is to not assume the screen name is unique and instead
have a method that returns something that is unique. I recommend the screen
name prefixed with the DISPLAY number (e.g. ":0.0" or "0.1"). I have used
serial number because that works for me but I don't think monitors will always
provide a serial number.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to