TL;DR
I’ve noticed that in KDE Wayland, when I connect my laptop to an external monitor and enable mirrored display (a very common scenario for presentations), the external screen gets forced into a weird scaling mode — making the image extremely blurry. I’ve filed a bug report on https://bugs.kde.org/show_bug.cgi?id=512073 .
I really hope this gets fixed ASAP ( since I teach classes and frequently need to project my screen) . I have some C++ programming experience, but I’m not sure where to look in the codebase — any hints from the dev community would be super helpful!
My Monitor Setting
The internal screen (eDP-1) is a high-resolutional 3:2 screen (with scale 2). The external screen (DP-3) is a normal 16:9 screen (with scale 1).
Output: 1 eDP-1 d9405038-08d2-4967-a8b8-11cf5072865c
enabled
connected
priority 1
Panel
replication source:0
Modes: 1:3120x2080@120.00*! 2:3120x2080@60.00 3:1600x1200@59.87 4:1600x1200@119.82 5:1280x1024@59.90 6:1280x1024@119.83 7:1024x768@59.92 8:1024x768@119.80 9:2560x1600@59.99 10:2560x1600@119.93 11:1920x1200@59.88 12:1920x1200@119.90 13:1280x800@59.81 14:1280x800@119.85 15:2880x1620@59.96 16:2880x1620@119.95 17:2560x1440@59.96 18:2560x1440@119.95 19:1920x1080@59.96 20:1920x1080@119.93 21:1600x900@59.95 22:1600x900@119.95 23:1368x768@59.88 24:1368x768@119.83 25:1280x720@59.85 26:1280x720@119.86
Geometry: 0,0 1560x1040
Scale: 2
Rotation: 1
Overscan: 0
Vrr: incapable
RgbRange: Automatic
HDR: incapable
Wide Color Gamut: incapable
ICC profile: none
Color profile source: sRGB
Color power preference: prefer accuracy
Brightness control: supported, set to 70% and dimming to 100%
Color resolution: automatic (16), range: [6; 12] bits per color
Allow EDR: never
Sharpness control: unsupported
Output: 2 DP-3 6e80123d-a065-44a0-bb6a-062b2ab8f01d
disabled
connected
priority 0
DisplayPort
replication source:0
Modes: 27:2560x1440@59.95*! 28:1920x1200@59.95 29:1920x1080@60.00 30:1920x1080@60.00 31:1920x1080@59.94 32:1920x1080@50.00 33:1680x1050@59.88 34:1600x900@60.00 35:1280x1024@75.03 36:1280x1024@60.02 37:1440x900@59.90 38:1366x768@59.79 39:1280x720@60.00 40:1280x720@60.00 41:1280x720@59.94 42:1280x720@50.00 43:1024x768@75.03 44:1024x768@70.07 45:1024x768@60.00 46:800x600@75.00 47:800x600@72.19 48:800x600@60.32 49:800x600@56.25 50:720x576@50.00 51:720x576@50.00 52:720x480@60.00 53:720x480@60.00 54:720x480@59.94 55:720x480@59.94 56:640x480@75.00 57:640x480@72.81 58:640x480@60.00 59:640x480@59.94 60:640x480@59.94 61:720x400@70.08
Geometry: 0,0 2560x1440
Scale: 1
Rotation: 1
Overscan: 0
Vrr: incapable
RgbRange: Automatic
HDR: incapable
Wide Color Gamut: incapable
Color profile source: ICC
Color power preference: prefer efficiency and performance
Brightness control: supported, set to 100% and dimming to 100%
Color resolution: automatic (10), range: [6; 12] bits per color
Allow EDR: unsupported
Sharpness control: unsupported
Weird Scaling in Mirror Mode
When I make the external monitor mirroring the internal monitor with the following kscreen-doctor command:
$ kscreen-doctor output.DP-3.enable output.DP-3.mirror.eDP-1
The screen layout setting becomes:
Output: 1 eDP-1 d9405038-08d2-4967-a8b8-11cf5072865c
enabled
connected
priority 1
Panel
replication source:0
Modes: 1:3120x2080@120.00*! 2:3120x2080@60.00 3:1600x1200@59.87 4:1600x1200@119.82 5:1280x1024@59.90 6:1280x1024@119.83 7:1024x768@59.92 8:1024x768@119.80 9:2560x1600@59.99 10:2560x1600@119.93 11:1920x1200@59.88 12:1920x1200@119.90 13:1280x800@59.81 14:1280x800@119.85 15:2880x1620@59.96 16:2880x1620@119.95 17:2560x1440@59.96 18:2560x1440@119.95 19:1920x1080@59.96 20:1920x1080@119.93 21:1600x900@59.95 22:1600x900@119.95 23:1368x768@59.88 24:1368x768@119.83 25:1280x720@59.85 26:1280x720@119.86
Geometry: 0,0 1560x1040
Scale: 2
Rotation: 1
Overscan: 0
Vrr: incapable
RgbRange: Automatic
HDR: incapable
Wide Color Gamut: incapable
ICC profile: none
Color profile source: sRGB
Color power preference: prefer accuracy
Brightness control: supported, set to 70% and dimming to 100%
Color resolution: automatic (16), range: [6; 12] bits per color
Allow EDR: never
Sharpness control: unsupported
Output: 2 DP-3 6e80123d-a065-44a0-bb6a-062b2ab8f01d
enabled
connected
priority 2
DisplayPort
replication source:1
Modes: 27:2560x1440@59.95! 28:1920x1200@59.95 29:1920x1080@60.00 30:1920x1080@60.00 31:1920x1080@59.94 32:1920x1080@50.00 33:1680x1050@59.88 34:1600x900@60.00 35:1280x1024@75.03 36:1280x1024@60.02 37:1440x900@59.90 38:1366x768@59.79 39:1280x720@60.00 40:1280x720@60.00 41:1280x720@59.94 42:1280x720@50.00 43:1024x768@75.03 44:1024x768@70.07 45:1024x768@60.00 46:800x600@75.00 47:800x600@72.19 48:800x600@60.32 49:800x600@56.25 50:720x576@50.00 51:720x576@50.00 52:720x480@60.00* 53:720x480@60.00 54:720x480@59.94 55:720x480@59.94 56:640x480@75.00 57:640x480@72.81 58:640x480@60.00 59:640x480@59.94 60:640x480@59.94 61:720x400@70.08
Geometry: 0,0 1571x1048
Scale: 0.458333
Rotation: 1
Overscan: 0
Vrr: incapable
RgbRange: Automatic
HDR: incapable
Wide Color Gamut: incapable
Color profile source: ICC
Color power preference: prefer efficiency and performance
Brightness control: supported, set to 100% and dimming to 100%
Color resolution: automatic (10), range: [6; 12] bits per color
Allow EDR: unsupported
Sharpness control: unsupported
Notice that the scale argument becomes Scale: 0.458333. The external screen display becomes very blurry. I try to force setting the scale of the external screen to 1 by kscreen-doctor (kscreen-doctor output.DP-3.scale.1), nothing happens.