[RESPONDED] Ubuntu 22.04.3 - Scaling issues with dual monitor setup

Resolutions with external monitor

Context

What I’m trying to do

I want to plugin an external monitor through the HDMI expansion card and use a dual monitor set up. The monitor is pretty standard 1920x1080 one. I expect to use it with a scaling factor of 100%.
I also want to keep using the framework builtin display with a scaling factor of 200%, because otherwise things are tiny.

What I would expect

To simply plug the external monitor in through HDMI, set up display config as desired and things to work out properly.

What is actually happening

Some windows are completely off when it comes to size/resolution/scaling.

For example:

  • I start a new firefox window.
  • It appears in the external monitor. It looks great.
  • I drag it to the built-in monitor.
  • Everything looks tiny. Characters are barely readable. The scaling is obviously not being respected.
    Or:
  • Switch the built-in monitor to be the main one.
  • Start a new firefox window.
  • It appears in the built-in monitor. It looks great. The scaling is obviously respected.
  • I drag it to the external monitor.
  • Everything looks huge. The window barely fits in the monitor. The scaling is obviously not being respected.

This will happen with some apps. Other apps, like Nautilus or the Settings window, look good on both (scaling is respected in both displays, regardless of where the window first appeared).

A shitty work-around is to set the built-in monitor resolution to 1280x800. But I feel pretty stupid using that resolution after paying a kidney for a nice screen capable of 2256x1504.

What can I do to solve this? Happy to share any logs/terminal outputs that might help debug.

1 Like

This could really come down to individual apps and the Desktop Environment you are using. I have the same issue with my Non-Framework Laptop which has a 4k screen and my external 1080p monitor. I’ve found the easiest solution is to set the resolution/scaling separately for when I have my 1080p monitor plugged in. (it’s a hassle, but once I set it up it was only an issue with apps that didn’t rescale themselves after the resolution change which was rare)

Ubuntu 22.x uses wayland as default display server.
Gnome is IMHO not running as smooth with it as the latest KDE plasma.
Check out if switching to X-Windows display server works better with the gnome apps.

This is a tough one. You may need to try KDE in this instance.

Hi,
and even with KDE Plasma things doesn’t always go smooth. I have a new widescreen running at 100% scaling as external monitor and libreoffice is just not usable if internal display is active with 125% scaling. I ended up disabling the internal display when the external monitor is connected.
I’m using Fedora 39.

@S.H sound slike libreoffice is possibly running as a flatpak. I would install flatseal and see if you can expose the needed settings to the flatpak…or since the rpm is now available via rpmfusion if I remember correctly yoou could try installing the rpm. Either way I am using the internal at 125% on Wayland and have used an external at 100% and another at 150% and experienced no issues.

@nadb Libreoffice is installed from Fedora-Repo, no flatpak version.

I have the exact issue as described by the original poster on Ubuntu 24.10 with a framework 13 AMD laptop I received just a few days ago. It is really annoying.

Ok after messing around I found a solution. It seems that if you have fractional scaling turned off in the gnome settings for displays then you have the problem described here. But if I turn on fractional scaling and set it to 200% (same as when I did not have fractional scaling turned on) then things work as expected.

So this works as expected (albeit with some really minor artefacts that show up very rarely and disappear quickly)

But when you have this you will get the problem the original poster explained:

1 Like

It works great!!! Thanks a lot!! Very appreciated.

1 Like

I’m having a very similar issue with Ubuntu 24.04 on a new Framework 13 laptop (AMD Ryzen 5 7640U) with the 2.8k display and when connecting to a standard 1920x1080 external monitor. With Wayland enabled, and the built-in monitor set to 200% scaling and the external to 100%, some applications (Firefox, Ubuntu settings, terminal, etc) rescale properly as their windows are moved from the internal display to the external display and vice versa. Most other applications (VSCode, FreeCAD, VLC, etc) don’t rescale properly, so they either look huge on the external display or tiny on the internal display. I know that this is an application-specific problem, but I spent 2 hours trying to get VSCode to run using Wayland with no success, so trying to individually fix the display of nearly every application seems like a losing proposition.

Disabling Wayland (WaylandEnable=false in /etc/gdm3/custom.conf + restart) means that the windows retain a consistent scaling when moved between displays, but only one scaling is allowed. I can “fix” this by enabling fractional scaling, and setting the external display to 100% and the internal to 175% (200% causes mouse flickering issues), and this mostly works, except the display is now noticeably sluggish. Sometimes it’s not a major issue, but after a couple of days the display becomes unuseably sluggish (like bad stop-motion animation), and I have to reboot the laptop. Fractional scaling with Wayland enabled leads to fuzzy-looking applications when they are moved from the external to internal display.

I also tried changing the internal display’s resolution, but for some bizarre reason the existing resolutions only have one option (full resolution) at the 3:2 aspect ratio. Sure, I can set it to the 16:9 aspect ratio, but that just cuts off a bunch of the screen. I tried to create a new display resolution using xrandr at 3:2 using

cvt 1920 1280 120
# This produces the modeline:
# Modeline "1920x1280_120.00"  440.25  1920 2088 2296 2672  1280 1283 1293 1374 -hsync +vsync
sudo xrandr --newmode Modeline "1920x1280_120.00"  440.25  1920 2088 2296 2672  1280 1283 1293 1374 -hsync +vsync
sudo xrandr --addmode eDP "1920x1280_120.00"

and then selecting that display resolution. The problem here is that the screen just goes blank and reverts to the old resolution after 15 s. I’ve also tried using

cvt -r 1920 1280 120

but I get the same issue. I should also note that if I neglect the “sudo” in the xrandr commands, gnome crashes when I open the display settings and simply says that “something went wrong”. Also, I have tried this with a resolution of 1440x960, reasoning that a factor of 2 reduction in resolution is more likely to work, but I get the same problems.

I’d really like to have a better solution to this issue than “buy a 4K display” or “just live with the problems”. Either I should be able to set the internal display’s resolution to something lower where I can have a 100% scaling for both internal and external displays, or there should be some consistent way of getting apps to run using Wayland.

I’m finding this incredibly frustrating, to the point where I am considering returning the laptop. I know it’s mostly a Linux issue, but I think it was a poor decision on Framework’s part to pair a high DPI internal display with Linux when the separate scalings for different displays is under-supported.

I know this is not the ideal solution, but I was facing the same problem with my Framework 13 under Ubuntu 24.04. I did try @Tasko_Olevski answer with fractional scaling which worked great, but resulted in blurry applications that I use a lot, so not ideal. I did see however that Ubuntu 24.10 seems to be solving the issue of blur in XWayland apps : https://www.reddit.com/r/Ubuntu/comments/1flxx10/fractional_scaling_works_with_xwayland_in_ubuntu/

I have now upgraded to 24.10, and it seems to now work like a charm. No more blurry applications, and for now I haven’t encountered any scaling issue when switching monitors. A shame that it is not in the LTS version, but that’s good enough for me now.