Anwendungsspezifische Fensterskalierung in Xorg für hochauflösende Anzeige

Anwendungsspezifische Fensterskalierung in Xorg für hochauflösende Anzeige

Ich verwende Gnome Shell mit einem 4K-Monitor und verwende einige Anwendungen, die bei der hohen Auflösung überhaupt nicht skaliert werden.

Dies ist ein Beispiel für LMMS, eine Anwendung, die noch nicht auf Qt 5 portiert wurde und daher keine hohen DPI-Skalierungsfunktionen bietet:

Bildschirmfoto
(Klicken Sie auf die Bilder, um sie zu vergrößern)

Gibt es eine Möglichkeit, ein bestimmtes X-Fenster zu skalieren, ohne die Bildschirmauflösung zu ändern?

Meine aktuelle Lösung besteht darin, die Abmessungen meiner Bildschirmauflösung zu halbieren. Dies verschlechtert jedoch die Auflösung aller anderen Anwendungen, die eine ordnungsgemäße dpi-Skalierung unterstützen:

Bildschirmfoto

Antwort1

Endlich ist es mir gelungen, eine Lösung zu finden, die alte Anwendungen ohne merkliche visuelle oder Leistungseinbußen skaliert.

Dank kaueraal können Sie nun alte Anwendungen mit skalieren run_scaled. Sie können das Skript entweder von seinemGitHub-Seiteoder als Teil des xpraPakets, wenn Sie Arch Linux verwenden.

Hier ist ein Beispiel für zwei nebeneinander ausgeführte Anwendungen:

  • Firefox mit HiDPI-Unterstützung auf der linken Seite
  • LMMS läuft mit run_scaledrechts

Bildbeschreibung hier eingeben

Ich entdeckte dieses Skript durch dieArch Linux Wiki.

Antwort2

Ohne das genaue Problem zu kennen, auf das Sie stoßen, würde ich vorschlagen,

GDK_SCALE=x

oder

GDK_DPI_SCALE=x

Vor dem Start jeder Anwendung. Sie müssen wahrscheinlich .desktopDateien manuell ändern oder von Ihrer Shell aus ausführen und den Befehlen das Präfix voranstellen:GDK_SCALE=x

GDK_SCALEerlaubt nur Integer-Werte, GDK_DPI_SCALE=xerlaubt aber Dezimalwerte wie zBGDK_DPI_SCALE=0.66

Für andere SDK-basierte Anwendungen gibt es wahrscheinlich ähnliche Einstellungen für die jeweiligen Kits. Da Ihr Problem jedoch mit dem Gnome-Desktop zusammenhängt, werde ich diese Lösung anbieten.

Ich habe es noch nicht mit einem 4K-Monitor versucht, aber durch Ausführen GDK_DPI_SCALE=1.66 gnome-calculatorwird die Lösung demonstriert.

Quelle:https://developer.gnome.org/gtk3/stable/gtk-x11.html

Antwort3

Vncdeskbietet Ihnen eine Lösung basierend auf einem lokalen VNC-Client-Server (sieheHier)

Für mich ist es keine Komplettlösung, da es einige Probleme gibt, wenn die App einen Fenstermanager benötigt.

Antwort4

Ich glaube, ich habe eine GPU-beschleunigte Lösung gefunden! Installieren westonund führen Sie Folgendes aus:

weston --xwayland --scale=2
DISPLAY=:1 your_app

Das ist es!

Tuning

Hinweis 1: Möglicherweise ist Ihnen aufgefallen, dass eine magische Zahl verwendet wurde: DISPLAY=:1. Die zugrunde liegende Annahme war, dass Ihre Haupt-Xorg-Anzeige ist :0. Wenn dies nicht der Fall ist, passen Sie es entsprechend an.

Hinweis 2: Möglicherweise ist Ihnen aufgefallen, dass westonstandardmäßig ein oberes Bedienfeld vorhanden ist. Möglicherweise möchten Sie es entfernen. Erstellen Sie dazu eine weston.iniDatei:

[core]
idle-time=0

[shell]
panel-position=none
locking=false

Und verwenden Sie es, wenn Sie Weston starten weston --config=/path/to/weston.ini. Sie können es auch platzieren, ~/.config/weston.inidamit es automatisch von Weston abgeholt wird. man weston.iniWeitere Einzelheiten finden Sie unter.

EDIT: Ich habe den neu gefundenen Ansatz auch hier dokumentiert:https://wiki.archlinux.org/title/HiDPI#Unsupported_applications,_via_weston

verwandte Informationen