I'm using Ubuntu 12.04.3 with NVidia drivers (319) for my Quadro K2100M graphic card, and when I switch my main 3200x1800 laptop screen to mode 1920x1080 (using nvidia-settings
), the display goes blurry...
I am using two screens:
- My main screen is a LCD with max resolution 1920x1200.
- My laptop screen (original resolution 3200x1800) is sitting to the right of that.
The main problem is that, on Ubuntu, the font is far too small on my laptop screen. Because of that, I wanted to change the resolution of my laptop to 1920x1080.
Reading Galgalesh's answer, I tried to compute my DPI and here is the DPI configuration which I should have:
- 94x94 for my main LCD screen 1920x1200
- 235x236 for my 3200x1800 laptop screen
Is there a way to have dual DPI resolutions with an extended desktop?
It seems people are still struggling trying to work with several monitors and HiDPI displays. A good workaround is described in arch wiki https://wiki.archlinux.org/index.php/HiDPI#Multiple_displays. So, I have:
Now I use Ubuntu 14.10 & GNOME Shell 3.12.2 that has pretty usable HiDPI support. So I just use out-of-the-box support of HiDPI - scaling factor is 2 (it can be set up via GUI). That means that on external monitor I get everything twice bigger than acceptable. Thus, I use xrandr; but instead of downscaling laptop screen, I upscale external monitor screen:
So, one by one:
--output HDMI1
in my case is the external screen,eDP1
is the laptop screen.--scale 2x2
- make everything on external screen twice smaller--mode XxY
- explicitly set the resolution for screen (not necessary if is already set)--fb XxY
- set size of a virtual screen (framebuffer) (important without this, you will be able to use only a fourth part of the screen). In my case one screen was on top of another, so I added up effective heights 2400+1800=4200. Also note, that maximum framebuffer size might be specified in xorg.conf - then you cannot exceed it (it is written in the first line ofxrandr -q
output).--pos XxY
- in my case I set absolute positioning of the screens, so my laptop screen is directly on the bottom of the external screen. The value Y here is double the external monitor height.And this is it! Everything is as crisp as it could be.
FYI: to get the names of the screens and available resolutions, one can run
xrandr --current
. More information on setting the resolution an be found here: https://wiki.ubuntu.com/X/Config/Resolution .UPDATE - OPTION 2: one more interesting workaround for applications that support GTK3. If I normally use only one application on the large screen (e.g. some IDE, like leksah), I do not resize the the screen, but run the application scaled to its original size
On Ubuntu 20.04, for me clicking
Fractional Scaling
option in the bottom of display settings resolved everything. This will allow to scale each monitor separately.Why is it blurry?
Your screen always displays 3200x1800 pixels. If you lower the screen resolution on your computer that just means that your screen has to scale the image to fit your screen. Depending on the ratio between your native resolution and the current resolution, that scaling will produce a blurry image.
You can find more information on scaling and native resolution here: https://en.wikipedia.org/wiki/Native_resolution
How can I make the text bigger?
If the text is too small you have two options:
1. Change Ubuntu's font size
How do I change fonts and adjust their size?
2. Change DPI (will make the whole interface bigger, not only text)
How to find and change the screen DPI? (answer by @whtyger)
I used artmem's solution but ran into the mouse problem mentioned by EoghanM. The workaround I found in the old bug report he linked to related to --panning.
I'm shooting for: - DP1-2 3840x2160 in native DIP. - eDP1 1366x768, scaled to look reasonable to the right of DP1-2.
I get this to happen by having a frame buffer that is like DP1-2 + (2x eDP1) then I scale everything going to eDP1 by 1/2.
This should be simple but xrandr is a bit tricky.
Here --scale is used to reduce everything going to eDP1 by 1/2. --panning is the same as eDP1 in the original frame buffer with the position (+3840+0) of just to the right of DP1-2. +0+2160 would be below it.
I also set Xft.dpi to 185
When I unplug from the external monitor I run :
That doesn't look great but I'm not away from my desk much. You could get around this by changing Xft.dpi and restarting all your desktop programs. I don't know of a way to change Xft.dpi and then get clients to use it without restarting them.
These answers are all great, and helped me previously, but a recent
deleted my randr-config! In attempting to restore my settings I found I could no longer get the mouse beyond the top 1/4th quadrant of the second screen, no matter the --fb input. From https://wiki.archlinux.org/index.php/HiDPI#Side_display I eventually discovered that adding panning did the trick. Also, use of '--right-of' or '--left-of' is simpler than '--pos'.
"Generically if your HiDPI monitor (laptop) is AxB pixels and your regular monitor (external) is CxD and you are scaling by [ExF], the commandline for right-of is:"
I was able to solve this (with issues) using the details outlined in the following github discussion: https://github.com/linuxmint/Cinnamon/issues/3606
External Monitor QHD (2560X1440), Internal/Laptop Monitor 3200x1800
OR
External Monitor FHD (1920x1080), Internal/Laptop Monitor 3200x1800
These work, but there is a significant amount to tearing in the high resolution monitor (laptop) when I move windows, resize screens or scroll on a browser. This feels like a software rending solution (which has all these issues of tearing, and slow refreshes).
Its 2017, Linux/Gnome needs to address the multi-monitor, mixed scaling solution. Both Windows 10 and OS X have this resolved without having to resort to command line band-aid fixes that partially work (the tearing issue isn't acceptable for gaming)
I had a similar problem and solved it this way.
I have an external big screen 24" 3840x2160 and a laptop same definition 3840x2160 but small screen 15.4"
I wanted the laptop screen to be zoomed because default scaling is too small ..
Scaling down with xrandr as we usualy see results in blurry screen, the solution is to scale everything up with xrandr then use gnome scaling factor :
Here is how to do it (external screen on top of laptop screen but you can arrange in a different way if you change pos parameters)
Explanations :
Then
OR
I spend hours to solve this issue. I have a 4k laptop and 1080p external monitor. If I set scaling to "200%" external monitors displays enlarged icons text etc.
I tried xrandr commands with "--scale" but they didnt give me the expected results. So I have a xrandr command that works perfectly for me. I wish somebody else find it helpful.
This commands works as external monitor scaled to "100%" and built-in screen scaled to "200%". This commands places external monitor above the built-in. Keep in mind you probably will change --output names with yours.
Note that
2160
in--pos 0x2160
has nothing to do with the height of eDP-1-1 (it just happens by chance to be the same value in my case). That number is in fact the height of the upper monitor (1080
in my case) corrected by the transformation (so1080*2
in my case).This is because
--pos
refers to the position of the upper left corner in the virtual screen space, so the bottom screen has to be positioned relative to the height of the upper screen.Finally, you can ignore --rate flags. The most important flag here is
--transform
. And positions depends on screen resolutions and placements. Using this commands I have a Arandr preview like this;1080p monitor is virtually adjusted to take up twice as much space. Thanks to monitors are perfectly aligned, when I move the mouse from one screen to another, it appears on same horizontal coordinate
I have an outdated 1024x768 monitor, connected to a (less outdated) notebook.
The windows rendered in quite different sizes, much bigger in the external monitor (which has an older, bigger dot pitch).
I found a command to scale the monitor:
VGA-1 is the internal name of the monitor, found by running the following command:
The effect is that now the old monitor displays its contents at almost the same size as the notebook.
Curiously enough, it works scaling x1.5 but not 1.45, the display (in my case) turns black.
When I ran the scale comment the first time the result was frightening because the contents of both screens overlapped. For example the cursor pointer appeared twice.
I ran a program:
to set the relative screen positions to fix it.
It works like the Settings > Devices > Displays setting.
I installed it with:
Thanks @LuisAlvarado and others for sharing your knowledge!
Fist run
$xrandr
to display all outputsAs you can see in this case the second monitor is connected to
DP-3
Then you can resale the display:$xrandr --output DP-3 --auto --scale 2x2