From Xfce Docs :
DPI(dots per inch)の値Xサーバーで計算を上書きする場合は、チェックボックスを選択し、スピンボックスを使用して、画面がフォントをレンダリングするときに使用する解像度を指定できます。
しかしhow Xサーバーはその計算を行いますか?プロセスでどのような仮定が行われ、一部のパラメーターをオーバーライドできますか?
ディスプレイにあるピクセル数はわかっているかもしれませんが、それで十分ですか?
私の知る限り、バージョン1.7以降、xorg
デフォルトは96 dpi
です。 DisplaySize
設定ファイルでXorg
を指定しない限り、何も計算されません。また、xdpyinfo
出力に依存しないでください。
私のラップトップはIntel SandyBridgeで動作します。 Archlinuxの新規インストール時のXorg.0.log
からの抜粋:
(==) intel(0): DPI set to (96, 96)
ランニング
xdpyinfo | grep -E 'dimensions|resolution'
戻り値:
dimensions: 1600x900 pixels (423x238 millimeters)
resolution: 96x96 dots per inch
これは真実とはほど遠い。私 知っている 画面サイズは344x193
mmであるため、明らかにxdpyinfo
はピクセル解像度(1600x900
)とデフォルトの96 DPI
に基づいて物理サイズを計算します。追加した場合
........
DisplaySize 344 193
........
/etc/X11/xorg.conf.d/monitor.conf
で再起動すると、Xorg.0.log
は正しくレポートします。
(**) intel(0): Display dimensions: (344, 193) mm
(**) intel(0): DPI set to (118, 118)
ただし、xdpyinfo | grep -E 'dimensions|resolution'
は常に以下を返します。
dimensions: 1600x900 pixels (423x238 millimeters)
resolution: 96x96 dots per inch
それでも、Gnomeを使用しているため、視覚的な変更はありません。96 DPI
もgnome-settings-daemon
にハードコードされています。後者にパッチを適用した後、ネイティブ118 DPI
を楽しむことができます。しかし、それでも、xdpyinfo
は次のように返します。
dimensions: 1600x900 pixels (423x238 millimeters)
resolution: 96x96 dots per inch
XサーバーはDPIをどのように計算しますか?
XサーバーのDPIは、次の方法で決定されます。
-dpi
コマンドラインオプションが最も優先されます。DisplaySize
設定を使用して、画面の解像度を考慮してDPIを導出します。DisplaySize
が指定されていない場合、DDCからのモニターサイズ値を使用して、画面の解像度が指定されたDPIが導出されます。ディスプレイにあるピクセル数はわかっているかもしれませんが、それで十分ですか?
いいえ、仮想画面のサイズ(ピクセル単位)だけでなく、(通常)物理的な表示サイズ(ミリメートル単位)も認識します。ターミナルウィンドウで次のコマンドを実行すると、ディスプレイのサイズを確認できます。
~ $ xdpyinfo | grep dimension
dimensions: 1366x768 pixels (361x203 millimeters)
Xサーバーが行う計算は次のとおりです。
次のコマンドを使用して、Xサーバーが計算したDPIを確認できます。
~ $ xdpyinfo | grep resolution
resolution: 96x96 dots per inch
よさそうですね。
さらに読むために:
1インチあたりのドット数=ドット(ピクセル)/インチ(モニターの物理サイズ)。