xrandr-vermittelte Korrektur des VGA-Overscans auf einem externen Computermonitor

xrandr-vermittelte Korrektur des VGA-Overscans auf einem externen Computermonitor

Wenn ich einen externen Monitor (Dell E207WFP) als Anzeigegerät für meinen Laptop verwende, werden etwa 10 Pixel vom linken Bildschirmrand abgeschnitten, was meiner Meinung nach eine Folge eines als Overscan bekannten Phänomens ist (der Monitor ist über VGA mit dem Computer verbunden). Ich habe mehrere verfügbare Auflösungen: 1680 x 1050 (60,0 Hz), 1280 x 1024 (75,0 Hz), 1152 x 864 (75,0 Hz), 1024 x 768 (75,1 Hz), 800 x 600 (75,0 Hz), 800 x 600 (75,0 Hz) und 720 x 400 (70,1 Hz). Ich habe mich für die höchste Auflösung entschieden, die die Standardauflösung ist und auch die höchste Auflösung, die von diesem Monitor unterstützt wird. Eine Reduzierung auf eine niedrigere Auflösung löst das Overscan-Problem, ist aber unerwünscht. Ich suche nach einer Lösung, die die Auflösung des Displays so wenig wie möglich verringert. Ich habe versucht, das Overscan-Problem zu beheben, indem ich das Display um 10 Pixel nach rechts verschoben und gleichzeitig die Ausgabe neu skaliert habe, um sicherzustellen, dass keine Pixel auf der rechten Seite des Bildschirms abgeschnitten werden. Das Anpassen des x/y-Skalierungswerts in der vom Dienstprogramm verwendeten affinen 2D-Transformation hat mir jedoch keinen Erfolg gebracht xrandr --transform. Unabhängig davon, auf welche Werte diese Werte eingestellt sind, leidet das Display unter rechtsseitigen Pixelabschneidungen, wenn ich eine Rechtsverschiebung des Displays vornehme.

Ich verwende einen Befehl folgender Form:

xrandr --output VGA1 --transform 1,0,-10,0,1,0,0,0,1

Dies -10bezieht sich auf die Verschiebung (in Pixeln) der Anzeige entlang der x-Achse (negative Werte verschieben die Anzeige nach rechts). Die ersten beiden Parameter, die auf gesetzt sind, 1geben an, dass keine Neuskalierung auf die x-Achse (Feld 1) oder y-Achse (Feld 5) angewendet wird. Ich habe versucht, größere (z. B. 1,05) oder kleinere (z. B. 0,95) Skalierungsfaktoren zu verwenden, aber in allen Fällen wird die Anzeige am rechten Rand überscannt. Wenn mir jemand sagen könnte, welcher Wertesatz den gewünschten Effekt erzielen könnte, oder eine alternative Lösung vorschlagen könnte, wäre ich dankbar.

Die vollständige Ausgabe xrandr --queryist unten aufgeführt, falls sie bei der Lösung des Problems hilfreich sein sollte:

Screen 0: minimum 320 x 200, current 1670 x 1050, maximum 8192 x 8192
LVDS1 connected (normal left inverted right x axis y axis)
   1366x768       60.0 +
   1360x768       59.8     60.0  
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
VGA1 connected 1680x1050+0+0 (normal left inverted right x axis y axis) 430mm x 270mm
   1680x1050      60.0*+
   1280x1024      75.0     60.0  
   1152x864       75.0  
   1024x768       75.1     60.0  
   800x600        75.0     60.3  
   640x480        75.0     60.0  
   720x400        70.1  
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis) 

Antwort1

Ich hatte genau das gleiche Problem und habe festgestellt, dass die Einstellung panning, selbst wenn die Größe mit der Auflösung übereinstimmt, dazu führt, dass sich die Option mehr meinen Erwartungen entsprechend verhält. Ich habe auch festgestellt, dass es hilft , bei jedem Aufruf transformvon explizit anzugeben .modexranr

xrandr --output VGA1 --mode 1680x1050 --panning 1680x1050
xrandr --output VGA1 --mode 1680x1050 --transform 1.05,0,-10,0,1,0,0,0,1

verwandte Informationen