You are not logged in.

#1 2017-05-05 10:36:32

SgrA
Member
Registered: 2011-06-08
Posts: 41

Configure X server to avoid columns of dead pixels

In the last few weeks, columns of dead pixels have developed on the left side of my laptop display panel. I don't want to invest in replacing the display panel as I plan to replace the laptop itself in a few months. How can I configure the X server to not display anything in that region? Columns of dead pixels: https://i.imgur.com/AZuUdp2.jpg.

Thanks!

Moderator edit:  Converted WAY over sized image to url tags. https://wiki.archlinux.org/index.php/Co … s_and_code

Last edited by ewaller (2017-05-08 15:40:44)

Offline

#2 2017-05-05 14:54:42

Ropid
Member
Registered: 2015-03-09
Posts: 1,069

Re: Configure X server to avoid columns of dead pixels

This here works for me, but this is on nvidia's drivers and I worry might be unique to their stuff perhaps because of that "Border" property:

xrandr --output DP-1 --mode 1920x1200 --fb 1840x1200 --panning 1840x1200 --set Border 80,0,0,0 --transform none

This creates an 80 pixel wide unused area on the left edge of my 1920x1200 monitor that's connected to the output DP-1.

You can see the name of your output and your panel's resolution by typing "xrandr", and you can check if your drivers support that "Border" property by doing "xrandr --prop".

There should also be a different way to do this with xrandr's "--transform" parameter, but I don't understand how that works.

Offline

#3 2017-05-08 06:18:18

SgrA
Member
Registered: 2011-06-08
Posts: 41

Re: Configure X server to avoid columns of dead pixels

I'm on Intel drivers so I don't have the Border option. Thanks for your time, though!

Any other suggestions? I couldn't figure out --transform either.

Offline

#4 2017-05-08 10:26:00

Ropid
Member
Registered: 2015-03-09
Posts: 1,069

Re: Configure X server to avoid columns of dead pixels

Could you show the section for your monitor in the output of this here?

xrandr --verbose

Does it list a property to control how scaling of a different resolution is done? If you can make sure it keeps aspect ratio of a resolution intact when scaling, it will add black bars if you use a resolution with a different aspect ratio than what's native for the monitor. You could then build a modeline for a new mode with a custom resolution that's something like 160 pixels less than the normal resolution horizontally, and if you then switch to this new mode, it will add two 80 pixel wide black bars on the left and right edge of the monitor. This means you'll lose space on the right side of the monitor as well, but the bug on the left will be hidden.

Another thing you could look into is: I'm guessing you are using i3. Is there maybe a feature in i3 where you can reserve space for special programs like a dock or panel on one edge of the screen? If it has a special feature for that, where it makes sure to not put windows over that area, that could help.

Last edited by Ropid (2017-05-08 10:31:27)

Offline

#5 2017-05-08 12:23:40

olegabrielz
Member
From: Norway
Registered: 2015-12-23
Posts: 255

Re: Configure X server to avoid columns of dead pixels

@SgrA: Please edit your initial post and remove full size image. Upload it to a host and link it back to the forums. I personally prefer using postimage.io (produces url with thumnail for forums).

https://wiki.archlinux.org/index.php/Co … s_and_code


Be aware of my Newbie Powers

Offline

#6 2017-05-09 06:40:34

SgrA
Member
Registered: 2011-06-08
Posts: 41

Re: Configure X server to avoid columns of dead pixels

Here's the output of xrandr --verbose:

Screen 0: minimum 8 x 8, current 1366 x 768, maximum 32767 x 32767
eDP1 connected primary 1366x768+0+0 (0x49) normal (normal left inverted right x axis y axis) 340mm x 190mm
	Identifier: 0x43
	Timestamp:  4252
	Subpixel:   unknown
	Gamma:      1.0:1.0:1.0
	Brightness: 1.0
	Clones:    
	CRTC:       0
	CRTCs:      0 1 2
	Transform:  1.000000 0.000000 0.000000
	            0.000000 1.000000 0.000000
	            0.000000 0.000000 1.000000
	           filter: 
	EDID: 
		00ffffffffffff000daeca1500000000
		221801049522137802c3c59155549428
		24505400000001010101010101010101
		010101010101da1d56e250002030442d
		470058c110000018000000fe004e3135
		364247452d4534320a20000000fe0043
		4d4e0a202020202020202020000000fe
		004e3135364247452d4534320a200055
	BACKLIGHT: 58 
		range: (0, 187)
	Backlight: 58 
		range: (0, 187)
	scaling mode: Full aspect 
		supported: None, Full, Center, Full aspect
	Broadcast RGB: Automatic 
		supported: Automatic, Full, Limited 16:235
	audio: auto 
		supported: force-dvi, off, auto, on
  1366x768 (0x49) 76.420MHz -HSync -VSync *current +preferred
        h: width  1366 start 1434 end 1479 total 1592 skew    0 clock  48.00KHz
        v: height  768 start  772 end  779 total  800           clock  60.00Hz
  1280x720 (0xe8) 74.480MHz -HSync +VSync
        h: width  1280 start 1336 end 1472 total 1664 skew    0 clock  44.76KHz
        v: height  720 start  721 end  724 total  746           clock  60.00Hz
  1024x768 (0xe9) 65.000MHz -HSync -VSync
        h: width  1024 start 1048 end 1184 total 1344 skew    0 clock  48.36KHz
        v: height  768 start  771 end  777 total  806           clock  60.00Hz
  1024x576 (0xea) 46.995MHz -HSync +VSync
        h: width  1024 start 1064 end 1168 total 1312 skew    0 clock  35.82KHz
        v: height  576 start  577 end  580 total  597           clock  60.00Hz
  960x540 (0xeb) 40.784MHz -HSync +VSync
        h: width   960 start  992 end 1088 total 1216 skew    0 clock  33.54KHz
        v: height  540 start  541 end  544 total  559           clock  60.00Hz
  800x600 (0xec) 40.000MHz +HSync +VSync
        h: width   800 start  840 end  968 total 1056 skew    0 clock  37.88KHz
        v: height  600 start  601 end  605 total  628           clock  60.32Hz
  800x600 (0xed) 36.000MHz +HSync +VSync
        h: width   800 start  824 end  896 total 1024 skew    0 clock  35.16KHz
        v: height  600 start  601 end  603 total  625           clock  56.25Hz
  864x486 (0xee) 32.901MHz -HSync +VSync
        h: width   864 start  888 end  976 total 1088 skew    0 clock  30.24KHz
        v: height  486 start  487 end  490 total  504           clock  60.00Hz
  640x480 (0xef) 25.175MHz -HSync -VSync
        h: width   640 start  656 end  752 total  800 skew    0 clock  31.47KHz
        v: height  480 start  490 end  492 total  525           clock  59.94Hz
  720x405 (0xf0) 22.176MHz -HSync +VSync
        h: width   720 start  728 end  800 total  880 skew    0 clock  25.20KHz
        v: height  405 start  406 end  409 total  420           clock  60.00Hz
  680x384 (0xf1) 19.677MHz -HSync +VSync
        h: width   680 start  688 end  752 total  824 skew    0 clock  23.88KHz
        v: height  384 start  385 end  388 total  398           clock  60.00Hz
  640x360 (0xf2) 17.187MHz -HSync +VSync
        h: width   640 start  640 end  704 total  768 skew    0 clock  22.38KHz
        v: height  360 start  361 end  364 total  373           clock  60.00Hz

@olegabrielz: Sorry, a moderator has done that already. I'll keep that in mind!

Last edited by SgrA (2017-05-09 06:42:18)

Offline

#7 2017-05-09 20:38:43

Ropid
Member
Registered: 2015-03-09
Posts: 1,069

Re: Configure X server to avoid columns of dead pixels

The xrandr man-page has this example at the end:

Forces to use a 1024x768 mode on an output called VGA:
       xrandr  --newmode  "1024x768"  63.50   1024  1072 1176 1328  768 771 775 798 -hsync +vsync
       xrandr --addmode VGA 1024x768
       xrandr --output VGA --mode 1024x768

You'd basically do what's in this example but with your own custom mode to be able to use as many pixels as possible. You can create a modeline for a custom resolution with the "cvt" tool like this:

$ cvt 1264 768 60
# 1264x768 59.88 Hz (CVT) hsync: 47.79 kHz; pclk: 78.75 MHz
Modeline "1264x768_60.00"   78.75  1264 1328 1456 1648  768 771 781 798 -hsync +vsync

Things are then supposed to work like this:

$ xrandr --newmode "1264x768_60.00"   78.75  1264 1328 1456 1648  768 771 781 798 -hsync +vsync
$ xrandr --addmode eDP1 1264x768_60.00
$ xrandr --output eDP1 --mode 1264x768_60.00

Between those steps, you can check if the new mode appears and if it's added to the mode list of the output by running "xrandr" (without parameters).

I can't try the stuff here fully because I get an error in the "xrandr --addmode ..." step that seems to be a bug in the nvidia driver:

$ xrandr --addmode DP-1 1264x768_60.00
X Error of failed request:  BadMatch (invalid parameter attributes)
...

About removing modes, doing "xrandr --rmmode 1264x768_60.00" doesn't seem to work, instead you have to use that hex-code that xrandr lists in round brackets after the mode name, for example "xrandr --rmmode 0x2d8".

If the GPU decides to stretch the new mode to fill the whole panel instead of adding black bars, this here is supposed to fix it:

$ xrandr --output eDP1 --set "scaling mode" "Full aspect"

Last edited by Ropid (2017-05-09 20:41:18)

Offline

#8 2017-05-12 07:37:17

SgrA
Member
Registered: 2011-06-08
Posts: 41

Re: Configure X server to avoid columns of dead pixels

Thanks, Ropid! That works for me and solves the problem.

It introduces black bands on both the sides of the screen. Is there a way to have the black band only on the affected side, as in, create a mode with a smaller output, and align this mode to the right side of my panel?

Offline

Board footer

Powered by FluxBB