Ubuntu 14.04 Unity desktop supports UI scaling for HD displays from a settings GUI. It is possible to scale the desktop using xrandr from the cmdline so that it is independent of the desktop environment you are using. This is particularly helpful for devices with smaller screens and is software controlled. This article will explain how to do it.
- Before you start, check the name of your display and current resolution. The commonest name for single monitor systems is LVDS1 but this may not be the case always. Run:
$ xrandr Screen 0: minimum 1 x 1, current 1600 x 900, maximum 8192 x 8192 Virtual1 connected primary 1600x900+0+0 (normal left inverted right x axis y axis) 0mm x 0mm 1600x900 60.0*+ ... ... Virtual2 disconnected (normal left inverted right x axis y axis) Virtual3 disconnected (normal left inverted right x axis y axis) ...
As you see above, in my case it’s a VM and the display name is Virtual1. The resolution is 1600×900.
- To change the resolution to 1920×1080, run the following command:
$ xrandr --output Virtual1 --mode 1600x900 --panning 1920x1080 --scale 1.2x1.2 where, output: display name mode: current display resolution shown in xrandr output in Step 1 panning: the new resolution you want scale: scale factor for x and y
The scale factor is given by new x/y resolution divided by old x/y resolution. In the above example:
1920/1600 = 1.2 1080/900 = 1.2
It’s advisable to scale by the same scale factor for x and y. The simplest choice is a higher resolution with the same aspect ratio. In the above example:
1920:1080 = 1600:900 = 16:9
If you do not choose the same aspect ratio, parts of the rendered screen will not fit your physical monitor and you’ll have to scroll to reach the end of the rendered screen. Your fonts might also look stretched and awkward.
The change is temporary and will go off after a reboot unless you add the command to a start-up script.