How to set the monitor to its native resolution which is not listed in the resolutions list?

Native resolution for Samsung SyncMaster B2030 is 1600 * 600 60 Hz

  1. Generate the modeline using cvt:

    cvt 1600 900 60
    

    which will be:

    # 1600x900 59.95 Hz (CVT 1.44M9) hsync: 55.99 kHz; pclk: 118.25 MHz
    Modeline "1600x900_60.00"  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync
    
  2. Get the name of the output to which your display is connected:

    xrandr
    

    This outputs among other things:

    Screen 0: minimum 320 x 200, current 1600 x 900, maximum 8192 x 8192
    VGA1 connected 1600x900+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
    

    In this example the name of the output is VGA1.

  3. Create the new modeline (with the values from the output of cvt):

    xrandr --newmode "1600x900_60.00"  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync
    

    Note:

    • the above should be in a single line
    • make note of x in 1600 x 900_60.00
  4. Add the above created modeline:

    xrandr --addmode VGA1 1600x900_60.00
    
  5. If everything went well xrandr will list your newly added resolution.

  6. Test the newly added resolution:

    xrandr --output VGA1 --mode 1600x900_60.00
    

The resolution you set with the above commands will not persist across sessions. Until Ubuntu 11.04 you can add the following lines at the beginning of your /etc/gdm/Init/Default to set the resolution automatically every time you log in:

xrandr --newmode "1600x900_60.00"  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync
xrandr --addmode VGA1 1600x900_60.00
xrandr --output VGA1 --mode 1600x900_60.00

This question describes other ways to make xrandr customizations permanent.


First type in xrandr in your terminal and see which is the connected device. It maybe VGA1 as it is in this case. If not then replace VGA1 by your connected device in the commands below. Then create a new document and name it eg:- "yourname.sh" Type in:

xrandr --newmode "1600x900_60.00"  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync
xrandr --addmode VGA1 1600x900_60.00
xrandr --output VGA1 --mode 1600x900_60.00
unity --replace

and save it in your home folder (this is for resolution 1600x900). Make it executable by:

chmod a+x ~/yourname.sh

open startup applications and click "ADD". Give a name and type in the command line

bash /home/yourname/yourname.sh

click save. The change appears after you log out and log in


If you don't want to go through the bother of running all the commands as instructed in other answers, you can use ResolutionX. This is a tool that does it all for you:

  • executes the cvt command
  • executes the newmode, addmode and output commands
  • creates a startup file that executes the above upon login.