How to remove overscan on HDMI 1080p output using xrandr
I recently got a Asus 24T1E TV monitor with integrated DVB tuner and lots of connectors on the back, two of which are HDMI inputs. When I first connected my Laptop to it via HDMI and turned it to 1920×1080 (native resolution of the monitor) I encountered that the picture was kind of blury and the borders of the desktop were outside of the screen, i.e. 52 pixels on the left and right and 26 pixels on the top and bottom border. The info pannel on the monitor’s OSD reported “1080p” as resolution.
After doing some research on the overscan issue I found that the firmware of the 24T1E automatically switches to overscan mode when fed with a Full HD resolution on the HDMI input, which kind of makes sense for BluRay Players and other TV signal devices, but not for a PC connection. I also found out by testing that the monitor does not overscan when the signal comes via the VGA input or you use a lower resolution like 1600×900 on HDMI, so what’s the deal?
I started messing around with xrandr and the −−transform, −−fb and −−fbmm options, but the only thing I could achieve with these was a displacement of the desktop so I could actually see the upper left corner. Scaling the picture with the −−transform option seems to use "virtual" pixels as it preserves resolution.
After fiddling with xrandr for a while I stumbled upon the −−prop option. This option lists all parameters a connected monitor can handle via the −−set <property> <value> option. This is where I found the “force-dvi” value under the “audio” property. So I entered
$ xrandr --output LVDS1 --off --output HDMI1 --set audio force-dvi
and voila… The laptop screen turned off and I saw the entire desktop in Full HD resolution. The info panel on the monitor’s OSD reported “1920×1080@60Hz” and the picture was razor-sharp.
You might want to call xrandr without any options first to find out the identifiers for your laptop display and monitor connectors and replace LVDS1 and HDMI1 with your identifiers. If this method worked for you, too, feel free to leave a comment with some information about your system and your monitor.
Machine: Lenovo Thinkpad Edge S430
OS: Fedora 17 64bit
Monitor: Asus 24T1E
$ uname -r
$ lspci | grep -i vga
00:02.0 VGA compatible controller: Intel Corporation Device 0166 (rev 09)
01:00.0 VGA compatible controller: nVidia Corporation Device 0de8 (rev ff)
$ xrandr --version
xrandr program version 1.3.5
Server reports RandR version 1.3
Update: I’ve tried this method with my parents’ TV, a Samsung LE32C630. When I first connected my Laptop to the TV I encountered the same overscan problem as with my Asus 24T1E, even though the OSD info panel of the Samsung TV reported “1920×1080@60Hz”. I’ve tried the xrandr method, but with no success. Fortunately Samsung implemented more format/scaling settings than Asus, so I was able to remove the overscan with the settings of the TV itself. In other words: the success of this method depends on the TV monitor you are using. If your TV monitor does not feature the appropriate format/scaling setting, you can try the described method above.