Verschwommene Schriftarten bei der Verwendung der Windows-Standardskalierung mit WSL-GUI-Anwendungen (HiDPI)

787
lol

Gibt es eine Möglichkeit, verwackelte Schriftarten in Linux-GUI-Anwendungen zu korrigieren, wenn sie von WSL (Ubuntu 18.04) aus mit der Standard-Windows-Skalierung ausgeführt werden? Dinge, die ich bisher ausprobiert habe:
Mit Xming:

  1. Es wurde versucht, die Windows-Skalierung zu deaktivieren und von der Linux-Seite aus einzustellen GDK_DPI_SCALE=2.5. Das Problem dabei ist, dass Kontextmenüs nicht gut funktionieren und oft nicht skaliert werden. Ohne GDK_DPI_SCALE=2.5sind Anwendungen grundsätzlich unbrauchbar, da der Text extrem klein ist.
  2. Versuchte, alle Schriftarten von C: \ Windows \ Fonts zu installieren C:\Program Files\Xming\fonts\TTFund auszuführen mkfontscale, konnte aber auch nicht so funktionieren.
  3. Mit VcXsrv versucht, hat das gleiche Problem.

Screenshots

  • Clion:

Clion

  • Vergleich zwischen emacs (WSL) und VS-Code (Windows native)

Vergleich zwischen emacs (WSL) und VS-Code (Windows native)

Alle Ressourcen, die ich bisher gesucht habe:

  1. Warum werden WSL-GUI-Apps mit verschwommenen Schriftarten mit Xming gerendert? : Die Antwort hier gilt speziell für Firefox- und Elektronenanwendungen.
  2. Gnome-Terminal auf Xming verschwommen : Hat nichts besonders hilfreiches, außer einem Vorschlag, die Skalierung zu deaktivieren und etwas anderes als Xming zu verwenden.
  3. DPI-Probleme beim Ausführen von GUI-Programmen auf einem 4K-Bildschirm : Schlägt die Verwendung von VcXsrv vor.

Der Hauptzweck all dies ist es, Texteditoren (emacs) / IDE (Clion) von WSL aus ausführen zu können. Und der Grund, warum ich ihr Windows-Äquivalent nicht installieren kann, ist, dass wir nur für Linux entwickeln.

Wenige Systemdetails:

Bildschirm

4K (3840 x 2160) - 15,6 "

OS

  • Windows : Windows 10 Home v1803 Build: 17134.345

  • WSL : Ubuntu 18.04 ( Linux username 4.4.0-17134-Microsoft #345-Microsoft Wed Sep 19 17:47:00 PST 2018 x86_64 x86_64 x86_64 GNU/Linux)

1
Hinzugefügt die Screenshots, danke lol vor 6 Jahren 0
@Biswapriyo Ich bin nicht sicher, was Sie mit Desktop-Umgebung meinen, aber die einzigen GUI-Anwendungen, die ich verwende, sind Emacs und CLion. Alle anderen Anwendungen basieren auf Terminals. lol vor 6 Jahren 0
Ich wusste nicht, dass Sie DE mit WSL voll nutzen können. Ich führe jedoch nur diese beiden Anwendungen aus. Kannst du es als Antwort hinzufügen? Es könnte einen Versuch wert sein. lol vor 6 Jahren 0

1 Antwort auf die Frage

0
Biswapriyo

Haftungsausschluss: Das folgende Verfahren kann mit der tatsächlichen Hardware im System variieren. Die Einstellungen können sich in Ihrem Setup ändern.

Aktivieren Sie zunächst die Einstellungen für hohe DPI-Werte für die ausführbare Datei des X-Servers. Schließen Sie alle laufenden Instanzen dieses X-Servers. Öffne den Ordner, in dem du den X-Server installiert hast, z. B. VcxSrv, Xming, X410 usw. Hier wähle ich D:\MyFolderund VcxSrv als Beispiel. Öffnen Sie diesen Ordner und klicken Sie mit der rechten vcxsrv.exeMaustaste auf VcxSrv oder Xming.exeXming. Wählen Sie Eigenschaften> Registerkarte Kompatibilität> Hohe DPI-Einstellungen ändern> Überschreiben der hohen DPI-Skalierung aktivieren> Wechseln Sie zu 'Application' (oder der Option 'System Enhanced'). Hier sieht der Screenshot aus, nachdem Sie die Einstellungen geändert haben:

Enable_Dpi_Awareness_vcxsrv

Führen Sie auch die obigen Schritte für die xlaunch.exeDatei aus. Diese Änderung fügt die folgenden Registrierungswerte hinzu:

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers] "D:\\MyFolder\\xlaunch.exe"="~ HIGHDPIAWARE" "D:\\MyFolder\\vcxsrv.exe"="~ HIGHDPIAWARE" 

Überschreiben Sie als Nächstes die GTK + -Einstellungen für die X11-Umgebung. Dieser Gnome-Artikel enthält eine detaillierte Ansicht der Umgebungsvariablen. GDK_SCALEskaliert die Fenster um einen bestimmten Faktor. GDK_DPI_SCALEskaliert DPI für skalierbare Anwendungen. Aktivieren Sie die Einstellungen mit den folgenden Befehlen in bash (oder einer anderen Shell).

export GDK_SCALE=0.5 export GDK_DPI_SCALE=2 

Ändern Sie diese Werte entsprechend Ihrem System. Führen Sie nun den X-Server und die X11-Programme aus. Dieser reddit-Thread hilft auch.

Das hat funktioniert, danke! Nur um sicher zu sein, dass ich es auch mit Firefox verifiziert habe. Anscheinend habe ich die `GDK_SCALE` Flagge verpasst. Eine Sache, die nicht funktionierte, war Clion (die Schrift wurde jedoch manuell auf das 2,5-fache des Originals geändert). Das Rendern ist zwar ziemlich langsam, besonders im Fall von Firefox, aber das ist eine andere Frage. lol vor 6 Jahren 0
@lol Übrigens, der Include Guard in der Header-Datei sollte nicht mit Unterstrich beginnen (im VScode-Bild). Biswapriyo vor 6 Jahren 0
Sie haben recht, aber dies aus einem akademischen Projekt, bei dem sich die Leute nicht für solche Dinge sorgten. lol vor 6 Jahren 0