Gnome 3.26 respektiert nicht monitor.xml

1537
Naatan

Ich verwende Gnome-Shell 3.26 für Arch mit 3 Monitoren (verbunden über einen Mini-Displayport mit 3 HDMI-Hub). Dieses Hardware-Setup hat mit früheren Versionen der Software gut funktioniert.

Das Problem, mit dem ich konfrontiert bin, ist Gnome-Shell. Ich respektiere meine Monitore.xml NICHT. Ich kann es schaffen, eine neue Monitore.xml zu generieren, indem ich meine Anzeigekonfiguration über die Gnome-Einstellungsschnittstelle ändert, aber sobald ich Gnome neu starte shell (alt-f2: r) setzt die Anzeigekonfiguration vollständig zurück.

Das ist meine Monitore.xml:

<monitors version="2"> <configuration> <logicalmonitor> <x>3840</x> <y>0</y> <scale>1</scale> <monitor> <monitorspec> <connector>DP-1-2</connector> <vendor>ACI</vendor> <product>ASUS VS228</product> <serial>C7LMQS146415</serial> </monitorspec> <mode> <width>1920</width> <height>1080</height> <rate>60</rate> </mode> </monitor> </logicalmonitor> <logicalmonitor> <x>1920</x> <y>0</y> <scale>1</scale> <primary>yes</primary> <monitor> <monitorspec> <connector>DP-1-1-2</connector> <vendor>ACI</vendor> <product>VX279</product> <serial>ECLMRS015424</serial> </monitorspec> <mode> <width>1920</width> <height>1080</height> <rate>60</rate> </mode> </monitor> </logicalmonitor> <logicalmonitor> <x>0</x> <y>0</y> <scale>1</scale> <monitor> <monitorspec> <connector>DP-1-1-1</connector> <vendor>ACI</vendor> <product>ASUS VS228</product> <serial>C9LMTF180907</serial> </monitorspec> <mode> <width>1920</width> <height>1080</height> <rate>60</rate> </mode> </monitor> </logicalmonitor> <disabled> <monitorspec> <connector>eDP-1</connector> <vendor>SDC</vendor> <product>0x424a</product> <serial>0x00000000</serial> </monitorspec> </disabled> </configuration> </monitors> 

Dies ist die Ausgabe von xrandr -q | grep " connected"

eDP-1 connected (normal left inverted right x axis y axis) DP-1-1-1 connected 1920x1080+1920+0 (normal left inverted right x axis y axis) 476mm x 268mm DP-1-1-2 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 598mm x 336mm DP-1-2 connected 1920x1080+3840+0 (normal left inverted right x axis y axis) 476mm x 268mm 

Warum wird meine Monitore.xml nicht respektiert? Könnte etwas es überschreiben?

1

1 Antwort auf die Frage

1
Konrad Höffner

Diese GNOME-Shell-Erweiterung soll dieses Problem beheben: https://extensions.gnome.org/extension/1066/fix-multi-monitors/

Falls die Installation nicht funktioniert, können Sie auch http://bernaerts.dyndns.org/linux/74-ubuntu/309-ubuntu-dual-display-monitor-position-lost folgen, der das Löschen Ihrer monitor.xml vorschlägt Datei und lassen Sie GNOME es neu erstellen.

Falls dies auch nicht funktioniert (mein Fall unter Arch Linux nach dem Energiesparen), installieren Sie xorg-xrandr, fragen Sie Ihre Anzeigen ab xrandrund führen Sie Folgendes aus:

xrandr --output <CON1> --pos 0x0 --output <CON2> --pos 1920x0 --output <CON3> --pos 3840x0 

Woher kommt xrandrzum Beispiel der Verbindungsname DVI-0oder DisplayPort-0, ich weiß nicht, ob Ihre Kennungen von monitor.xml(DP-1-2 usw.) ebenfalls funktionieren oder ob sie gleich sind.

Der Link oben beschreibt auch, wie man dies automatisieren kann. Ich kopiere es hier für den Fall, dass Links ausfallen:

/ usr / local / sbin / update-monitor-position

#!/bin/bash # ------------------------------------------------- # Get monitors configuration from monitor.xml and apply it for current user session. # In case of multiple definitions in monitor.xml only first one is used. # # See http://bernaerts.dyndns.org/linux/74-ubuntu/309-ubuntu-dual-display-monitor-position-lost # for instructions # # Parameters : # $1 : waiting time in sec. before forcing configuration (optional) # # Revision history : # 19/04/2014, V1.0 - Creation by N. Bernaerts # 10/07/2014, V1.1 - Wait 5 seconds for X to fully initialize # 01/09/2014, V1.2 - Correct NULL file bug (thanks to Ivan Harmady) and handle rotation # 07/10/2014, V1.3 - Add monitors size and rate handling (idea from jescalante) # 08/10/2014, V1.4 - Handle primary display parameter # 08/12/2014, V1.5 - Waiting time in seconds becomes a parameter # -------------------------------------------------  # monitor.xml path MONITOR_XML="$HOME/.config/monitors.xml"  # get number of declared monitors NUM=$(xmllint --xpath 'count(//monitors/configuration['1']/output)' $MONITOR_XML)  # loop thru declared monitors to create the command line parameters for (( i=1; i<=$NUM; i++)); do # get attributes of current monitor (name and x & y positions) NAME=$(xmllint --xpath 'string(//monitors/configuration['1']/output['$i']/@name)' $MONITOR_XML 2>/dev/null) POS_X=$(xmllint --xpath '//monitors/configuration['1']/output['$i']/x/text()' $MONITOR_XML 2>/dev/null) POS_Y=$(xmllint --xpath '//monitors/configuration['1']/output['$i']/y/text()' $MONITOR_XML 2>/dev/null) ROTATE=$(xmllint --xpath '//monitors/configuration['1']/output['$i']/rotation/text()' $MONITOR_XML 2>/dev/null) WIDTH=$(xmllint --xpath '//monitors/configuration['1']/output['$i']/width/text()' $MONITOR_XML 2>/dev/null) HEIGHT=$(xmllint --xpath '//monitors/configuration['1']/output['$i']/height/text()' $MONITOR_XML 2>/dev/null) RATE=$(xmllint --xpath '//monitors/configuration['1']/output['$i']/rate/text()' $MONITOR_XML 2>/dev/null) PRIMARY=$(xmllint --xpath '//monitors/configuration['1']/output['$i']/primary/text()' $MONITOR_XML 2>/dev/null)  # if position is defined for current monitor, add its position and orientation to command line parameters [ -n "$POS_X" ] && PARAM_ARR=("$" "--output" "$NAME" "--pos" "$x$" "--fbmm" "$x$" "--rate" "$RATE" "--rotate" "$ROTATE")  # if monitor is defined as primary, adds it to command line parameters [ "$PRIMARY" = "yes" ] && PARAM_ARR=("$" "--primary") done  # if needed, wait for some seconds (for X to finish initialisation) [ -n "$1" ] && sleep $1  # position all monitors xrandr "$" 

/usr/share/applications/update-monitor-position.desktop

[Desktop Entry] Type=Application Exec=update-monitor-position Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true Name[en_US]=Update Monitors Position Name=Update Monitors Position Comment[en_US]=Force monitors position from monitor.xml Comment=Force monitors position from monitor.xml Icon=display 

Führen Sie dann update-monitor-position.desktop unter Startup Applications Preferences aus .

Ein weiterer Leitfaden ist unter http://www.calgorithms.com/blog/2014/07/30/fixing-multiple-monitor-position-in-ubuntu-gnome-14-dot-04/ verfügbar .