Die Skalierung globaler Umgebungsvariablen in Qt funktioniert nicht konsistent

Die Skalierung globaler Umgebungsvariablen in Qt funktioniert nicht konsistent

Ich stoße auf eines dieser Probleme, die unregelmäßig auftreten und sich daher selbst für mich nur schwer reproduzieren lassen.

Ich habe einen 4K-Bildschirm (3840 x 2160) und verwende daher, wann immer möglich, HiDPI-Skalierung mit einem Faktor von 2. Da ich jedoch ein benutzerdefiniertes Setup verwende, das Xfce (für das Panel, die Einstellungen und den Sitzungsmanager) mit bspwm (Kachelfenstermanager) und picom (Comptons geistiger Nachfolger als Compositor) kombiniert, muss ich normalerweise ein wenig selbst Hand anlegen, um Qt-Anwendungen zu skalieren. Die Xfce-Einstellungen steuern nur GTK-Anwendungen.

Um die Qt-Skalierung zu aktivieren, folge ich normalerweisedas Arch-Wiki, füge export QT_SCALE_FACTOR=2meine hinzu .bashrcoder probiere die Alternativen ( QT_AUTO_SCREEN_SCALE_FACTOR, QT_SCREEN_SCALE_FACTORS) aus, bis es funktioniert. Und es hat funktioniert, als ich Ubuntu 20.04 verwendet habe.

Seit ich jedoch auf Debian 11 „Bullseye“ migriert bin, ist die Qt-Skalierung nun auf Sitzungsbasis inkonsistent. Wenn es funktioniert, funktioniert es für jede Anwendung einwandfrei. Aber manchmal funktioniert es überhaupt nicht. Es scheint, als müsste ich neu starten, bis es funktioniert. Und es ist wie ein Münzwurf, beide Ergebnisse treten relativ häufig auf.

Als Workaround kann ich die Umgebungsvariable lokal beim Starten der Anwendung angeben, anstatt sie global ausführen zu lassen. Beispielsweise env QT_SCALE_FACTOR=2 qpdfviewstartet qpdfview mit entsprechender Skalierung.

Das ist natürlich nicht praktisch und ich hätte lieber, dass sich die in definierte globale Umgebungsvariable so .bashrcverhält, wie sie sollte. Ich habe übrigens auch versucht, .bash_profilestattdessen ein zu erstellen, aber das hat die Situation nicht verbessert.

Also, was ist los? Ich vermute, dass es Probleme mit der Startreihenfolge gibt. Selbst wenn ich meine Skalierung nicht bekomme, printenvwird angezeigt, dass diese QT_SCALE_FACTOR(oder eine Alternative) aufgelistet ist ... also ist sie da, aber irgendetwas muss damit nicht stimmen. Ich erwähne die Startreihenfolge, weil mein (zugegebenermaßen ungewöhnliches) Setup anscheinend empfindlich darauf reagiert, welche Prozesse bereits laufen (oder nicht); manchmal (allerdings selten) boote ich mit einem durcheinander geratenen Panel und Fenstern, die nicht mehr als ein Viertel des Bildschirms einnehmen können. Also starte ich einfach neu und es ist in Ordnung.

Wie dem auch sei, ich wäre für Ihre Hilfe dankbar. Vielen Dank im Voraus!


EDIT: Problem gelöst! Lightdm war der Täter. Wie erklärtHier, .bashrcund zugehörige Dateien werden beim Anmelden von lightdm nicht als Quelle verwendet, da die Anzeige nicht von der Shell gestartet wird. Lightdm analysiert einige Dateien zum Starten von Skripten und hier können Sie Umgebungsvariablen speichern. Ihr genauer Name kann von der Distribution abhängen. Archwiki sagt ~/.xprofile, aberunter DebianSie würden verwenden ~/.xsessionrc.

Also habe ich ~/.xsessionrc„Containing“ erstellt export QT_SCALE_FACTOR=2und jetzt funktioniert es.

verwandte Informationen