web-dev-qa-db-ja.com

HiDPIが機能する理由は何ですか?

Ubuntu Bionic、GNOME、エレメンタリーOS、KDE、Xfce 4.13をテストしています(GTK3バージョン、すべてのアプリはGTK3に移植されています)。

すべてのディストリビューションは、フレームワーク全体でhidpiをサポートしています:Google Chrome/Firefox/etcを起動したとき。 (GTK 3)、VirtualBox(Qt 5)、またはSpotify(Electron)DEの一部のコンポーネントは、画面が4Kであることを検出し、アプリが2倍にスケーリングされるように正しい処理を実行します。

Xfceを除いて。 Xfceでは、サードパーティのアプリはうまく機能しません。特に、QtアプリとElectronアプリは、正しいスケーリングで起動されることはありません。

xfce4.13には「スケーリング」オプションがあり、これを使用して、すべてをx2にスケーリングすることを指定できます。ただし、それを行っても、QtアプリとElectronアプリは設定を取得しません。また、gsettingsを使用して、Xfceに加えて「GNOME」設定を無効に設定してみました。 QtアプリとElectronアプリはまだ見栄えが悪いですが、GNOMEではすぐに使用できるように見えます。

私の質問は、Ubuntu、エレメンタリー、そしてある程度KDEが、異なるフレームワークを使用するアプリをすべて正しくスケーリングする方法を教えてください。

もちろん、Qtアプリを正しいスケーリングで手動で起動する方法は知っていますが、Xfce以外のディストリビューションでこのプロセスが非常に簡単になるのはなぜだろうと思います。

Xfceを「正しく」動作させ、GTK3、Qt、またはElectronアプリを起動した場合に正しくスケーリングされるように、別のディストリビューションからインストールできるパッケージはありますか?それはいくつかの変数を渡すよりもランチャーですか、それとも低レベルのコンポーネントですか?

3
nkkollaw

残念ながら、そのようなグローバルなオプションを設定することはできません。これらの分布は、さまざまな変数を設定しています。

多くのアプリケーションは、Xft.dpi~/.Xresources設定を考慮に入れています(これは私が設定した唯一のオプションですが、GUIアプリケーションはほとんど使用していません)

Qt 5.6以降、Qt 5アプリケーションは、エクスポートすることで画面DPIを尊重するように指示できます。

export QT_AUTO_SCREEN_SCALE_FACTOR=1

それがうまくいかない場合は試してみてください

export QT_AUTO_SCREEN_SCALE_FACTOR=0
export QT_SCALE_FACTOR=2

GDK 3(GTK + 3)は次のようにスケーリングできます

export GDK_SCALE=2

電子アプリケーションはLinuxで処理するのが難しい [1][2] 。たとえば、GNOMEのtext-scaling-factorオプションを尊重します [3]
ここでは、引数として--force-device-scale-factor=1.5を使用する以外に選択肢はありません。

詳細については、十分に文書化されたArch Linux HiDPI wikiページ

1
ploth