Set custom resolution (xrandr)

Edit 13.11.2023: More simple instructions:

At first install package xcvt or cvt

Then run

xrandr

… for seeing current modes

To set custon settings: An example 1440×900

cvt 1440 900

Output comes like

# 1440×900 59.89 Hz (CVT 1.30MA) hsync: 55.93 kHz; pclk: 106.50 MHz
Modeline ”1440x900_60.00” 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync

To add custom mode

xrandr --newmode "1440x900_60.00" 106.50 1440 1528 1672 1904 900 903 909 934

xrandr --addmode LVDS1 "1440x900_60.00"

xrandr -s 1440x900

xrandr --output LVDS1 --primary --mode 1440x900_60.00 --pos 0x0 --rotate normal

…. Make a script and add it to the startup

###############################################

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 found the right settings, make a script and add it to startup applications.