I have a monitor that give incorrect resolutions list when plugged on VGA. That's why I can't use standard Ubuntu utility to set up proper resolution. I found a way to fix it. It works with Intel video cards, and NVidia video cards with free driver. I can't find a solution for NVidia proprietary driver. Note that it will not work if your monitor truly doesn't support specified resolution.
1. Open console. Get list of video outputs and supported resolutions for each output using command:
2. Create Modeline for needed mode:
cvt 1600 900 60
First two numbers is resolution (1600x900), the third is frequency (not required, 60 by default). Output will look like this:
Modeline "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync
3. Create mode:
xrandr --newmode "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync
--newmode paste csvt command output excluding 'Modeline').
4. Add new mode to proper output:
xrandr --addmode VGA1 1600x900_60.00
xrandr and check that the mode was added. Now you can use standard utility to enable new resolution, or do it from console:
xrandr --output VGA1 --mode 1600x900_60.00