HiDPI
HiDPI (High Dots Per Inch) ディスプレイとは、比較的小さい型で高解像度を誇るディスプレイのことで、Apple の "Retina Display" の名称でも知られています。Apple の製品やハイエンドの "ultrabook" でよく使われています。また、4K (Ultra HD) もしくは 5K モニターも含まれます。
今のところ全てのソフトウェアが高解像度モードで上手く動作するわけではありません。以下では HiDPI の画面での作業を快適する一般的な設定を記載しています。
目次
デスクトップ環境
GNOME
HiDPI を有効にするには、gsettings を使ってインターフェイスのスケールファクタを設定します:
gsettings set org.gnome.desktop.interface scaling-factor 2
設定をリセットしたいときは scaling-factor
を 1
に設定してください。
KDE
KDE には依然として HiDPI に問題が存在していますが、以下の設定を変更することで HiDPI のサポートを向上させることができます:
- フォントの dpi を拡大 (システム設定 → アプリケーションの外観 → フォント → Force font dpi。125, 144, 150 などの数字を入力してください)
- アイコンサイズを拡大 (システム設定 → アプリケーションの外観 → アイコン → 詳細。全てのアイコンで数値の高いアイコンサイズを選択してください)
Xfce
(設定マネージャにある) 設定エディタを開いて、xsettings
→ Xft
から DPI のパラメータを変更してください。Retina スクリーンでは 180 がぴったりです。
システムトレイのアイコンを拡大するには、システムトレイを右クリック (アイコンをクリックしないように、空きスペースや上部・下部のピクセルを右クリックしてください) → “Properties” → “Maximum icon size” を 32, 48, 64 などに設定してください。
Cinnamon
2.2 から HiDPI をサポートしています。GTK3 をリビルドしなくても、十分なサポートが得られます (例: ウィンドウの縁のサイズが正しく設定されます。Xfce では行われません)。
Enlightenment
E18 の場合、E 設定パネルを開いて下さい。Look → Scaling から、UI のスケール比を設定できます。MBPr 15" のネイティブ解像度なら 1.2 が丁度です。
X サーバーr
プログラムによっては物理的な横幅を使って DPI を検出します。例えば i3 (ソース) や Chromium (ソース) などが挙げられます。
X サーバーがモニターの物理的な寸法を正しく検出できているか確認するには、次を実行:
$ xdpyinfo | grep -B 2 resolution screen #0: dimensions: 3840x2160 pixels (536x301 millimeters) resolution: 182x182 dots per inch
上の例では 96 dpi の倍数を使うために (この場合 182 dpi)、少しだけ誤っている面積 (Dell UP2414Q は 527mm x 296mm なのに 536mm x 301mm になっている) を使っています。これは正確な DPI を使うよりも良い場合が多く、例えば i3 では Pango のフォントレンダリングがパリッとします。
xdpyinfo によって示された DPI が正しくない場合、修正方法は Xorg#画面サイズと DPI を見てください。
X Resources
X の設定をしてくれる GNOME, KDE, Xfce などのデスクトップ環境を使っていない場合、~/.Xresources
で手動で Xft の DPI を設定できます:
~/.Xresources
Xft.dpi: 180 Xft.autohint: 0 Xft.lcdfilter: lcddefault Xft.hintstyle: hintfull Xft.hinting: 1 Xft.antialias: 1 Xft.rgba: rgb
~/.xinitrc
に xrdb -merge ~/.Xresources
と記述するなどして X の起動時に設定が正しくロードされるようにしてください (詳しくは Xresources を参照)。
設定することでほとんどのツールキットやアプリケーションでフォントが正しく表示されるようになりますが、アイコンのサイズなどは変わりません。
ブラウザ
Firefox
Firefox の高度な設定のページ (about:config
) を開いて layout.css.devPixelsPerPx
パラメータを 2
に設定してください (2
は Retina スクリーンに合った数値です、必要に応じて数値を変更してください)。
Firefox バージョン 38 以降から、システム設定 (GTK+ 3.10) が適用されるようになっています [1]。
Chromium / Google Chrome
公式サポートはまだありません。次のスレッドを参照: https://code.google.com/p/chromium/issues/detail?id=143619 。公式にサポートされるまではデフォルトのページのズームサイズを 200% に設定してください (あまり良い対処方法ではありません)。
もし危険を顧みないのであれば、-Denable_hidpi=1
フラグを使って Chromium をリコンパイルすることで実験的な HiDPI スケーリングを使うことができます。ABS を使って chromium のパッケージソースをダウンロードして、PKGBUILD ファイルを編集してフラグを追加してください。このオプションはコンテキストメニューが一部壊れてしまいますが、インターフェイスやウェブページが最適化されます。
さらに、AUR から最新の Chrome パッケージを使うことで、chromium パッケージと同じように、--force-device-scale-factor
コマンドラインフラグを使ってブラウザを起動することができます。全てのコンテンツと ui、さらにタブやフォントサイズがスケールします。例:
google-chrome --force-device-scale-factor=2
このオプションを使う場合、スケールファクター1が通常のスケーリングです。少数点を使うこともできます。現時点では、メニューやフォームなどの UI が壊れてしまうので注意してください (chrome 39 現在)。バグレポートが issue に投げられています。
Opera
バージョン24から、--alt-high-dpi-setting=X
コマンドラインオプションを使って Opera を起動することで DPI を変更することができます。X は希望の DPI に置き換えて下さい。例えば、--alt-high-dpi-setting=144
なら Opera は DPI が144だと認識します。新しいバージョンの opera ではフォントの DPI 設定を使って DPI を自動で検出します (KDE の場合: force font DPI の設定)。
一般的にいって、Opera の HiDPI サポートは優れています。また、Chrome の blink レンダラを使って作成されているので、ほとんどの Chrome 拡張が動作します。HiDPI のサポートが上手く行っている Chrome として使うことができるでしょう。
メールクライアント
Thunderbird
Firefox を見て下さい。about:config
にアクセスするには、Edit → Preferences → Advanced → Config editor を開きます。
Skype
Skype は Qt のプログラムであり、別個に設定する必要があります。Skype の DPI 設定を変更することはできませんが、フォントサイズは変更することができます。qt4 をインストールして qtconfig-qt4
を実行して設定してください。
GUI ツールキット
Qt 5
Qt5 アプリケーションは QT_DEVICE_PIXEL_RATIO
環境変数を設定することで高い dpi で動かすことができます。この変数は整数に設定する必要があり、1.5 などと設定しても動作しないので注意してください。
この変数は、例えば /etc/profile.d/qt-hidpi.sh
ファイルを作成することで有効にできます:
export QT_DEVICE_PIXEL_RATIO=2
ファイルには実行可能属性を付与してください。
外部ディスプレイ
HiDPI の設定は全てのデスクトップに適用されるため HiDPI ではない外部ディスプレイには全てが大きく表示されてしまいます。xrandr のスケールオプションを使って回避することができます。HiDPI の内部ディスプレイ (eDP1) の右に HiDPI ではないモニター (DP1) がある場合、次を実行:
xrandr --output eDP1 --auto --output DP1 --auto --scale 2x2 --right-of eDP1
内部ディスプレイを拡張すると、外部ディスプレイに内部ディスプレイの一部が表示されることがあります。その場合、このスクリプトを使うなどしてポジションを手動で設定してください。
マウスが画面の全体で使えないという問題が発生することもあります。これは既知のバグであり xserver-org のパッチがあります (もしくはパンするという方法もありますが、別の問題が発生する可能性もあります)。
コンソール
デフォルトのコンソールフォントでは hidpi ディスプレイでとても小さくなってしまいます。一番巨大なフォントは sun12x22
であり、(一時的に) 有効にするには:
$ setfont sun12x22
詳しくはフォント#コンソールフォントを見てください。
参照
- Ultra HD 4K Linux Graphics Card Testing (Nov 2013)
- フォント設定