I have been looking for the solution since I use Ubuntu 10 as an alternative OS with Windows. The only problem is that it doesn’t display correct resolution 1680×1050 for my 22″ HP Monitor (HPw2228h). I came across over this Xrandr Configuration from Ubuntu official documentation and this tread from Ubuntu Forum. Combine these two solutions, I finally manage to get correct resolution in Ubuntu.
gtf and cvt
Before you add new mode using xrandr, you need to type following one of command lines in Ubuntu terminal. I prefer using gtf.
gtf 1680 1050 60
cvt 1680 1050 60
1680 is X and 1050 is Y and 60 is refresh rate. For refresh rate, please check your monitor manual.
The command will produce the following output. Copy the text after word, Modeline.
Modeline "1680x1050_60.00" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync
Before you type the following command lines, please be sure to check the video mode your external monitor is using. To check your video mode, you can type the following command line
It will list the displays you are using now. The result is something like this
Screen 0: minimum 320 x 200, current 1680 x 1050, maximum 8192 x 8192 VGA1 connected 1680x1050+0+0 (normal left inverted right x axis y axis) 0mm x 0mm 1360x768 59.8 1024x768 60.0 800x600 60.3 56.2 848x480 60.0 640x480 59.9 59.9 1680x1050_60.00 59.9* LVDS1 connected (normal left inverted right x axis y axis) 1280x800 59.9 + 1024x768 60.0 800x600 60.3 640x480 59.9 TV1 disconnected (normal left inverted right x axis y axis)
You will see VGA1, LVDS1 and TV1 … these are the mode your system is using. For my case, VGA1 is the video mode for my monitor. It may be different from video driver. Now it is time for add new resolution mode using xrandr. Type the following command lines
xrandr --newmode "1680x1050_60.00" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync xrandr --addmode VGA1 "1680x1050_60.00" xrandr --output VGA1 --mode "1680x1050_60.00"
Tip: There are two minus “-” in newmode, addmode, output and mode . WordPress doesn’t display it correctly.
First line add a new mode. Following parameters will be different from the result produced by gtf and cvt. Second line add the Video Mode and Resolution along with refresh rate. After you type third command line, you will see the your resolution is already changed.
Well the command lines you are trying is not a permanent resolution in ubuntu. It only change the time you type those command lines. To make it permanent, ubuntu documentation suggests that you can change in ~/.xprofile, kdm/gdm and xorg.conf.
1. create a file, if it doesn’t exist yet.
and Copy and paste the three command lines from above and put in xprofile file. and save it and make it executable. well, xprofile is only for the current user and other user can’t user the custom resolution.
I am using gdm in ubuntu. So I will cover the gdm only. Go to /etc/gdm/Init and login as super user root. Before you’re making changes to Default file, make sure you have a backup. Type the following.
cd /etc/gdm/Init cp Default Default.backup
Then edit the Default file, type nano Default. (I personally prefer using nano editor)
Find the following line.
initctl -q emit login-session-start DISPLAY_MANAGER=gdm
and put three command lines in my tutorial right before it.
xrandr --newmode "1680x1050_60.00" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync xrandr --addmode VGA1 "1680x1050_60.00" xrandr --output VGA1 --mode "1680x1050_60.00" initctl -q emit login-session-start DISPLAY_MANAGER=gdm
For xorg.conf and complex configuration. You can read Xorg configuration in Ubuntu. I hope this tutorial will help. If you have any problems, please drop comment.