I finally managed to get the resolution i wanted on my 1280x1024 TFT LCD screen. I couldn't find a complete answer anywhere on the forums, wiki etc.

I pressupose that you've installed the binary Nvidia driver for your card through the Additional drivers program.

The solution offered in several places, to use xrandr doesn't work. The Nvidia driver doesn't support Xrandr, you will not be able to change your resolution this way and what's worse, will be stuck with 800x600 or even lower.

The following is my Xorg.conf file (not complete, but make sure that at least the following is also in your corg.conf file).

Open this file by pressing ALT-F2 and typing gsudo gedit /etc/X11/xorg.conf. (or kdesudo kate /etc/X11/xorg.conf for ubuntu. Enter your root password and the editor should come up with the file loaded.

Use the instructions below to generate the ModeLine.

Section "Monitor"
    Identifier     "Configured Monitor"

    # NOTE: this modeline is generated using the cvt program (see below)
    ModeLine       "1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync
    
    # NOTE: A value for HorizSync can be 'guestimated' by using information from the xrandr program. 
    # If this value is too low or too high it can result in 'no screens found' error message and X won't start or your monitor won't be able to display the video.
    HorizSync   63.98  

    # NOTE: For TFT/LCD screens, refresh rates should be 60. For CRT screens, 72 to 100 is better.
    VertRefresh 60

    # NOTE: Measure your monitor's physical screen size by putting a metric ruler to the screen.
    # this is the screen size in millimeters (tweaked a little for better results)
    # You might not need this step, but it can result in the font and icon size being 
    # all wrong.  
    DisplaySize 337.9 270.3
EndSection

Section "Device"
    Identifier     "Configured Video Device"
    Driver         "nvidia"
EndSection

Section "Screen"
    Identifier     "Default Screen"
    Device         "Configured Video Device"
    Monitor        "Configured Monitor"
    DefaultDepth    24
    Option         "NoLogo" "True"
    SubSection     "Display"
        Depth       24

        # NOTE: This is what made it work for me, use one entry in modes and use the 
        # identifier - 1280x1024_60.00 from the modeline above.
        # putting something else here didn't work for me and the resolution was not available in X.     
        Modes      "1280x1024_60.00"
    EndSubSection
EndSection

Generating the ModeLine Entry

If you know what resolution your monitor can display and you know the refresh rate (60 for TFT, 72 or higher for CRT) than enter the following command in a Terminal.

cvt ''height'' ''width'' ''refresh rate''

for instance for a TFT monitor capable of 1280 x 1024 resolution at 60 Hz, type

cvt 1280 1024 60

Now Copy and Paste the ModeLine into your Xorg.conf file, and follow the above comments in the xorg.conf snippet above.

Now if you restart X (reboot ubuntu if you can't figure out how), the resolutions should now come up in the System->Administration->Nvidia Xserver Settings utility. Also select a refresh rate from the list, do not use Auto. Your resolution should now be changed permanently.

NvidiaResolutionXorgConf (last edited 2011-02-05 15:29:46 by 82-136-234-1)