Skalierungsproblem bei Verwendung der Ultra HD-Auflösung zwischen einem Laptop und einem Monitor

Skalierungsproblem bei Verwendung der Ultra HD-Auflösung zwischen einem Laptop und einem Monitor

Ich habe einen Laptop mit Arch Linux und Gnome Shell. Meine Grafikkarte ist eine Intel HD 520. Die Bildschirmauflösung meines Laptops beträgt 3200×1800. Bei der Arbeit schließe ich meinen Laptop an einen Monitor mit einer Auflösung von 1920×1080 an. Die Verbindung erfolgt über ein HDMI-Kabel. Das System erkennt beide Bildschirme und ihre Auflösungen korrekt. Das Problem ist folgendes:

Bei Ultra-HD-Auflösungen skaliert Gnome (macht Gnome das oder ist es der Grafikkartentreiber?) die Fenster, damit sie größer werden. Das ist absolut sinnvoll, sonst wäre beispielsweise die Leiste von Firefox eine dünne Linie. Das Problem ist jedoch, dass diese Skalierung erhalten bleibt, wenn ich ein Fenster (z. B. Firefox) von einem Monitor auf den anderen verschiebe. Infolgedessen sieht alles so ausriesigauf meinem 1920×1080-Monitor, obwohl die Auflösung richtig erkannt wird.

  1. Ist das ein Fehler? Wenn ja, wessen Schuld ist es? Gnome, Intel HD-Grafik oder der Linux-Kernel?
  2. Kann ich es korrigieren?

Antwort1

  1. TLDR: Es handelt sich nicht um einen Fehler, sondern lediglich um eine nicht ganz ideale Lösung für die komfortable Verwendung von HiDPI-Bildschirmen.

Diese Lösungen scheinen darauf zurückzuführen zu sein, dass die meisten Programme Monitore mit höherer DPI-Auflösung nicht automatisch kompensieren. Wenn wir alles so lassen würden, wie es ist (keine Skalierung oder DPI-Einstellungen), würden viele Programme auf einem HiDPI-Bildschirm winzig aussehen. Daher kann eine Kompensation auf Betriebssystemebene erfolgen (sieheInformationen zu HiDPI für Arch Linux), aber dies verursacht ein Problem, wenn Sie zwei Bildschirme mit unterschiedlicher Pixeldichte haben.

  1. Bei einem internen HiDPI-Bildschirm mit 3200 x 1800 und einem externen mit 1920 x 1080 sollten die folgenden Konfigurationen funktionieren (getestet mit einem Dell XPS9350 und XPS9360).

Extern nach rechts konfigurieren:

xrandr --dpi 276 --fb 7040x3960 --output eDP-1 --mode 3200x1800 --output 
DP-1 --scale 2x2 --pos 3200x0 --panning 3840x2160+3200+0

Externe Konfiguration nach links:

xrandr --dpi 276 --fb 7040x3960 --output DP-1 --scale 2x2 --panning
-3840x2160+3200+0 --pos 0x0 --output eDP-1 --mode 3200x1800 --pos 3840x0

Wenn Sie häufig wechseln, ist es möglicherweise eine gute Idee, diese Befehle als Alias ​​in Ihre .bashrc-Datei einzufügen. Beispiel:

alias ext-config-right="xrandr --dpi 276 --fb 7040x3960 --output eDP-1 --mode 
3200x1800 --output DP-1 --scale 2x2 --pos 3200x0 --panning 3840x2160+3200+0"

Antwort2

Es scheint, dass es eine einzige Einstellung für Ultra-HD-Bildschirme gibt, die für alle angeschlossenen Monitore gilt, obwohl diese möglicherweise nicht geeignet ist und möglicherweise eine Einstellung von X zu sein scheint.

DerArch Linux Wikienthält einen Abschnitt dazu mit einigen Optionen zur Verwendung von xrandr zum Skalieren des Monitors, wobei eDP1 der Laptop-Bildschirm ist:

xrandr --output eDP1 --auto --output HDMI1 --auto --scale 2x2 --right-of eDP1

anscheinend kann es dennoch zu einigen Problemen kommen, wenn sich entweder die beiden Bildschirme überlappen oder der Cursor nicht beide Bildschirme vollständig abdeckt.

Wenn der interne Monitor die Abmessungen AxB hat, der externe die Abmessungen CxD und die Skalierung ExF ist, wie im Arch-Wiki vorgeschlagen, wird ein Shell-Skript mit einem Benutzer namens verknüpftAbonnierens Github, wozu die Displays mit den entsprechenden Angaben versehen werden müssten. Es ergibt:

xrandr --output eDP1 --auto --pos ${(A-C)/2}x${D} --scale 1x1 \
--output HDMI1 --auto --scale 2x2 --pos 0x0

Für das zweite Problem schlägt Arch die Verwendung von Panning vor:

xrandr --output eDP1 --auto \
--output HDMI1 --auto --panning [C*E]x[D*F]+[A]+0 --scale [E]x[F] --right-of eDP1

/etc/gdm/Init/Defaultund schließlich, falls das geholfen hat, schlägt das Ubuntu-Wiki vor, den Befehl xrandr in direkt vor der Zeile zu speichern initctl -q emit login-session-start DISPLAY_MANAGER=gdm. (Entschuldigung, zu wenig Ruf für einen dritten Link...)

verwandte Informationen