Bug 447727

Summary: Wayland - when disconnecting single external monitor (3840x1600) from laptop, laptop screen (1920x1200) appears to be showing just the top left corner of the 3840x1600 display. Not scaled, not zoomed. 1:1
Product: [Plasma] kwin Reporter: geminiportkey
Component: wayland-genericAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED NOT A BUG    
Severity: normal    
Priority: NOR    
Version First Reported In: unspecified   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description geminiportkey 2021-12-31 09:01:02 UTC
SUMMARY
I have a very strange issue that I can reproduce almost consistently and without fail (and this only happens with the Wayland session)

I have a laptop with a 1920x1200 display. I use a dock to connect it to a 3840x1600 resolution ultrawide monitor. Every time I disconnect the laptop from the dock, the laptop continues to display essentially the top left corner of the 3840x1600 at 1:1 resolution. It's not stretched, or blurred, or scaled. It's as though my laptop cropped the top right 1920x1200 pixels off my ultrawide's display and continues to display it. 

It's really, really difficult to explain, but I found something that most likely helps; when clicking the "Identify" button under Display Configuration, note how it shows (on the ultrawide) *both* the 1920x1200 laptop display, as well as the 3840x1600 display, both on the same monitor. It shouldn't be doing that (the 1920x1200 should *only* be showing physically on the laptop screen, not on my ultrawide monitor), and the fact that it is suggests to me that Wayland is confused and trying to display both "virtual" displays on the same physical screen. This goes unnoticed when I'm using my external monitor, because my external monitor is much higher resolution than my laptop. But when I switch back to my laptop, my laptop doesn't display at 1920x1200 as you'd expect. 

The only way to fix this without rebooting my laptop, is to run kwin_wayland --replace, which of course closes all my open windows but puts my laptop display back correctly. However, when I do this, I can't get it to output to my monitor again unless I reboot. 

Please see my pictures for more help. 

STEPS TO REPRODUCE
1. Connect laptop to external monitor. Everything works as intended. 
2. Disconnect laptop from external monitor. 

OBSERVED RESULT

Laptop monitor is still showing Plasma desktop at 1:1 resolution, but only the top left corner of whatever was on the 3840x1600 display. 

EXPECTED RESULT

Laptop screen goes back to 1920x1200 display. All windows get rearranged as needed/put back in place to account for new resolution. Panels come back to screen edges. 

SOFTWARE/OS VERSIONS
Operating System: Arch Linux
KDE Plasma Version: 5.23.4
KDE Frameworks Version: 5.89.0
Qt Version: 5.15.2
Kernel Version: 5.15.12-zen1-1-zen (64-bit) (Same behavior on mainline kernel)
Graphics Platform: Wayland
Processors: 16 × AMD Ryzen 7 4800U with Radeon Graphics
Memory: 13.6 GiB of RAM
Graphics Processor: AMD RENOIR
ADDITIONAL INFORMATION
Comment 1 geminiportkey 2021-12-31 09:05:33 UTC
My bug report is a complete mess and after trying to repro, I'm having a different issue altogether. 

Sorry for the spam. I will create it properly next time.