Я столкнулся с одной из тех проблем, которые возникают непоследовательно и которые трудно воспроизвести даже мне.
У меня экран 4K (3840x2160), и поэтому я использую масштабирование HiDPI, когда это возможно, с коэффициентом 2. Однако, поскольку я использую пользовательскую настройку, объединяющую Xfce (для панели, настроек и менеджера сеансов) с bspwm (мозаичным оконным менеджером) и picom (духовным преемником Compton в качестве композитора), мне обычно приходится немного пачкать руки, чтобы масштабировать приложения Qt. Настройки Xfce управляют только приложениями GTK.
Чтобы включить масштабирование Qt, я обычно следуюАрх вики, добавляя export QT_SCALE_FACTOR=2
в свой .bashrc
или пробуя альтернативы ( QT_AUTO_SCREEN_SCALE_FACTOR
, QT_SCREEN_SCALE_FACTORS
) пока это не заработает. И это работало, когда я запускал Ubuntu 20.04.
Однако с тех пор, как я перешел на Debian 11 "Bullseye", масштабирование Qt теперь непоследовательно на основе сеанса. Когда оно работает, оно работает просто отлично, для каждого приложения. Но в других случаях оно вообще не работает. Кажется, мне нужно перезагрузиться, пока не заработает. И это как подбрасывание монеты, оба результата появляются относительно часто.
В качестве обходного пути я могу указать переменную окружения локально, при запуске приложения, вместо того, чтобы запускать его глобально. Например, env QT_SCALE_FACTOR=2 qpdfview
запускает qpdfview с соответствующим масштабированием.
Это, конечно, не удобно, и я бы предпочел, чтобы глобальная переменная окружения, определенная в .bashrc
, вела себя так, как должна. Кстати, я также пробовал создать .bash_profile
вместо этого , но это не улучшило ситуацию.
Итак, что происходит? Я подозреваю проблемы с порядком запуска. Даже когда я не получаю свое масштабирование, printenv
показывает, что QT_SCALE_FACTOR
(или любая альтернатива) указана... так что она там есть, но что-то с ней, должно быть, не так. Я упоминаю порядок запуска, поскольку моя (признанно необычная) настройка, по-видимому, чувствительна к тому, какие процессы уже запущены (или нет); иногда (правда, редко) я загружаюсь с испорченной панелью и окнами, которые не могут занять больше четверти экрана. Поэтому я просто перезагружаюсь, и все в порядке.
В любом случае, я буду признателен за вашу помощь. Спасибо заранее!
EDIT: проблема решена! Lightdm был виновником. Как и объяснялосьздесь, .bashrc
и связанные файлы не берутся при входе из lightdm, так как дисплей не запускается оболочкой. Lightdm анализирует несколько файлов для запуска скриптов, и именно здесь вы можете хранить переменные окружения. Их точное имя может зависеть от дистрибутива. Archwiki говорит ~/.xprofile
, нона Debianвы бы использовали ~/.xsessionrc
.
Итак, я создал ~/.xsessionrc
контейнер export QT_SCALE_FACTOR=2
, и теперь он работает.