12

I have a Dell p2715q 27" 4K monitor and a HP 23xi pavilion 23" 1080p monitor for my dual monitor setup. The Dell monitor is currently running at a resolution of 3840x2160 @ 60Hz, while the HP is running at 1920x1080 @ 60Hz. When I initially setup the monitors on my desktop computer, which is running Linux Mint 17.3 Cinnamon (version 2.8.6) 64-bit, the scaling on the Dell was still set at 1, so everything was really tiny in comparison to the HP, which was scaling everything appropriately since it is not a HiDPI monitor like the Dell. When I changed the scaling to 2, everything on the Dell looked great, but the HP now makes everything twice as large.

Is there a way to scale the HiDPI Dell monitor at 2x, while keeping the HP monitor at 1x to make everything on both screens scale properly?

7

Using Linux Mint 18.1 Cinnamon in trial mode (live boot) I was able to configure my Dell XPS 13 9360 laptop and external monitor by following these instructions. For me, scale worked better than scale-from.

Internal HiDPi monitor: 3200x1800

External VGA monitor to the right of laptop: 1920x1080

First set "user interface scaling" to double in Preferences > General

Then run the following code in a Terminal window:

xrandr --output DP1 --scale 1.5x1.5 --panning 2880x1620+3200+0 --fb 6080x1800 --right-of eDP1

DP1 is my external monitor, eDP1 is the laptop monitor. Find the names of your screens by running:

xrandr

The first two panning values are the VGA monitor size 1920x1080 multiplied by my scale 1.5 i.e. 2880x1620

The second two panning values are the external monitor's offset from the laptop monitor, that is the width of the laptop monitor (horizontal) and 0 (vertical) because they are side by side, i.e. +3200+0

Framebuffer is total horizontal width of screens x total height of screens i.e. (3200 + 2880) x 1800

Edit: if I try a scale of 1.7, my keyboard and mouse stop working and I have to hard-reset the machine. I'd love to know what is the reason for this?

1

According to this link it's not currently possible due to limitations in X server:

There is only one scale factor for the desktop – I’ve not tested this in a multi-monitor configuration, but I can say that if they’re not both the same DPI (or close) monitors, then one will look good, and the other bad. As far as I know right now this is a limitation in x-server.

  • That's kind of what I thought too. I wasn't sure though because I was reading some stuff where people used xrandr to change the scaling on a single monitor. I messed around with this, but kept getting undesirable results. – Isaac Mast Jan 7 '16 at 20:37
  • I think the issue is you can change the scaling on the monitors independently with xrandr, but stuff ends up getting rasterized really badly. – ocket8888 Apr 8 '17 at 16:59
0

Depending on your video card and used driver, this may work out of the box by just using the scaling settings under display options. I have an Nvidia MX150 / intel 620 combi in my laptop and had these issues with the proprietary driver (nvidia 440).

I run Ubuntu 20.04 LTS and with the Nouveau driver (select under additional drivers), this works for my internal HD display set to 100% and my external 4K screen set to 150%.

If you have issues, it might also be because of a bug. Please check my answer here for more details and a bug link, that might help you if the above does not:

https://askubuntu.com/questions/1122132/hidpi-laptop-screen-with-hd-external-monitor-dpi-issues/1267104#1267104

Please post your findings too at the appropriate place, it can help others. thanks

0

There are a number of solutions in various forums and Stack Exchange using scaling (e.g. --scale 2x2 or --scale-from 1920x1440).

While these did work for me, there was a slight blurriness on the up-scaled monitor. It was not very obvious and could be missed easily, but I am very sensitive to such things and it gave me headaches.

A better solution which does not create any blurriness is to use --transform instead of --scale.

The position of the 2 monitors needs to be set properly: the likes of --left-of, --below, etc. don't work as they don't take into account the transformation.

Here is what I am using, with explanations of each value so that you can adapt it to your situation:

xrandr --output DP-1 --mode 2560x1440 --pos 0x0 --transform 2,0,0,0,2,0,0,0,1 --output eDP-1 --mode 3840x2400 --pos 0x2880 --primary

You can find the name and the proper default resolution for your monitors by running xrandr without arguments.

  • My external monitor (DP-1) has a resolution of 2560x1440
  • I need to transform the resolution by a factor of 2
  • My laptop (eDP-1) has a resolution of 3840x2400

I want to have my external monitor above the laptop. --pos is the position of the top left corner of one monitor in the monitor space (the total area occupied by both monitors).

So --pos 0x0 puts the external monitor at the top. To have the laptop below it, I need to get the proper value for the y coordinate (x will of course be 0 in this case).

It is the height of the external monitor (1440) corrected by the transformation (a factor of 2 here):
1440*2 = 2880.

I am thus using --pos 0x2880.


For reference, this is what I am using:
OS: Arch Linux
WM: i3
Laptop: 4k
External monitor: 1080p

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.