Current git master from today. 100% reproducible for me. STEPS TO REPRODUCE 1. Plug in external HDMI screen to laptop, either director or through Thunderbolt dock (makes no difference) 2. Position external screen above laptop screen, offset to the left about 50% 3. Close laptop lid such that screen locks and computer goes to sleep 4. wait 5 seconds 5. Open laptop lid to wake laptop and show the lock screen OBSERVED RESULT Only external screen is enabled. Laptop screen has become disabled. Sometimes I see the dreaded "the screen locker is broken" screen instead of the expected normal lock screen, but this part isn't 100% reproducible. EXPECTED RESULT Laptop screen remains enabled. ADDITIONAL INFORMATION: word-by-word diff of the `kscreen-o` output: $ git diff --word-diff before\ closing\ lid.txt after\ opening\ lid.txt diff --git before closing lid.txt after opening lid.txt index 8f4a15c..2deac80 100644 --- before closing lid.txt +++ after opening lid.txt @@ -1,5 +1,5 @@ Output: 1 eDP-1 [-enabled-]{+disabled+} connected priority [-1-]{+0+} Panel Modes: 0:3840x2160@60*! 1:1600x1200@60 2:1280x1024@60 3:1024x768@60 4:2560x1600@60 5:1920x1200@60 6:1280x800@60 7:3840x2160@60 8:3200x1800@60 9:2880x1620@60 10:2560x1440@60 11:1920x1080@60 12:1600x900@60 13:1368x768@60 14:1280x720@60 Geometry: 1163,1080 1920x1080 Scale: 2 Rotation: 1 Overscan: 0 Vrr: incapable RgbRange: Automatic Output: 2 DP-1 enabled connected priority [-2-]{+1+} DisplayPort Modes: 0:1920x1080@60*! 1:1920x1080@60 2:1920x1080@60 3:1920x1080@50 4:1920x1080@50 5:1680x1050@60 6:1600x900@60 7:1280x1024@60 8:1440x900@60 9:1280x800@60 10:1280x720@60 11:1280x720@60 12:1280x720@60 13:1280x720@50 14:1280x720@50 15:1024x768@60 16:800x600@60 17:720x576@50 18:720x576@50 19:720x480@60 20:720x480@60 21:720x480@60 22:720x480@60 23:720x480@60 24:640x480@60 25:640x480@60 26:640x480@60 27:720x400@70 28:1280x1024@60 29:1024x768@60 30:1280x800@60 31:1920x1080@60 32:1600x900@60 33:1368x768@60 34:1280x720@60 Geometry: 0,0 1920x1080 Scale: 1 Rotation: 1 Overscan: 0 Vrr: incapable RgbRange: Automatic
what does the kscreen kcm says (can you post a screenshot)? if the screen is enabled from there does it start to behave correctly afterwards? maybe the first time you connected that external screen you inadvertitely chosen from the OSD to use only the external screen?
Created attachment 156836 [details] What the KCM shows Attaching a screenshot of the KCM. The KCM agrees with `kscreen-doctor -o` and also matches reality. When I reproduce this bug, if I enable the laptop screen from the KCM, it becomes enabled as expected. But the old layout from before is not remembered; I need to manually mark the laptop screen as primary and move the external screen to its proper position. > maybe the first time you connected that external screen you inadvertitely chosen from the OSD to use only the external screen? Don't think so. The external screen is my only one and it's the one I regularly use to test multimonitor issues and patches.
Git commit ae84480fbfdc684b8ee4b0207d3ce679f6fb4cd7 by Xaver Hugl. Committed on 05/10/2023 at 20:29. Pushed by zamundaaa into branch 'master'. outputconfigurationstore: add new config system Instead of an external service (like KScreen) storing and restoring output configurations, with this commit KWin takes over that responsibility. This allows it to, among other things, generate appropriate configs for new sets of outputs immediately, and take KWin-internal information about outputs into account when generating them. Related: bug 466208, bug 455082, bug 457430, bug 474021, bug 469653, bug 466342, bug 470863 M +1 -0 CMakeLists.txt M +1 -0 autotests/integration/kwin_wayland_test.cpp M +1 -0 src/CMakeLists.txt M +5 -0 src/backends/drm/drm_output.cpp M +9 -0 src/core/output.cpp M +11 -0 src/core/output.h M +1 -0 src/core/outputconfiguration.h M +7 -0 src/main.cpp M +1 -0 src/main.h M +0 -4 src/main_wayland.cpp M +709 -20 src/outputconfigurationstore.cpp M +68 -4 src/outputconfigurationstore.h M +1 -0 src/utils/CMakeLists.txt M +8 -0 src/utils/edid.cpp M +8 -0 src/utils/edid.h A +54 -0 src/utils/orientationsensor.cpp [License: GPL(v2.0+)] A +38 -0 src/utils/orientationsensor.h [License: GPL(v2.0+)] M +34 -1 src/wayland/outputdevice_v2.cpp M +1 -0 src/wayland/outputdevice_v2.h M +12 -1 src/wayland/outputmanagement_v2.cpp M +49 -6 src/workspace.cpp M +2 -0 src/workspace.h https://invent.kde.org/plasma/kwin/-/commit/ae84480fbfdc684b8ee4b0207d3ce679f6fb4cd7
I'm affected by the same issue. This also happens when the laptop stays idle for a very long time.
(I'm on kwin 5.27.10, for reference)