Make displays with different resolutions have the same size

I have in my possession an old screen connected to HDMI-1 that supports up to 720p:1366x768 resolution. The main laptop screen has 1080p:1920x1080 resolution so the OS assumes it’s bigger in size although is actually smaller. Therefore, everything in the external 720p monitor looks disproportionally large compared to the laptops screen.

$ xrandr
Screen 0: minimum 16 x 16, current 3286 x 1080, maximum 32767 x 32767
eDP-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 340mm x 190mm
   1920x1080    143.88*+
   ...
HDMI-1 connected 1366x768+1920+0 (normal left inverted right x axis y axis) 410mm x 230mm
   1366x768      59.62*+
   ...

When I try to set the external monitor to 1080p it turns off because it’s not compatible. Therefore, the next best solution I though was to use xrandr scaling option, but I believe something related to Wayland makes it impossible:

$ xrandr --output HDMI-1 --mode 1366x768 --scale 1.4056x1.4056 --panning 1920x1080
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  26 (RRSetCrtcTransform)
  Value in failed request:  0x44b
  Serial number of failed request:  29
  Current serial number in output stream:  30

I’m currently out of ideas so I came here to ask what’s the best course of action. If this may be needed, here’s some info related to my System:

System:
  Host: lupin Kernel: 6.12.8-200.fc41.x86_64 arch: x86_64 bits: 64
  Desktop: GNOME v: 47.2 Distro: Fedora Linux 41 (Workstation Edition)
Machine:
  Type: Laptop System: LENOVO product: 83DX v: LOQ 15AHP9
    serial: <superuser required>
  Mobo: LENOVO model: LNVNB161216 v: SDK0T76464 WIN
    serial: <superuser required> UEFI: LENOVO v: NZCN25WW date: 10/04/2024
Battery:
  ID-1: BAT1 charge: 61.2 Wh (98.6%) condition: 62.1/60.0 Wh (103.5%)
CPU:
  Info: 8-core model: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics bits: 64
    type: MT MCP cache: L2: 8 MiB
  Speed (MHz): avg: 400 min/max: 400/5100 cores: 1: 400 2: 400 3: 400 4: 400
    5: 400 6: 400 7: 400 8: 400 9: 400 10: 400 11: 400 12: 400 13: 400 14: 400
    15: 400 16: 400
Graphics:
  Device-1: NVIDIA AD107M [GeForce RTX 4060 Max-Q / Mobile] driver: nvidia
    v: 565.77
  Device-2: Advanced Micro Devices [AMD/ATI] Phoenix3 driver: amdgpu
    v: kernel
  Device-3: Chicony Integrated Camera driver: uvcvideo type: USB
  Display: wayland server: X.Org v: 24.1.4 with: Xwayland v: 24.1.4
    compositor: gnome-shell driver: dri: radeonsi
    gpu: amdgpu,nvidia,nvidia-nvswitch resolution: 1: 1366x768~60Hz
    2: 1920x1080~144Hz
  API: OpenGL v: 4.6 vendor: amd mesa v: 24.3.2 renderer: AMD Radeon

Making 1080 pixels fit in 720 pixels is quite a trick. Maybe you can push the monitor further away so it doesn’t look so large. :slightly_smiling_face:

I don’t get why this is tricky. I could do this in previous versions of Fedora. It’s obviously something related to Wayland and Red Hat keeps pushing it when it sometimes feels so buggy and unfinished.

Maybe with analog displays? I don’t remember ever being able to set a monitor to accept a higher resolution than it is natively capable of showing (you could always set a lower resolution though).

I don’t want to change the native resolution of the monitor. I just want to rescale the screen so everything looks the same size. Which is the equivalent of xrandr for Wayland?

I think it is fractional scaling, but it doesn’t scale that way. You can only make things larger, not smaller.

Edit: You could scale your laptop’s display so it is larger if you just want things to “match”.

Hi Figaro,

Seems you have 3 choices to get this to look the way you want:

  1. scale the 1366x768 (HDMI Connected) to 0.71%
  2. set the display resolution on the laptop to 1366x768
  3. throw that old monitor away and get one that is the same resolution as the laptop (1920x1080p)
1 Like

But how do I do the option 1? It seems that xrandr is not working properly and I cannot change to Xorg because it was removed. :sob:

It looks like you are in Gnome Desktop? Either in Gnome or install Gnome Tweaks there is a ‘settings’ for display scaling.

This kinda solve the problem. However, since the Tweaks option only changes the font size, now everything looks disproportionally big. How do I rescale the UI?

Have you done Font Scaling, and not Fractional Scaling? per GNOME 45 to Redesign Display Options and Fractional Scaling Tweaks can you select Legacy HiDPI Compatibility to enable Fractional Scaling?

Also some advice here Fractional scaling on gnome - #6 by UncleSpellbinder - Gnome - EndeavourOS

Thank you so much. I’ve already tried these options, but as some person said in the thread you posted, I want to scale the external monitor to 75% in order for everything to have a reasonable size and not have huge top bars and icons.

It seems that it hasn’t been implemented to GNOME yet sadly. Scaling upwards makes everything look too big. I hope they implement some way to scale downwards in the future, or give back some stable way to change back to Xorg.

gnome-session-xsession.x86_64 package it will install xorg with all dependencies you need for it just do sudo dnf install gnome-session-xsession.x86_64 in terminal after once you install go to GDM select your user and will appear :gear: right bottom corner there you can chose xorg,With xorg session maybe you can set your monitor with xrandr

I will try it tomorrow. Thank you!