Cinnamon and most other DE have currently poor Hi-DPI support for recent Hi-DPI laptops like the Yoga 2 Pro.
By default, resolutions like 3200x1800 are not suited for DEs, resulting tiny unreadable characters and graphics.
The options are:
- Scale the theme and fonts
Change the resolution
Rescale the screen using xrandr
Changing resolution to non-native resolution will result in blurriness due to LCD display scaling.
Another option is to use xrandr, which enable buffering screen content in any resolution, and then rescale it to display's resolution.
According to xrandr documentation http://www.x.org/archive/X11R7.5/doc/ma ... ndr.1.html:
Which leads to --transform option documentation--scale xxy
Changes the dimensions of the output picture. Values superior to 1 will lead to a compressed screen (screen dimension bigger than the dimension of the output mode), and values below 1 leads to a zoom in on the output. This option is actually a shortcut version of the --transform option.
So If we rescale the screen, screen-content will be rescaled using a bilinear filtering. What we do want is having pixel-perfect quadruple pixels so every pixel dimension is twice its native size without any filtering. Unfortunately, xrandr cannot be forced to disable filtering. Let's modify this behaviour by modifying and recompiling xrandr:--transform a,b,c,d,e,f,g,h,i
Specifies a transformation matrix to apply on the output. Automatically a bilinear filter is selected.
Download here: http://cgit.freedesktop.org/xorg/app/xrandr/ (xrandr-1.X.X.tar.gz) the source code and unzip/untar.
XRandR source content is all located in xrandr.c file
Let's go to line 2821 - 2824 (for xrandr-1.4.1):
Code: Select all
if (sx != 1 || sy != 1)
config_output->transform.filter = "bilinear";
else
config_output->transform.filter = "nearest";
Code: Select all
if ((sx != 1 || sy != 1) && (sx != 0.5 || sy != 0.5))
Nearest filtering is applying nearest pixel's color to the current pixel, which is the behaviour that we want.
To compile xrandr, you need:
Code: Select all
sudo apt-get install build-essential autoconf xutils-dev
Code: Select all
./autogen.sh
make
Code: Select all
./xrandr --output eDP1 --mode "3200x1800" --scale "0.5x0.5"
I'll maybe update this tutorial with some images and links. Do not hesitate to provide feedback. Sorry for my bad english.