Set custom resolution (xrandr)

If you have a problematic display who gives resolutions like

1920x1080 60.00 +
1280x1024 75.02 60.02

You can add custom resolution like the next way:

Run:

xrandr

The output is like

Screen 0: minimum 320 x 200, current 1368 x 768, maximum 8192 x 8192
VGA-1 connected primary 1368x768+0+0 (normal left inverted right x axis y axis) 476mm x 268mm
1920x1080 60.00 +
1280x1024 75.02 60.02
1280x960 60.00
1280x800 59.81
1152x864 75.00
1280x720 60.00
1024x768 75.03 70.07 60.00
832x624 74.55
800x600 72.19 75.00 60.32 56.25
640x480 75.00 72.81 66.67 59.94
720x400 70.08

If wanting a resolution 1368x768, run

cvt 1368 768

A result is like

# 1368x768 59.88 Hz (CVT) hsync: 47.79 kHz; pclk: 85.25 MHz
Modeline "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync


Add a new resolution using commands

xrandr --newmode "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
xrandr --addmode VGA-1 1368x768_60.00
xrandr -s 1368x768

Make a script and add that script to the startup applications

nano RESO

… the contents

#! /bin/sh
xrandr --newmode "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
xrandr --addmode VGA-1 1368x768_60.00
xrandr -s 1368x768

… save and quit
Ctrl o
Ctrl x

Make the script executable

chmod +x RESO

Add the script to the startup applications

If you cannot set resolution using xrandr, you can probably use scale option. At first check current display.

xrandr && xrandr | fgrep '*'

If LVDS is connected, you can test for example
Safe test

xrandr --output LVDS --scale 0.8x0.8 && sleep 10 && xrandr --output LVDS --scale 1x1

If safe test goes ok, you can try

xrandr --output LVDS --scale 1.11x1.11 && sleep 10 && xrandr --output LVDS --scale 1x1

…. and so on until you find the proper settings. When you have foud the right settings, make a script and add it to startup applications.