Linux上のHiDPI

HiDPI

アクア鉱山



はじめに

モバイルデバイスで長年にわたって高ピクセル密度のディスプレイが支配されてきた後、この傾向はようやくデスクトップを備えたラップトップに到達しました。 私の意見では、主にWindowsでの96以外のDPIのサポートが不十分なため、メーカーはHiDPIマトリックスをインストールしませんでした。 幸い、Modern UIを搭載したWindows 8のリリースにより状況は著しく改善されましたが、デスクトップモードではまだ理想からはほど遠いです-人々は13.3で3200×1800について「ラップトップで4K UHD 23.8の購入を疑う」と不満を述べています。



DPIおよびLinux

任意のDPI値を設定する機能は、Xfree86の時代に登場しましたが、これはそれ自体では何もしない単なる値であることを理解する必要があります。 DPIの変更を画面に反映する方法を決定するプログラムおよびコンポーネントによって読み取られ、使用されます。 テキストがケースの95%で設定されたDPI値に続く場合(xftに感謝!)、要素のサイズは、使用されるデスクトップ環境とアプリケーションが記述されているツールキットに依存します。



GTK + 3アプリケーションは、アプリケーションを再起動することなく、整数要素スケーリングと分数フォントスケーリングの両方をサポートし、DPIの変更を即座にサポートします。 要素のスケーリングはGDK_SCALE



環境GDK_SCALE



によって制御され、フォントのスケーリングはGDK_DPI_SCALE





デフォルトでは、フォントは要素とともにスケーリングされます。 したがって、DPI 96およびGDK_SCALE=2



では、DPI 192のようにフォントを取得します。フォントのスケーリングをキャンセルするには、 GDK_DPI_SCALE



環境GDK_DPI_SCALE



を0.5に設定します( GDK_SCALE=2



)。

Qt4は要素のスケーリング方法を知りません。 新しいDPI値を適用するには、アプリケーションを再起動する必要があります。

バージョン5.4以降のQT_DEVICE_PIXEL_RATIO



は、環境変数QT_DEVICE_PIXEL_RATIO



介した要素の整数スケーリングをサポートしています。 Qt4のようにDPIをオンザフライで変更することはできませんが、この方向での作業は進行中であり、Qt 5.6のリリース、および各モニターの個別スケーリングに対応する予定です。

WxWidgetsアプリケーションはGTK + 3と同じように動作しますが、要素のスケーリングはサポートしていません。



HiDEPIモニターで快適に使用できるDEを見つけようとしました。 テストは、12.5 "1366×768(125 DPI)のラップトップで、3840×2160(185 DPI)の解像度で接続された外部23.8"モニターで実行されました。



ノーム3





Gnome 3での高ピクセル密度のサポートは、すべての要素とフォントの二重スケーリング、つまり 技術的には、DPIは192に設定されています。次のコマンドを使用して、別のDPIを明示的に設定できます。

 gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{ 'Gdk/WindowScalingFactor':<2>, 'Gdk/UnscaledDPI':<189440> }"
      
      





ここで、189440 = 185 *1024。そしてGDK_DPI_SCALE



忘れないでください!

DEインターフェースのすべての要素は、標準的なアプリケーションでも見栄えがします。 各モニターに個別のスケーリングのサポートはありません。



シナモン





CinnamonはGTK + 3を使用して記述されているため、HiDPIサポートは、Gnome 3:要素、フォントの2倍の拡大とほぼ同じ方法で実装されます。 Gnome 3の場合と同じように、すべてが同じように見えます。ご覧のとおり、スクリーンショットで小さく見えるアプリケーションはVLCのみで、Qt4で記述されています。 各モニターのスケーリングサポートも欠落しています。



KDE 5





QtQuickで記述されたほとんどのKDEアプリケーションは、どのDPIでも動作します。 そのため、HiDPIモードを有効にするボタンはありませんが、DPI値を185に設定すると、フォントだけでなく要素も自動的に増加します。 何らかの理由で、メインのKickerアプリケーション起動メニューやNetworkManagerアプレットのネットワーク選択ダイアログなど、多くのポップアップメニューのサイズを変更する機能がPlasma 2から削除されました。 これは不便さをもたらし、DEの印象をいくらか損ないますが、幸いなことに、 回避策があります。 Dolphinファイルマネージャーなどの一部のアプリケーションは、まだQt5に完全に移植されていないため、Qt5を使用する場合よりも見た目が悪くなります。

異なるモニターで異なるDPIを使用する機能がありません。 さて、Qt 5.6を待ちます。

スクリーンショットでは、Fedora 22でデフォルトで使用されているDRI3ビデオサブシステムの素晴らしいバグを見ることができます-KSnapshotスクリーンショットは独自の保存ダイアログを削除しました。



メイト





Mateは、任意のDPI値の設定をサポートしています。 そのようなスケーリングはありませんが、多くのアプリケーションは任意のDPIをサポートしていますが、それらは場所を移動します。 アイコンは拡大縮小されません。 整数スケーリングが適切でない場合、DPI制限のあるモニターの所有者に適しています。 各モニターに個別のスケーリングはありません。



団結





Unityは、各モニターのスケーリングを個別にサポートする唯一のデスクトップ環境です。 残念ながら、DE自体の要素(左パネルとトップパネル、メインメニュー)のみが一緒にスケーリングされますが、アプリケーションはスケーリングされず、実際には実際の利点はありません。 Unityは、DPIを指定する代わりに、96のDPIベース値に基づいてスケールファクターを選択することをお勧めします。スライダーを1.75に設定して、DPIを168に設定します。

一般に、状況はGnome 3に似ていますが、UnityもGTK + 3で作成されているため、驚くことではありません。



2台のモニターで生活することは可能ですか

ツールキットとDEのいずれも異なるピクセル密度のモニターをサポートしておらず、すべてが大きすぎるか小さすぎるように見えますが、X11を使用して各モニターを個別にスケーリングすることは可能です。 これにより、たとえばラップトップが短時間プロジェクタに接続されている場合など、特別な問題なしに表示品質をあまり要求しない画像を表示できます。

このスケーリングを実装するには、ディスプレイの仮想解像度を低いDPIに設定し、X11を使用して元の解像度に下げる必要があります。



 xrandr --output LVDS1 --pos 0x0 --scale 2x2 --fb 6572x2160 xrandr --output DP1 --scale 1x1 --pos 2732x0
      
      





ここで、2x2は水平および垂直スケーリング係数であり、6572 = 1366 * 2 + 3840はスケーリングを考慮した両方のモニターの水平解像度の合計です。







おわりに

ピクセル密度が2倍(192 DPI)または3倍(288 DPI)のモニターを1つだけ使用する場合、ほとんどすべての最新のDEおよびアプリケーションを問題なく使用できます。 整数スケーリングが適切でない何らかの種類のDPI制限値(150、240)がある場合、または1つだけが高ピクセル密度である2つのモニターを頻繁に使用する場合は、X11ツールを使用してスケーリングを行う必要があります。ぼやけたフォントを見ています。 Qt 5.6の登場により状況がさらに良くなり、そこでGTK + 3が強化されることが期待されています。



有用性

xsettingsd-非Gnome環境からGTK + 3アプリケーションを再起動せずにDPIアプリケーション

サポートされていないビデオカードでは高解像度を使用します



All Articles