La variable de entorno global de escalado Qt no funciona de manera consistente

La variable de entorno global de escalado Qt no funciona de manera consistente

Me encuentro con uno de esos problemas que ocurren de manera inconsistente y, por lo tanto, son difíciles de replicar, incluso para mí.

Tengo una pantalla 4K (3840x2160) y, por lo tanto, uso el escalado HiDPI siempre que sea posible, con un factor de 2. Sin embargo, dado que estoy ejecutando una configuración personalizada que combina Xfce (para el panel, la configuración y el administrador de sesiones) con bspwm (administrador de ventanas en mosaico) y picom (el sucesor espiritual de Compton como compositor), normalmente tengo que ensuciarme un poco las manos para escalar aplicaciones Qt. La configuración de Xfce solo controla las aplicaciones GTK.

Para habilitar el escalado Qt, normalmente sigoel arco wiki, agregando export QT_SCALE_FACTOR=2my .bashrco probando las alternativas ( QT_AUTO_SCREEN_SCALE_FACTOR, QT_SCREEN_SCALE_FACTORS) hasta que funcione. Y funcionó cuando ejecutaba Ubuntu 20.04.

Sin embargo, desde que migré a Debian 11 "Bullseye", el escalado de Qt ahora es inconsistente por sesión. Cuando funciona, funciona bien para todas las aplicaciones. Pero otras veces no funciona en absoluto. Parece que tengo que reiniciar hasta que empiece a trabajar. Y es como lanzar una moneda al aire: ambos resultados aparecen con relativa frecuencia.

Como solución alternativa, puedo especificar la variable de entorno localmente, al iniciar la aplicación, en lugar de ejecutarla globalmente. Por ejemplo, env QT_SCALE_FACTOR=2 qpdfviewinicia qpdfview con la escala adecuada.

Por supuesto, esto no es conveniente y prefiero que la variable de entorno global, definida en .bashrc, se comporte como debería. Por cierto , también intenté crear un .bash_profilelugar, pero no mejoró la situación.

Entonces, ¿qué está pasando? Sospecho que hay problemas con el orden de salida. Incluso cuando no obtengo mi escala, printenvmuestra que QT_SCALE_FACTOR(o cualquier alternativa) está en la lista... así que está ahí, pero algo debe estar interfiriendo con ello. Menciono el orden de inicio ya que mi configuración (ciertamente inusual) aparentemente es sensible a qué procesos ya se están ejecutando (o no); A veces (aunque rara vez), inicio desde un panel desordenado y ventanas que no pueden ocupar más de una cuarta parte de la pantalla. Entonces simplemente reinicio y está bien.

De todos modos agradecería tu ayuda. ¡Gracias de antemano!


EDITAR: ¡problema resuelto! Lightdm fue el perpetrador. Como se explicaaquíy .bashrclos archivos relacionados no se obtienen al iniciar sesión desde lightdm, ya que el shell no inicia la pantalla. Lightdm analiza algunos archivos para iniciar scripts y aquí es donde puede almacenar variables de entorno. Su nombre exacto puede depender de la distribución. Archwiki dice~/.xprofile , peroen Debianusarías ~/.xsessionrc.

Entonces, creé ~/.xsessionrcun contenedor export QT_SCALE_FACTOR=2y ahora funciona.

información relacionada