Qt 스케일링 전역 환경 변수가 일관되게 작동하지 않습니다.

Qt 스케일링 전역 환경 변수가 일관되게 작동하지 않습니다.

이 중 하나가 일관되지 않게 발생하는 문제가 있으므로 나에게도 복제하기가 어렵습니다.

저는 4K(3840x2160) 화면을 가지고 있으므로 가능할 때마다 HiDPI 스케일링을 2배로 사용합니다. 그러나 나는 Xfce(패널, 설정 및 세션 관리자용)와 bspwm(타일링 창 관리자) 및 piccom(Compton의 Compton의 영적 후속 제품)을 결합한 사용자 정의 설정을 실행하고 있기 때문에 종종 직접 수행해야 하는 경우가 있습니다. Qt 애플리케이션을 확장합니다. Xfce 설정은 GTK 응용 프로그램만 제어합니다.

Qt 스케일링을 활성화하려면 일반적으로 다음을 따릅니다.아치 위키, 작동할 때까지 export QT_SCALE_FACTOR=2내 것을 추가 .bashrc하거나 대안( QT_AUTO_SCREEN_SCALE_FACTOR, )을 시도해 보세요. QT_SCREEN_SCALE_FACTORSUbuntu 20.04를 실행하면 작업이 수행됩니다.

그러나 Debian 11 "Bullseye"로 마이그레이션한 이후 Qt 스케일링이 이제 세션 단위로 일관되지 않습니다. 작동하면 모든 응용 프로그램에 훌륭하게 작동합니다. 그러나 다른 때에는 전혀 작동하지 않습니다. 작동을 시작하기 전에 재부팅해야 할 것 같습니다. 이는 동전을 던지는 것과 같습니다. 두 가지 결과가 모두 상대적으로 자주 발생합니다.

해결 방법으로 애플리케이션을 전역적으로 실행하는 대신 애플리케이션을 시작할 때 로컬로 환경 변수를 지정할 수 있습니다. 예를 들어, env QT_SCALE_FACTOR=2 qpdfview적절한 크기 조정으로 qpdfview를 시작할지 여부입니다.

이는 물론 불편하며 에 정의된 전역 환경 변수가 .bashrc예상되는 작업을 수행하도록 하는 것이 좋습니다. .bash_profile그나저나 대안을 만들어 보았지만 상황이 개선되지 않았습니다.

무슨 일이야? 부팅 순서에 문제가 있는 것 같습니다. 스케일링을 얻지 못하더라도 (또는 다른 대안) printenv이 나열되어 있다고 표시됩니다 QT_SCALE_FACTOR...그래서 거기에 있지만 뭔가 문제가 있는 것 같습니다. 제가 부팅 순서를 언급한 이유는 저의 (물론 특이한) 설정이 어떤 프로세스가 실행 중인지 아닌지에 명백히 민감하기 때문입니다. 때로는 (드물지만) 점유할 수 없는 복잡한 패널과 창으로 부팅하게 됩니다. 화면의 4분의 1. 그래서 방금 재부팅했는데 작동했습니다.

어쨌든, 당신의 도움에 감사드립니다. 미리 감사드립니다!


편집: 문제가 해결되었습니다! Lightdm이 범인입니다. 설명대로여기.bashrc, 디스플레이가 쉘에 의해 시작되지 않기 때문에 lightdm에서 로그인할 때 관련 파일을 얻을 수 없습니다 . Lightdm은 시작 스크립트를 위해 일부 파일을 구문 분석하며 여기에 환경 변수를 저장할 수 있습니다. 정확한 이름은 배포판에 따라 달라질 수 있습니다. Archwiki는 다음과 같이 말합니다 ~/.xprofile. 그러나데비안에서당신은 그것을 사용할 수 있습니다 ~/.xsessionrc.

~/.xsessionrc그래서 포함을 만들었고 export QT_SCALE_FACTOR=2이제 작동합니다.

관련 정보