「HiDPI」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(Created page with "Category:グラフィック en:HiDPI '''HiDPI''' (High Dots Per Inch) ディスプレイとは、比較的小さい型で高解像度を誇るディスプレイの...")
 
(カテゴリを修正)
 
(5人の利用者による、間の29版が非表示)
1行目: 1行目:
[[Category:グラフィック]]
+
[[Category:グラフィック]]
 
[[en:HiDPI]]
 
[[en:HiDPI]]
  +
{{Related articles start}}
  +
{{Related|フォント設定}}
  +
{{Related articles end}}
 
'''HiDPI''' (High Dots Per Inch) ディスプレイとは、比較的小さい型で高解像度を誇るディスプレイのことで、Apple の "[[wikipedia:ja:レティナディスプレイ|Retina Display]]" の名称でも知られています。Apple の製品やハイエンドの "ultrabook" でよく使われています。
 
'''HiDPI''' (High Dots Per Inch) ディスプレイとは、比較的小さい型で高解像度を誇るディスプレイのことで、Apple の "[[wikipedia:ja:レティナディスプレイ|Retina Display]]" の名称でも知られています。Apple の製品やハイエンドの "ultrabook" でよく使われています。
   
7行目: 10行目:
 
== デスクトップ環境 ==
 
== デスクトップ環境 ==
   
=== GNOME 3 ===
+
=== GNOME ===
   
  +
HiDPI を有効にするには、Settings > Devices > Displays から有効にするか、gsettings を使ってインターフェイスのスケールファクタを設定します:
[[GNOME|GNOME]] は 3.10 から HiDPI をサポートするようになっています。ただし、このサポートはまだ完全な状態ではありません。
 
   
  +
$ gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "[{'Gdk/WindowScalingFactor', <2>}]"
{{Note|1={{Pkg|gtk3}} の 3.10 と 3.12 は {{Pkg|cairo}} の HiDPI サポートを必要としますが、最新リリース (cairo 1.12.16-2) ではまだこのサポートは含まれていません。GTK3 プログラムの完全な HiDPI サポートを有効にするには、{{AUR|cairo-git}} をビルドして、新しい cairo ライブラリを使うように {{Pkg|gtk3}} を再ビルドする必要があります。バグが {{Bug|40932}} で報告されています。ただし、AUR の {{AUR|cairo-git}} はデフォルトの PKGBUILD ではビルドできません。代わりに、[https://bbs.archlinux.org/viewtopic.php?pid=1425254#p1425254 フォーラムに投稿されている] PKGBUILD を使用して、35行目をコメントアウトしてください。}}
 
  +
$ gsettings set org.gnome.desktop.interface scaling-factor 2
   
  +
設定をリセットしたいときは {{ic|scaling-factor}} を {{ic|1}} に設定してください。
HiDPI を有効にするには、gsettings を使ってインターフェイスのスケールファクタを設定します:
 
   
  +
{{Note|1=GNOME では、整数のスケーリング数値しか設定できません。1 = 100%、2 = 200% などです。以下の [[#分数スケーリング]] を参照してください。}}
gsettings set org.gnome.desktop.interface scaling-factor 2
 
   
  +
==== 分数スケーリング ====
設定をリセットしたいときは {{ic|scaling-factor}} を {{ic|1}} に設定してください。
 
  +
{{ic|scaling-factor}} でできることは {{ic|2, 3, etc}} の設定だけですが、特定の HiDPI ディスプレイや小さなスクリーン (小さなタブレットなど) には理想的ではないかもしれません。Wayland と Xorg の両方で分数スケーリングは可能ですが、そのプロセスは異なります。
   
=== KDE ===
+
===== Wayland =====
  +
実験機能の分数スケーリングを有効化:
   
  +
$ gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"
[[KDE|KDE]] には依然として HiDPI に[https://community.kde.org/KDE/High-dpi_issues 問題]が存在していますが、以下の設定を変更することで HiDPI のサポートを向上させることができます:
 
   
  +
Settings > Devices > Displays から小数で設定できるようになります。
# フォントの dpi を拡大 (システム設定 → アプリケーションの外観 → フォント → Force font dpi。125, 144, 150 などの数字を入力してください)
 
  +
# アイコンサイズを拡大 (システム設定 → アプリケーションの外観 → アイコン → 詳細。全てのアイコンで数値の高いアイコンサイズを選択してください)
 
  +
===== Xorg =====
  +
{{ic|scaling-factor}} と [[xrandr]] を組み合わせることで整数以外のスケールファクタが使えます。{{ic|xrandr}} だけを使用したときのように TTF フォントが汚くなることはありません。
  +
  +
まずは [[GNOME]] をスケールさせます。2で小さすぎる場合は3以上を使ってください。
  +
$ gsettings set org.gnome.desktop.interface scaling-factor 2
  +
それから xrandr でズームアウトファクタを設定して小さくスケールします。まずは出力の名前を確認:
  +
{{hc|$ <nowiki>xrandr | grep -w connected | cut -d' ' -f1</nowiki>|eDP1}}
  +
  +
以下、確認できた値を {{ic|--output}} で指定するようにしてください。ディスプレイが複数ある場合はそれぞれで個々にスケールを設定できます。
  +
  +
1.2倍に拡大するには、以下のコマンドを実行:
  +
$ xrandr --output eDP1 --scale 1.2x1.2
  +
UI が大きすぎる場合、スケールを増やします:
  +
$ xrandr --output eDP1 --scale 1.25x1.25
  +
UI が小さすぎる場合、スケールを減らしてください。一番良い値を見つけるまで繰り返し実行してください。
  +
  +
最後に、マウスがスクリーンを正しく使えるように設定する必要があります。スケール後の解像度を取得してください:
  +
  +
{{hc|$ <nowiki>xrandr | grep eDP1</nowiki>|eDP1 connected primary 2304x1296+0+0 (normal left inverted right x axis y axis) 239mm x 134mm}}
  +
  +
確認できた値を使って以下のコマンドを実行:
  +
$ xrandr --output eDP1 --panning 2304x1296
  +
  +
==== テキストスケーリング ====
  +
  +
また、表示倍率を変更するだけでなく、テキストを個別に倍率変更することも可能です。これは Gnome Tweaks の ''Fonts > Scaling Factor'' に移動するか、gsettings を使うことで行えます。テキストのスケーリングファクターは整数である必要はないことに注意してください。
  +
  +
$ gsettings set org.gnome.desktop.interface text-scaling-factor 1.5
  +
  +
===== Xorg 上での GTK+ と Gnome Shell の要素の比較 =====
  +
  +
上記のようにテキストのスケーリングを調整することは、GNOME デスクトップの GTK+ 要素にのみ影響します。これで Wayland 上のすべてをカバーできるはずです。なぜなら、GNOME Shell UI (トップバー、ドック、アプリケーション・メニューなどを含む) は別途 [https://developer.gnome.org/st/stable/ St]{{Dead link|2021|11|11|status=404}} ツールキットに依存しているためです。これは長年の問題で、Gnome Shell 3.35 以降では [https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/486 パッチ] がマージされ、利用可能になっていることに注意してください。古いリリースでは、Xorg ユーザーは現在使用しているシェルテーマを手動で編集することで、Gnome シェルのスケーリング問題のほとんどを解決することができます。関連する CSS ファイルは通常 {{ic|/usr/share/themes/YOUR-THEME/gnome-shell/gnome-shell.css}} に配置されています。ユーザーは、このファイル内のすべての "font-size" 要素を、ディスプレイのスケーリングに比例して大きくする必要があります(200%のスケーリングにはフォントサイズを2倍にするなど)たとえば、[https://github.com/adapta-project/adapta-gtk-theme Adapta] シェルテーマ用に編集した CSS ファイルのトップは、以下のようになります。
  +
  +
{{hc|usr/share/themes/Adapta/gnome-shell/gnome-shell.css|2=
  +
stage { font-size: 20pt; font-family: Roboto, Noto Sans, Sans-Serif; color: #263238; }
  +
}}
  +
  +
これらの変更が保存されたら、別のテーマに切り替えて(たとえば、{{pkg|gnome-tweaks}} を使用して)、再度元に戻してアクティブにします。これで、トップバー、アプリケーションメニュー、カレンダー、およびその他のシェル要素が正しくスケーリングされるはずです。
  +
  +
関連するシェルテーマの CSS ファイルを編集することに加えて、Xorg のユーザーは、開いているアプリケーションの上部にあるタイトルバーのフォントを増やしたい場合もあります。これは、dconf エディター ({{ic|org > gnome > desktop > wm > preferences :: titlebar-font}})を介して実行できます。 {{ic|title-bar-uses-system-fonts}} オプションもオフにする必要があることに注意してください。または、gsettings を使用します:
  +
  +
$ gsettings set org.gnome.desktop.wm.preferences titlebar-font 'Cantarell Bold 22' ## Change as needed
  +
$ gsettings set org.gnome.desktop.wm.preferences titlebar-uses-system-font false
  +
  +
=== KDE Plasma ===
  +
  +
KDE の設定を使ってフォント・アイコン・ウィジェットのスケーリングを調整できます。Qt と GTK+ 両方のアプリケーションに適用されます。
  +
  +
フォント・ウィジェット・アイコン全てのスケーリングを変更するには:
  +
  +
# システム設定 → ディスプレイとモニター → ディスプレイの設定 → ディスプレイのスケール
  +
# スライダーをドラッグして適当なサイズを設定してください。
  +
# 再起動することで変更が適用されます。
  +
  +
フォントのスケーリングだけ変更するには:
  +
  +
# システム設定 → フォント
  +
# "Force fonts DPI" にチェックを入れて DPI レベルを適当な値に設定してください。新しく起動したアプリケーションから即座に変更が適用されます。Plasma デスクトップに変更を適用するには一度ログアウトする必要があります。
  +
  +
アイコンのスケーリングだけ変更するには:
  +
  +
# System Settings → Icons → Advanced
  +
# カテゴリごとに適切なアイコンサイズを選択してください。変更はすぐに適用されます。
  +
  +
==== 固定サイズのトレイアイコン ====
  +
  +
Plasma は Qt のスケーリング設定をデフォルトでは無視するため、トレイアイコンはスケールしません。Plasma に Qt の設定を反映させるには、{{ic|PLASMA_USE_QT_SCALING}} [[環境変数]]を {{ic|1}} に設定してください。
   
 
=== Xfce ===
 
=== Xfce ===
   
(設定マネージャにある) 設定エディタを開いて、{{ic|xsettings}} {{ic|Xft}} から DPI のパラメータを変更してください。Retina スクリーンでは 180 がぴったりです。
+
[[Xfce]] の設定マネージャ→外観→フォントから DPI のパラメータを変更してください。Retina スクリーンでは 180 または 192 がぴったりです。正確な数字を得たいときは、{{ic|$ <nowiki>xdpyinfo | grep resolution</nowiki>}} を実行して得た数字を2倍してください
   
 
システムトレイのアイコンを拡大するには、システムトレイを右クリック (アイコンをクリックしないように、空きスペースや上部・下部のピクセルを右クリックしてください) → “Properties” → “Maximum icon size” を 32, 48, 64 などに設定してください。
 
システムトレイのアイコンを拡大するには、システムトレイを右クリック (アイコンをクリックしないように、空きスペースや上部・下部のピクセルを右クリックしてください) → “Properties” → “Maximum icon size” を 32, 48, 64 などに設定してください。
34行目: 107行目:
 
=== Cinnamon ===
 
=== Cinnamon ===
   
2.2 から HiDPI をサポートしています。GTK3 をリビルドしなくても、十分なサポートが得られます (例: ウィンドウの縁のサイズが正しく設定されます。Xfce では行われません)。
+
[[Cinnamon]] は 2.2 から HiDPI をサポートしています。GTK3 をリビルドしなくても、十分なサポートが得られます (例: ウィンドウの縁のサイズが正しく設定されます。Xfce では行われません)。
   
 
=== Enlightenment ===
 
=== Enlightenment ===
   
E18 の場合、E 設定パネルを開いて下さい。Look → Scaling から、UI のスケール比を設定できます。MBPr 15" のネイティブ解像度なら 1.2 が丁度です。
+
[[Enlightenment|E18]] の場合、E 設定パネルを開いて下さい。Look → Scaling から、UI のスケール比を設定できます。MBPr 15" のネイティブ解像度なら 1.2 が丁度です。
  +
  +
== X サーバー ==
  +
  +
プログラムによっては物理的な横幅を使って DPI を検出します。例えば i3 ([https://github.com/i3/i3/blob/next/libi3/dpi.c ソース]) や Chromium ([https://code.google.com/p/chromium/codesearch#chromium/src/ui/views/widget/desktop_aura/desktop_screen_x11.cc ソース]) などが挙げられます。
  +
  +
X サーバーがモニターの物理的な寸法を正しく検出できているか確認するには、次を実行 (''xdpyinfo'' ユーティリティは {{Pkg|xorg-xdpyinfo}} パッケージに含まれています):
  +
  +
$ xdpyinfo | grep -B 2 resolution
  +
screen #0:
  +
dimensions: 3200x1800 pixels (423x238 millimeters)
  +
resolution: 192x192 dots per inch
  +
  +
上の例では 96 dpi の倍数を使うために (この場合 192 dpi)、少しだけ誤っている面積 (Dell XPS 9530 は 346mm x 194mm なのに 423mm x 328mm になっている) を使っています。これは正確な DPI を使うよりも良い場合が多く、例えば i3 では Pango のフォントレンダリングがパリッとします。
  +
  +
xdpyinfo によって示された DPI が正しくない場合、修正方法は [[Xorg#画面サイズと DPI]] を見てください。
  +
  +
== X Resources ==
  +
  +
X の設定をしてくれる GNOME, KDE, Xfce などのデスクトップ環境を使っていない場合、{{ic|~/.Xresources}} で手動で Xft の DPI を設定できます:
  +
  +
{{hc|~/.Xresources|<nowiki>
  +
Xft.dpi: 180
  +
Xft.autohint: 0
  +
Xft.lcdfilter: lcddefault
  +
Xft.hintstyle: hintfull
  +
Xft.hinting: 1
  +
Xft.antialias: 1
  +
Xft.rgba: rgb
  +
</nowiki>}}
  +
  +
{{ic|~/.xinitrc}} に {{ic|xrdb -merge ~/.Xresources}} と記述するなどして X の起動時に設定が正しくロードされるようにしてください (詳しくは [[Xresources]] を参照)。
  +
  +
設定することでほとんどのツールキットやアプリケーションでフォントが正しく表示されるようになりますが、アイコンのサイズなどは変わりません。また、ツールキットのスケール (例: {{ic|GDK_SCALE}}) と一緒に {{ic|Xft.dpi}} を設定した場合、Firefox などのプログラムでインターフェイスの表示が大きくなりすぎることがあります。
  +
  +
== GUI ツールキット ==
  +
  +
=== Qt 5 ===
  +
  +
X サーバーで DPI の値を変えられない場合でも、[[Qt]] アプリケーションには HiDPI でちゃんと表示されるようにする方法があります。
  +
  +
Qt 5.6 から、Qt 5 アプリケーションは {{ic|QT_AUTO_SCREEN_SCALE_FACTOR}} 環境変数によって設定された画面 DPI を使用するようになりました。例えば {{ic|/etc/profile.d/qt-hidpi.sh}} ファイルを作成し、以下を記述して実行可能属性を付与します:
  +
  +
export QT_AUTO_SCREEN_SCALE_FACTOR=1
  +
  +
DPI の自動検知が上手くいかない場合、スケーリングをスクリーンごと ({{ic|QT_SCREEN_SCALE_FACTORS}})、あるいは全てのスクリーン ({{ic|QT_SCALE_FACTOR}}) に手動で設定することができます。詳しくは [https://blog.qt.io/blog/2016/01/26/high-dpi-support-in-qt-5-6/ Qt のブログ記事] を参照してください。
  +
  +
{{Note|startkde スクリプトによって上記の変数は unset されるため、KDE では X サーバーで設定された DPI による解像度を優先します。}}
  +
  +
手動でスクリーンファクタを設定した場合、{{ic|1=QT_AUTO_SCREEN_SCALE_FACTOR=0}} を設定しないと明示的に高 DPI を有効にしている一部のアプリケーションも2倍にスケールされてしまいます。このため KDE ではスケールの手動設定を無効にしています。
  +
  +
* {{ic|QT_SCALE_FACTOR}} はフォントを拡大します。
  +
* {{ic|QT_SCREEN_SCALE_FACTORS}} はフォントを拡大しません。
  +
  +
他のツールキットでも設定を適用するために xrdb でフォントの DPI を手動で設定していた場合、{{ic|QT_SCALE_FACTORS}} はかなり巨大なフォントを表示するようになります。
  +
  +
=== GDK 3 (GTK+ 3) ===
  +
  +
[[GTK+]] 3 アプリケーションで 2倍に UI エレメントを拡大するには:
  +
  +
$ export GDK_SCALE=2
  +
  +
テキストのスケーリングを戻すには:
  +
  +
$ export GDK_DPI_SCALE=0.5
  +
  +
=== GTK+ 2 ===
  +
  +
ツールキットによる UI エレメントの拡大は不可能ですが、{{AUR|oomox-git}} を使用することで HiDPI ディスプレイ用にあらかじめ拡大されたエレメントを使用するテーマを生成できます。
  +
  +
=== Elementary (EFL) ===
  +
  +
UI のエレメントを1.5倍に拡大するには:
  +
  +
$ export ELM_SCALE=1.5
  +
  +
詳しくは https://phab.enlightenment.org/w/elementary/ を参照。
  +
  +
== ブートマネージャ ==
  +
  +
=== GRUB ===
  +
  +
==== フレームバッファの解像度を低くする ====
  +
  +
[[GRUB/ヒントとテクニック#フレームバッファの解像度を設定する]]を見てください。
  +
  +
==== GRUB フォントのサイズを変更する ====
  +
  +
大きなサイズのフォントを使用する方法があります。{{Pkg|ttf-dejavu}} パッケージに含まれている DejaVu Sans Mono フォントでサイズが 36 の GRUB フォントを生成:
  +
  +
# grub-mkfont --output=/boot/grub/fonts/DejaVuSansMono36.pf2 --size=36 /usr/share/fonts/TTF/DejaVuSansMono.ttf
  +
  +
{{ic|1=/etc/default/grub}} に {{ic|1=GRUB_FONT}} 行を追加することで GRUB から生成したフォントを使用できます:
  +
  +
{{hc|1=/etc/default/grub|2=GRUB_FONT=/boot/grub/fonts/DejaVuSansMono36.pf2}}
  +
  +
最後に GRUB の設定を更新してください:
  +
  +
# grub-mkconfig -o /boot/grub/grub.cfg
  +
  +
=== systemd-boot ===
  +
  +
次の行を追加して {{ic|bootctl update}} を実行すると、[[systemd-boot#Loader_configuration|systemd-boot]] メニューのフォントサイズが大きくなります。
  +
  +
{{hc|/boot/loader/loader.conf|2=
  +
console-mode 1
  +
}}
  +
  +
== アプリケーション ==
  +
  +
=== ブラウザ ===
  +
  +
==== Firefox ====
  +
  +
[[Firefox]] は [[#GDK 3 (GTK+ 3)|GDK 3 (GTK+ 3)]] の設定を使用します。しかしながら {{ic|GDK_SCALE}} では Firefox を完全にはスケールされず、小数値は使えません。代わりに {{ic|GDK_DPI_SCALE}} を使用すると良いでしょう。
  +
  +
GTK の設定を上書きしたい場合、Firefox の高度な設定のページ ({{ic|about:config}}) を開いて {{ic|layout.css.devPixelsPerPx}} パラメータを {{ic|2}} に設定してください ({{ic|2}} は Retina スクリーンに合った数値です、必要に応じて数値を変更してください)。メニューや URL バーのフォントが小さい場合は {{ic|userChrome.css}} ファイルを作成することで明示的にフォントサイズを設定できます ({{ic|userChrome.css}} について詳しくは [http://kb.mozillazine.org/index.php?title=UserChrome.css mozillaZine] を参照):
  +
  +
{{hc|~/.mozilla/firefox/<em><profile></em>/chrome/userChrome.css|@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
  +
  +
/* #tabbrowser-tabs, #navigator-toolbox, menuitem, menu, ... */
  +
* {
  +
font-size: 15px !important;
  +
}
  +
  +
/* exception for badge on adblocker */
  +
.toolbarbutton-badge {
  +
font-size: 8px !important;
  +
}
  +
}}
  +
  +
Retina ディスプレイのような HiDPI ディスプレイを他のモニターと組み合わせて使っている場合、[https://addons.mozilla.org/firefox/addon/autohidpi/ AutoHiDPI] アドオンを使うことで有効なディスプレイに合わせて {{ic|layout.css.devPixelsPerPx}} を自動的に調整できます。また、Firefox バージョン 49 から、ディレプレイの解像度にあわせて自動的にスケールするようになっています。
  +
  +
==== Chromium / Google Chrome ====
  +
  +
Chromium は [[#GDK 3 (GTK+ 3)|GDK 3 (GTK+ 3)]] の設定を使用します。
  +
  +
上書きしたい場合、{{ic|1=--force-device-scale-factor}} フラグを使ってスケール値を設定してください。全てのコンテンツと ui、さらにタブやフォントサイズがスケールします。例:
  +
  +
$ chromium --force-device-scale-factor=2
  +
  +
このオプションを使う場合、スケールファクター {{ic|1}} が通常のスケーリングです。少数点を使うこともできます。
  +
  +
変更を永続化したい場合、{{ic|~/.config/chromium-flags.conf}} にフラグを追加してください ([[Chromium]] の場合):
  +
  +
{{hc|~/.config/chromium-flags.conf|2=--force-device-scale-factor=2}}
  +
  +
Retina ディスプレイのような HiDPI モニターと別のモニターを一緒に使用する場合、[https://chrome.google.com/webstore/detail/resolution-zoom/enjjhajnmggdgofagbokhmifgnaophmh reszoom] 拡張を使うことで使用しているディスプレイにあわせてズームレベルを自動的に調整することができます。
  +
  +
==== Opera ====
  +
  +
Opera は [[#GDK 3 (GTK+ 3)|GDK 3 (GTK+ 3)]] の設定を使用します。
  +
  +
上書きしたい場合、バージョン24から、{{ic|1=--alt-high-dpi-setting=X}} コマンドラインオプションを使って [[Opera]] を起動することで DPI を変更することができます。X は希望の DPI に置き換えて下さい。例えば、{{ic|1=--alt-high-dpi-setting=144}} なら Opera は DPI が144だと認識します。新しいバージョンの opera ではフォントの DPI 設定を使って DPI を自動で検出します (KDE の場合: force font DPI の設定)。
  +
  +
=== メールクライアント ===
  +
  +
==== Thunderbird ====
  +
  +
[[#Firefox|Firefox]] を見てください。{{ic|about:config}} にアクセスするには、Edit → Preferences → Advanced → Config editor を開きます。
  +
  +
=== Wine アプリケーション ===
  +
  +
次を実行して、"画面"タブの"画面の解像度"設定を変更してください:
  +
$ winecfg
  +
フォントのサイズにだけ影響を与えます。
  +
  +
=== Skype ===
  +
  +
Skype for Linux ({{AUR|skypeforlinux-stable-bin}}) は [[#GDK 3 (GTK+ 3)|GTK+ 3]] を使用しています。
  +
  +
=== Spotify ===
  +
  +
[[Spotify]] はスケーリングファクタを指定して起動することができます。例:
  +
$ spotify --force-device-scale-factor=1.5
  +
  +
Spotify の {{ic|.desktop}} ファイルを上書きすることもできます。ファイルをコピーしてください:
  +
$ cp /usr/share/applications/spotify.desktop ~/.local/share/applications/
  +
  +
それからファイルを編集して {{ic|--force-device-scale-factor}} オプションを追加してください:
  +
  +
[Desktop Entry]
  +
Name=Spotify
  +
GenericName=Music Player
  +
Comment=Spotify streaming music client
  +
Icon=spotify-client
  +
Exec=spotify %U --force-device-scale-factor=1.5
  +
TryExec=spotify
  +
Terminal=false
  +
Type=Application
  +
Categories=Audio;Music;Player;AudioVideo;
  +
MimeType=x-scheme-handler/spotify;
  +
  +
=== Sublime Text 3 ===
  +
Sublime Text 3 はディスプレイスケーリングを完全にサポートしています。Preferences > Settings > User Settings から {{ic|"dpi_scale": 2.0}} を設定に追加してください [http://blog.wxm.be/2014/08/30/sublime-text-3-and-high-dpi-on-linux.html]。
  +
  +
=== IntelliJ IDEA ===
  +
  +
[[IntelliJ IDEA]] の HiDPI サポートが機能しない場合、vmoptions ファイルに {{ic|1=-Dhidpi=true}} を追加してください [https://youtrack.jetbrains.com/issue/IDEA-114944]:
  +
/usr/share/intellij-idea-ultimate-edition/bin/idea.vmoptions
  +
/usr/share/intellij-idea-ultimate-edition/bin/idea64.vmoptions
  +
  +
もしくは、{{ic|$HOME}} ディレクトリの {{ic|.vmoptions}} ファイルに以下を追加します:
  +
  +
echo -Dhidpi=true >> $HOME/.IdeaIC14/idea64.vmoptions
  +
  +
=== NetBeans ===
  +
  +
[[Netbeans]] では {{ic|1=--fontsize}} パラメータを使うことで起動時にインターフェイスのフォントのサイズを変更することができます。変更を永続的にするには、{{ic|1=/usr/share/netbeans/etc/netbeans.conf}} ファイルを編集して {{ic|1=netbeans_default_options}} プロパティに {{ic|1=--fontsize}} パラメータを追加してください [http://wiki.netbeans.org/FaqFontSize]。
  +
  +
エディタのフォントサイズは Tools → Option → Fonts & Colors から変えられます。
  +
  +
出力ウィンドウのフォントサイズは Tools → Options → Miscelaneous → Output から変えられます。
  +
  +
=== GIMP 2.8 ===
  +
  +
[[GIMP]] の場合、HiDPI 対応のテーマを使用するか、既存のテーマの {{ic|1=gtkrc}} を変更してください。例えば {{ic|1=GimpToolPalette::tool-icon-size}} を {{ic|1=dialog}} に設定します。
  +
  +
HiDPI ディスプレイ用のテーマである [https://github.com/jedireza/gimp-hidpi gimp-hidpi] も存在します。
  +
  +
=== Steam ===
  +
  +
==== 公式 HiDPI サポート ====
  +
  +
2018年1月25日のベータプログラムから Steam は HiDPI をサポートし自動的に認識します。自動的に認識されない場合、{{ic|1=GDK_SCALE=2}} を使って適当なスケールファクタを設定してください。
  +
  +
==== 非公式 ====
  +
  +
[https://github.com/MoriTanosuke/HiDPI-Steam-Skin HiDPI-Steam-Skin] をインストールすることで [[Steam]] のインターフェイスのフォントサイズを大きくすることができます。完全ではありませんが、可読性は向上します。
  +
  +
{{Note|スキンは {{ic|1=~/.local/share/Steam/skins}} にダウンロードしてください。README に書かれている {{ic|1=~/.steam/skins/}} ではありません。}}
  +
  +
[https://steamcommunity.com/groups/metroskin/discussions/0/517142253861033946/ MetroSkin Unofficial Patch] も HiDPI 環境の Linux で Steam を使う場合に役立ちます。
  +
  +
=== Java アプリケーション ===
  +
  +
AWT/Swing フレームワークを使用する [[Java]] アプリケーションは java を起動するときに {{ic|sun.java2d.uiScale}} 変数を定義することでスケールを設定できます。例:
  +
  +
$ java -Dsun.java2d.uiScale=2 -jar some_application.jar
  +
  +
=== Mono アプリケーション ===
  +
  +
[[Mono]] アプリケーションは [[#GDK 3 (GTK+ 3)|GTK3]] アプリケーションと同じようにスケールします [https://bugzilla.xamarin.com/show_bug.cgi?id=35870]。
  +
  +
=== MATLAB ===
  +
  +
新しいバージョンの [[Matlab]] (R2017b) ではスケールファクタを設定できます:
  +
>> s = settings;s.matlab.desktop.DisplayScaleFactor
  +
>> s.matlab.desktop.DisplayScaleFactor.PersonalValue = 2
  +
  +
設定を適用するには MATLAB の再起動が必要です。
  +
  +
=== VirtualBox ===
  +
  +
{{Note|以下の問題はスケーリングを有効にした KDE でのみ発生します。}}
  +
  +
[[VirtualBox]] はシステム全体のスケーリングを仮想モニターにも適用するため、仮想マシンの最大解像度が小さくなってしまいます ([https://www.virtualbox.org/ticket/16604] を参照)。
  +
  +
スケーリングファクタの逆数を計算して VirtualBox を実行するときに新しいスケーリングファクタを手動で設定することで問題を解決できます。例:
  +
$ QT_SCALE_FACTOR=0.5 VirtualBox --startvm vm-name
  +
  +
=== Fcitx ===
  +
  +
Fcitx の preedit {{ic|FontSize}} は {{ic|~/.config/fcitx/conf/fcitx-classic-ui.config}} で変更できます。
  +
  +
=== 他のアプリケーション ===
  +
  +
{{AUR|run_scaled-git}} を使うことでアプリケーションをスケールすることができます ([[Xpra]] が内部的に使われています)。
  +
  +
他にも、アプリケーションを VNC デスクトップでフルスクリーンで実行して、装飾を省かせるという方法があります。それからビューアを拡大します。Vncdesk ([[AUR]] の {{AUR|vncdesk-git}} でインストールできます) では、アプリケーションごとにデスクトップを設定することができます。{{ic|vncdesk 2}} などのシンプルなコマンドでサーバーとクライアントを起動します。
  +
  +
[[x11vnc]] には実験的なオプションとして {{ic|-appshare}} があり、アプリケーションウィンドウごとにビューアを開きます。
  +
  +
== マルチディスプレイ ==
  +
  +
HiDPI の設定は全てのデスクトップに適用されるため HiDPI ではない外部ディスプレイには全てが大きく表示されてしまいます。
  +
  +
=== 外部ディスプレイ ===
  +
  +
[[xrandr]] のスケールオプションを使って回避することができます。HiDPI の内部ディスプレイ (eDP-1) の右に HiDPI ではないモニター (DP-1) がある場合、次を実行:
  +
  +
$ xrandr --output eDP-1 --auto --output DP-1 --auto --scale 2x2 --right-of eDP-1
  +
  +
内部ディスプレイを拡張すると、外部ディスプレイに内部ディスプレイの一部が表示されることがあります。その場合、[https://gist.github.com/wvengen/178642bbc8236c1bdb67 このスクリプト] を使うなどしてポジションを手動で設定してください。
  +
  +
マウスが画面の全体で使えないという問題が発生することもあります。これは [https://bugs.freedesktop.org/show_bug.cgi?id=39949 既知のバグ] であり xserver-org のパッチがあります (もしくはパンするという方法もありますが、別の問題が発生する可能性もあります)。
  +
  +
4k のノートパソコンの右に外付けの 1920x1080 モニターを縮小して右に表示させる例:
  +
  +
$ xrandr --output eDP-1 --auto --output HDMI-1 --auto --panning 3840x2160+3840+0 --scale 2x2 --right-of eDP-1
  +
  +
hidpi のモニターが AxB ピクセルで通常のモニターが CxD、そして [ExF] でスケールする場合、コマンドは以下のようになります:
  +
  +
$ xrandr --output eDP-1 --auto --output HDMI-1 --auto --panning [C*E]x[D*F]+[A]+0 --scale [E]x[F] --right-of eDP-1
  +
  +
{{Note|1=上記の {{ic|--scale 2x2}} は一部の Nvidia カードでは機能しません。現在のところ解決方法は見つかっていません [https://bbs.archlinux.org/viewtopic.php?pid=1670840]。{{ic|nvidia-settings}} を使って {{ic|CurrentMetaMode}} で {{ic|1=ForceFullCompositionPipeline=On}} を設定することで一時的に回避することができます。詳しくは [https://askubuntu.com/a/979551/763549] を参照。}}
  +
  +
=== 複数の外部ディスプレイ ===
  +
外部ディスプレイが複数あって、DPI が異なるとスケーリングに問題が起こる場合があります。そのようなときは、代わりに HiDPI ディスプレイをダウンスケールしてみてください。例:
  +
  +
xrandr --output eDP1 --scale 0.5x0.5 --output DP2 --right-of eDP1 --output HDMI1 --right-of DP2
  +
  +
HiDPI ディスプレイをダウンスケールすると、HiDPI ディスプレイに表示されるフォントがぼやけますが、外部ディスプレイをアップスケールしたときに発生する滲みとは多少違います。どちらが良いか比較して決めてください。
   
== ウザ ==
+
=== ーリング ===
   
  +
ディスプレイをミラーしたい場合、簡単にできます:
=== Firefox ===
 
   
  +
HiDPI の解像度が AxB で、外部ディスプレイの解像度が CxD の場合:
[[Firefox|Firefox]] の高度な設定のページ ({{ic|about:config}}) を開いて {{ic|layout.css.devPixelsPerPx}} パラメータを {{ic|2}} に設定してください ({{ic|2}} は Retina スクリーンに合った数値です、必要に応じて数値を変更してください)。
 
   
  +
$ xrandr --output HDMI --scale [A/C]x[B/D]
他のモニターと一緒に Retina ディスプレイのような HiDPI モニターを使用する場合、[https://addons.mozilla.org/en-US/firefox/addon/autohidpi/ AutoHiDPI] アドオンを使うことでアクティブなスクリーンに対して自動で {{ic|layout.css.devPixelsPerPx}} 設定を調整させることができます。
 
   
  +
例えば QHD の場合 (3200/1920 = 1.66 と 1800/1200 = 1.5):
=== Chromium / Google Chrome ===
 
   
  +
$ xrandr --output HDMI --scale 1.66x1.5
公式サポートはまだありません。次のスレッドを参照: https://code.google.com/p/chromium/issues/detail?id=143619 。公式にサポートされるまではデフォルトのページのズームサイズを 200% に設定してください (あまり良い対処方法ではありません)。
 
   
  +
UHD から 1080p の場合 (3840/1920=2 2160/1080=2):
もし危険を顧みないのであれば、{{ic|1=-Denable_hidpi=1}} フラグを使って [[Chromium|Chromium]] をリコンパイルすることで実験的な HiDPI スケーリングを使うことができます。[[ABS|ABS]] を使って {{Pkg|chromium}} のパッケージソースをダウンロードして、[[PKGBUILD|PKGBUILD]] ファイルを編集してフラグを追加してください。このオプションはコンテキストメニューが一部壊れてしまいますが、インターフェイスやウェブページが最適化されます。
 
   
  +
$ xrandr --output HDMI --scale 2x2
=== Opera ===
 
   
  +
スケーリングによって画面が霞むときは、モニター設定で"シャープネス"パラメータを調整してください。
バージョン24から、{{ic|1=--alt-high-dpi-setting=X}} コマンドラインオプションを使って [[Opera|Opera]] を起動することで DPI を変更することができます。X は希望の DPI に置き換えて下さい。例えば、{{ic|1=--alt-high-dpi-setting=144}} なら Opera は DPI が144だと認識します。
 
   
== ールクライアント ==
+
=== ール ===
   
  +
上記のようなコマンドを自動化するツールがいくつかあります。
=== Thunderbird ===
 
   
  +
* [https://gist.github.com/wvengen/178642bbc8236c1bdb67 このスクリプト]は、非 HiDPI 外部ディスプレイを HiDPI 内部ディスプレイの上に拡張します。
[[#Firefox|Firefox]] を見て下さい。{{ic|about:config}} にアクセスするには、Edit → Preferences → Advanced → Config editor を開きます。
 
  +
* [https://github.com/ashwinvis/xrandr-extend xrandr-extend].
  +
* {{AUR|xlayoutdisplay}} は xrandr の CLI フロントエンドで、正しい DPI を検出し設定します。 [https://github.com/alex-courtis/xlayoutdisplay README]
   
== Skype ==
+
== Linux コンソール ==
   
  +
デフォルトのコンソールフォントでは hidpi ディスプレイでとても小さくなってしまいます。{{Pkg|kbd}} パッケージに含まれている一番巨大なフォントは {{ic|latarcyrheb-sun32}} であり、(一時的に) 有効にするには:
[[Skype|Skype]] は [[Qt|Qt]] のプログラムであり、別個に設定する必要があります。Skype の DPI 設定を変更することはできませんが、フォントサイズは変更することができます。{{Pkg|qt4}} をインストールして {{ic|qtconfig-qt4}} を実行して設定してください。
 
   
  +
$ setfont latarcyrheb-sun32
== 外部ディスプレイ ==
 
   
  +
{{Pkg|terminus-font}} など他のパッケージには大きいフォントとして {{ic|ter-132n}}(normal) や {{ic|ter-132b}}(bold) が含まれています。詳しくは[[フォント#コンソールフォント]]を見てください。
HiDPI の設定は全てのデスクトップに適用されるため HiDPI ではない外部ディスプレイには全てが大きく表示されてしまいます。[[xrandr]] のスケールオプションを使って回避することができます。HiDPI の内部ディスプレイ (eDP1) の右に HiDPI ではないモニター (DP1) がある場合、次を実行:
 
   
  +
フォントを変更した場合、他の仮想端末 ({{ic|tty2-6}}) に切り替えたときに問題が発生することがあります。KMS の[[カーネルモード設定#モードと EDID を強制する|特定のモード]] (例: {{ic|1=video=2560x1600@60}}) を強制的に使うように設定して再起動することで問題は解決します (使用している HiDPI ディスプレイのネイティブ解像度にあわせて設定してください)。
xrandr --output eDP1 --auto --output DP1 --auto --scale 2x2 --right-of eDP1
 
   
  +
== 参照 ==
内部ディスプレイを拡張すると、外部ディスプレイに内部ディスプレイの一部が表示されることがあります。その場合、[https://gist.github.com/wvengen/178642bbc8236c1bdb67 このスクリプト]を使うなどしてポジションを手動で設定してください。
 
   
  +
* [https://www.phoronix.com/scan.php?page=article&item=linux_uhd4k_gpus Ultra HD 4K Linux Graphics Card Testing] (2013年11月)
マウスが画面の全体で使えないという問題が発生することもあります。これは[https://bugs.freedesktop.org/show_bug.cgi?id=39949 既知のバグ]であり xserver-org のパッチがあります (もしくはパンするという方法もありますが、別の問題が発生する可能性もあります)。
 
  +
* [http://www.eizo.com/library/basics/pixel_density_4k/ Understanding pixel density]

2024年9月3日 (火) 22:38時点における最新版

関連記事

HiDPI (High Dots Per Inch) ディスプレイとは、比較的小さい型で高解像度を誇るディスプレイのことで、Apple の "Retina Display" の名称でも知られています。Apple の製品やハイエンドの "ultrabook" でよく使われています。

今のところ全てのソフトウェアが高解像度モードで上手く動作するわけではありません。以下では HiDPI の画面での作業を快適する一般的な設定を記載しています。

デスクトップ環境

GNOME

HiDPI を有効にするには、Settings > Devices > Displays から有効にするか、gsettings を使ってインターフェイスのスケールファクタを設定します:

$ gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "[{'Gdk/WindowScalingFactor', <2>}]"
$ gsettings set org.gnome.desktop.interface scaling-factor 2

設定をリセットしたいときは scaling-factor1 に設定してください。

ノート: GNOME では、整数のスケーリング数値しか設定できません。1 = 100%、2 = 200% などです。以下の #分数スケーリング を参照してください。

分数スケーリング

scaling-factor でできることは 2, 3, etc の設定だけですが、特定の HiDPI ディスプレイや小さなスクリーン (小さなタブレットなど) には理想的ではないかもしれません。Wayland と Xorg の両方で分数スケーリングは可能ですが、そのプロセスは異なります。

Wayland

実験機能の分数スケーリングを有効化:

$ gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"

Settings > Devices > Displays から小数で設定できるようになります。

Xorg

scaling-factorxrandr を組み合わせることで整数以外のスケールファクタが使えます。xrandr だけを使用したときのように TTF フォントが汚くなることはありません。

まずは GNOME をスケールさせます。2で小さすぎる場合は3以上を使ってください。

$ gsettings set org.gnome.desktop.interface scaling-factor 2

それから xrandr でズームアウトファクタを設定して小さくスケールします。まずは出力の名前を確認:

$ xrandr | grep -w connected | cut -d' ' -f1
eDP1

以下、確認できた値を --output で指定するようにしてください。ディスプレイが複数ある場合はそれぞれで個々にスケールを設定できます。

1.2倍に拡大するには、以下のコマンドを実行:

$ xrandr --output eDP1 --scale 1.2x1.2

UI が大きすぎる場合、スケールを増やします:

$ xrandr --output eDP1 --scale 1.25x1.25

UI が小さすぎる場合、スケールを減らしてください。一番良い値を見つけるまで繰り返し実行してください。

最後に、マウスがスクリーンを正しく使えるように設定する必要があります。スケール後の解像度を取得してください:

$ xrandr | grep eDP1
eDP1 connected primary 2304x1296+0+0 (normal left inverted right x axis y axis) 239mm x 134mm

確認できた値を使って以下のコマンドを実行:

$ xrandr --output eDP1 --panning 2304x1296

テキストスケーリング

また、表示倍率を変更するだけでなく、テキストを個別に倍率変更することも可能です。これは Gnome Tweaks の Fonts > Scaling Factor に移動するか、gsettings を使うことで行えます。テキストのスケーリングファクターは整数である必要はないことに注意してください。

$ gsettings set org.gnome.desktop.interface text-scaling-factor 1.5
Xorg 上での GTK+ と Gnome Shell の要素の比較

上記のようにテキストのスケーリングを調整することは、GNOME デスクトップの GTK+ 要素にのみ影響します。これで Wayland 上のすべてをカバーできるはずです。なぜなら、GNOME Shell UI (トップバー、ドック、アプリケーション・メニューなどを含む) は別途 St[リンク切れ 2021-11-11] ツールキットに依存しているためです。これは長年の問題で、Gnome Shell 3.35 以降では パッチ がマージされ、利用可能になっていることに注意してください。古いリリースでは、Xorg ユーザーは現在使用しているシェルテーマを手動で編集することで、Gnome シェルのスケーリング問題のほとんどを解決することができます。関連する CSS ファイルは通常 /usr/share/themes/YOUR-THEME/gnome-shell/gnome-shell.css に配置されています。ユーザーは、このファイル内のすべての "font-size" 要素を、ディスプレイのスケーリングに比例して大きくする必要があります(200%のスケーリングにはフォントサイズを2倍にするなど)たとえば、Adapta シェルテーマ用に編集した CSS ファイルのトップは、以下のようになります。

usr/share/themes/Adapta/gnome-shell/gnome-shell.css
stage { font-size: 20pt; font-family: Roboto, Noto Sans, Sans-Serif; color: #263238; }

これらの変更が保存されたら、別のテーマに切り替えて(たとえば、gnome-tweaks を使用して)、再度元に戻してアクティブにします。これで、トップバー、アプリケーションメニュー、カレンダー、およびその他のシェル要素が正しくスケーリングされるはずです。

関連するシェルテーマの CSS ファイルを編集することに加えて、Xorg のユーザーは、開いているアプリケーションの上部にあるタイトルバーのフォントを増やしたい場合もあります。これは、dconf エディター (org > gnome > desktop > wm > preferences :: titlebar-font)を介して実行できます。 title-bar-uses-system-fonts オプションもオフにする必要があることに注意してください。または、gsettings を使用します:

$ gsettings set org.gnome.desktop.wm.preferences titlebar-font 'Cantarell Bold 22' ## Change as needed
$ gsettings set org.gnome.desktop.wm.preferences titlebar-uses-system-font false

KDE Plasma

KDE の設定を使ってフォント・アイコン・ウィジェットのスケーリングを調整できます。Qt と GTK+ 両方のアプリケーションに適用されます。

フォント・ウィジェット・アイコン全てのスケーリングを変更するには:

  1. システム設定 → ディスプレイとモニター → ディスプレイの設定 → ディスプレイのスケール
  2. スライダーをドラッグして適当なサイズを設定してください。
  3. 再起動することで変更が適用されます。

フォントのスケーリングだけ変更するには:

  1. システム設定 → フォント
  2. "Force fonts DPI" にチェックを入れて DPI レベルを適当な値に設定してください。新しく起動したアプリケーションから即座に変更が適用されます。Plasma デスクトップに変更を適用するには一度ログアウトする必要があります。

アイコンのスケーリングだけ変更するには:

  1. System Settings → Icons → Advanced
  2. カテゴリごとに適切なアイコンサイズを選択してください。変更はすぐに適用されます。

固定サイズのトレイアイコン

Plasma は Qt のスケーリング設定をデフォルトでは無視するため、トレイアイコンはスケールしません。Plasma に Qt の設定を反映させるには、PLASMA_USE_QT_SCALING 環境変数1 に設定してください。

Xfce

Xfce の設定マネージャ→外観→フォントから DPI のパラメータを変更してください。Retina スクリーンでは 180 または 192 がぴったりです。正確な数字を得たいときは、$ xdpyinfo | grep resolution を実行して得た数字を2倍してください。

システムトレイのアイコンを拡大するには、システムトレイを右クリック (アイコンをクリックしないように、空きスペースや上部・下部のピクセルを右クリックしてください) → “Properties” → “Maximum icon size” を 32, 48, 64 などに設定してください。

Cinnamon

Cinnamon は 2.2 から HiDPI をサポートしています。GTK3 をリビルドしなくても、十分なサポートが得られます (例: ウィンドウの縁のサイズが正しく設定されます。Xfce では行われません)。

Enlightenment

E18 の場合、E 設定パネルを開いて下さい。Look → Scaling から、UI のスケール比を設定できます。MBPr 15" のネイティブ解像度なら 1.2 が丁度です。

X サーバー

プログラムによっては物理的な横幅を使って DPI を検出します。例えば i3 (ソース) や Chromium (ソース) などが挙げられます。

X サーバーがモニターの物理的な寸法を正しく検出できているか確認するには、次を実行 (xdpyinfo ユーティリティは xorg-xdpyinfo パッケージに含まれています):

$ xdpyinfo | grep -B 2 resolution
screen #0:
  dimensions:    3200x1800 pixels (423x238 millimeters)
  resolution:    192x192 dots per inch

上の例では 96 dpi の倍数を使うために (この場合 192 dpi)、少しだけ誤っている面積 (Dell XPS 9530 は 346mm x 194mm なのに 423mm x 328mm になっている) を使っています。これは正確な 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

~/.xinitrcxrdb -merge ~/.Xresources と記述するなどして X の起動時に設定が正しくロードされるようにしてください (詳しくは Xresources を参照)。

設定することでほとんどのツールキットやアプリケーションでフォントが正しく表示されるようになりますが、アイコンのサイズなどは変わりません。また、ツールキットのスケール (例: GDK_SCALE) と一緒に Xft.dpi を設定した場合、Firefox などのプログラムでインターフェイスの表示が大きくなりすぎることがあります。

GUI ツールキット

Qt 5

X サーバーで DPI の値を変えられない場合でも、Qt アプリケーションには HiDPI でちゃんと表示されるようにする方法があります。

Qt 5.6 から、Qt 5 アプリケーションは QT_AUTO_SCREEN_SCALE_FACTOR 環境変数によって設定された画面 DPI を使用するようになりました。例えば /etc/profile.d/qt-hidpi.sh ファイルを作成し、以下を記述して実行可能属性を付与します:

export QT_AUTO_SCREEN_SCALE_FACTOR=1

DPI の自動検知が上手くいかない場合、スケーリングをスクリーンごと (QT_SCREEN_SCALE_FACTORS)、あるいは全てのスクリーン (QT_SCALE_FACTOR) に手動で設定することができます。詳しくは Qt のブログ記事 を参照してください。

ノート: startkde スクリプトによって上記の変数は unset されるため、KDE では X サーバーで設定された DPI による解像度を優先します。

手動でスクリーンファクタを設定した場合、QT_AUTO_SCREEN_SCALE_FACTOR=0 を設定しないと明示的に高 DPI を有効にしている一部のアプリケーションも2倍にスケールされてしまいます。このため KDE ではスケールの手動設定を無効にしています。

  • QT_SCALE_FACTOR はフォントを拡大します。
  • QT_SCREEN_SCALE_FACTORS はフォントを拡大しません。

他のツールキットでも設定を適用するために xrdb でフォントの DPI を手動で設定していた場合、QT_SCALE_FACTORS はかなり巨大なフォントを表示するようになります。

GDK 3 (GTK+ 3)

GTK+ 3 アプリケーションで 2倍に UI エレメントを拡大するには:

$ export GDK_SCALE=2

テキストのスケーリングを戻すには:

$ export GDK_DPI_SCALE=0.5

GTK+ 2

ツールキットによる UI エレメントの拡大は不可能ですが、oomox-gitAUR を使用することで HiDPI ディスプレイ用にあらかじめ拡大されたエレメントを使用するテーマを生成できます。

Elementary (EFL)

UI のエレメントを1.5倍に拡大するには:

$ export ELM_SCALE=1.5

詳しくは https://phab.enlightenment.org/w/elementary/ を参照。

ブートマネージャ

GRUB

フレームバッファの解像度を低くする

GRUB/ヒントとテクニック#フレームバッファの解像度を設定するを見てください。

GRUB フォントのサイズを変更する

大きなサイズのフォントを使用する方法があります。ttf-dejavu パッケージに含まれている DejaVu Sans Mono フォントでサイズが 36 の GRUB フォントを生成:

# grub-mkfont --output=/boot/grub/fonts/DejaVuSansMono36.pf2 --size=36 /usr/share/fonts/TTF/DejaVuSansMono.ttf

/etc/default/grubGRUB_FONT 行を追加することで GRUB から生成したフォントを使用できます:

/etc/default/grub
GRUB_FONT=/boot/grub/fonts/DejaVuSansMono36.pf2

最後に GRUB の設定を更新してください:

# grub-mkconfig -o /boot/grub/grub.cfg

systemd-boot

​ 次の行を追加して bootctl update を実行すると、systemd-boot メニューのフォントサイズが大きくなります。 ​

/boot/loader/loader.conf
console-mode 1

アプリケーション

ブラウザ

Firefox

FirefoxGDK 3 (GTK+ 3) の設定を使用します。しかしながら GDK_SCALE では Firefox を完全にはスケールされず、小数値は使えません。代わりに GDK_DPI_SCALE を使用すると良いでしょう。

GTK の設定を上書きしたい場合、Firefox の高度な設定のページ (about:config) を開いて layout.css.devPixelsPerPx パラメータを 2 に設定してください (2 は Retina スクリーンに合った数値です、必要に応じて数値を変更してください)。メニューや URL バーのフォントが小さい場合は userChrome.css ファイルを作成することで明示的にフォントサイズを設定できます (userChrome.css について詳しくは mozillaZine を参照):

~/.mozilla/firefox/<profile>/chrome/userChrome.css
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");

/* #tabbrowser-tabs, #navigator-toolbox, menuitem, menu, ... */
* {
    font-size: 15px !important;
}

/* exception for badge on adblocker */
.toolbarbutton-badge {
    font-size: 8px !important;
}

Retina ディスプレイのような HiDPI ディスプレイを他のモニターと組み合わせて使っている場合、AutoHiDPI アドオンを使うことで有効なディスプレイに合わせて layout.css.devPixelsPerPx を自動的に調整できます。また、Firefox バージョン 49 から、ディレプレイの解像度にあわせて自動的にスケールするようになっています。

Chromium / Google Chrome

Chromium は GDK 3 (GTK+ 3) の設定を使用します。

上書きしたい場合、--force-device-scale-factor フラグを使ってスケール値を設定してください。全てのコンテンツと ui、さらにタブやフォントサイズがスケールします。例:

$ chromium --force-device-scale-factor=2

このオプションを使う場合、スケールファクター 1 が通常のスケーリングです。少数点を使うこともできます。

変更を永続化したい場合、~/.config/chromium-flags.conf にフラグを追加してください (Chromium の場合):

~/.config/chromium-flags.conf
--force-device-scale-factor=2

Retina ディスプレイのような HiDPI モニターと別のモニターを一緒に使用する場合、reszoom 拡張を使うことで使用しているディスプレイにあわせてズームレベルを自動的に調整することができます。

Opera

Opera は GDK 3 (GTK+ 3) の設定を使用します。

上書きしたい場合、バージョン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 の設定)。

メールクライアント

Thunderbird

Firefox を見てください。about:config にアクセスするには、Edit → Preferences → Advanced → Config editor を開きます。

Wine アプリケーション

次を実行して、"画面"タブの"画面の解像度"設定を変更してください:

$ winecfg

フォントのサイズにだけ影響を与えます。

Skype

Skype for Linux (skypeforlinux-stable-binAUR) は GTK+ 3 を使用しています。

Spotify

Spotify はスケーリングファクタを指定して起動することができます。例:

$ spotify --force-device-scale-factor=1.5

Spotify の .desktop ファイルを上書きすることもできます。ファイルをコピーしてください:

$ cp /usr/share/applications/spotify.desktop ~/.local/share/applications/

それからファイルを編集して --force-device-scale-factor オプションを追加してください:

[Desktop Entry]
Name=Spotify
GenericName=Music Player
Comment=Spotify streaming music client
Icon=spotify-client
Exec=spotify %U --force-device-scale-factor=1.5
TryExec=spotify
Terminal=false
Type=Application
Categories=Audio;Music;Player;AudioVideo;
MimeType=x-scheme-handler/spotify;

Sublime Text 3

Sublime Text 3 はディスプレイスケーリングを完全にサポートしています。Preferences > Settings > User Settings から "dpi_scale": 2.0 を設定に追加してください [1]

IntelliJ IDEA

IntelliJ IDEA の HiDPI サポートが機能しない場合、vmoptions ファイルに -Dhidpi=true を追加してください [2]:

/usr/share/intellij-idea-ultimate-edition/bin/idea.vmoptions
/usr/share/intellij-idea-ultimate-edition/bin/idea64.vmoptions

もしくは、$HOME ディレクトリの .vmoptions ファイルに以下を追加します:

echo -Dhidpi=true >> $HOME/.IdeaIC14/idea64.vmoptions

NetBeans

Netbeans では --fontsize パラメータを使うことで起動時にインターフェイスのフォントのサイズを変更することができます。変更を永続的にするには、/usr/share/netbeans/etc/netbeans.conf ファイルを編集して netbeans_default_options プロパティに --fontsize パラメータを追加してください [3]

エディタのフォントサイズは Tools → Option → Fonts & Colors から変えられます。

出力ウィンドウのフォントサイズは Tools → Options → Miscelaneous → Output から変えられます。

GIMP 2.8

GIMP の場合、HiDPI 対応のテーマを使用するか、既存のテーマの gtkrc を変更してください。例えば GimpToolPalette::tool-icon-sizedialog に設定します。

HiDPI ディスプレイ用のテーマである gimp-hidpi も存在します。

Steam

公式 HiDPI サポート

2018年1月25日のベータプログラムから Steam は HiDPI をサポートし自動的に認識します。自動的に認識されない場合、GDK_SCALE=2 を使って適当なスケールファクタを設定してください。

非公式

HiDPI-Steam-Skin をインストールすることで Steam のインターフェイスのフォントサイズを大きくすることができます。完全ではありませんが、可読性は向上します。

ノート: スキンは ~/.local/share/Steam/skins にダウンロードしてください。README に書かれている ~/.steam/skins/ ではありません。

MetroSkin Unofficial Patch も HiDPI 環境の Linux で Steam を使う場合に役立ちます。

Java アプリケーション

AWT/Swing フレームワークを使用する Java アプリケーションは java を起動するときに sun.java2d.uiScale 変数を定義することでスケールを設定できます。例:

$ java -Dsun.java2d.uiScale=2 -jar some_application.jar

Mono アプリケーション

Mono アプリケーションは GTK3 アプリケーションと同じようにスケールします [4]

MATLAB

新しいバージョンの Matlab (R2017b) ではスケールファクタを設定できます:

>> s = settings;s.matlab.desktop.DisplayScaleFactor
>> s.matlab.desktop.DisplayScaleFactor.PersonalValue = 2

設定を適用するには MATLAB の再起動が必要です。

VirtualBox

ノート: 以下の問題はスケーリングを有効にした KDE でのみ発生します。

VirtualBox はシステム全体のスケーリングを仮想モニターにも適用するため、仮想マシンの最大解像度が小さくなってしまいます ([5] を参照)。

スケーリングファクタの逆数を計算して VirtualBox を実行するときに新しいスケーリングファクタを手動で設定することで問題を解決できます。例:

$ QT_SCALE_FACTOR=0.5 VirtualBox --startvm vm-name

Fcitx

Fcitx の preedit FontSize~/.config/fcitx/conf/fcitx-classic-ui.config で変更できます。

他のアプリケーション

run_scaled-gitAUR を使うことでアプリケーションをスケールすることができます (Xpra が内部的に使われています)。

他にも、アプリケーションを VNC デスクトップでフルスクリーンで実行して、装飾を省かせるという方法があります。それからビューアを拡大します。Vncdesk (AURvncdesk-gitAUR でインストールできます) では、アプリケーションごとにデスクトップを設定することができます。vncdesk 2 などのシンプルなコマンドでサーバーとクライアントを起動します。

x11vnc には実験的なオプションとして -appshare があり、アプリケーションウィンドウごとにビューアを開きます。

マルチディスプレイ

HiDPI の設定は全てのデスクトップに適用されるため HiDPI ではない外部ディスプレイには全てが大きく表示されてしまいます。

外部ディスプレイ

xrandr のスケールオプションを使って回避することができます。HiDPI の内部ディスプレイ (eDP-1) の右に HiDPI ではないモニター (DP-1) がある場合、次を実行:

$ xrandr --output eDP-1 --auto --output DP-1 --auto --scale 2x2 --right-of eDP-1

内部ディスプレイを拡張すると、外部ディスプレイに内部ディスプレイの一部が表示されることがあります。その場合、このスクリプト を使うなどしてポジションを手動で設定してください。

マウスが画面の全体で使えないという問題が発生することもあります。これは 既知のバグ であり xserver-org のパッチがあります (もしくはパンするという方法もありますが、別の問題が発生する可能性もあります)。

4k のノートパソコンの右に外付けの 1920x1080 モニターを縮小して右に表示させる例:

$ xrandr --output eDP-1 --auto --output HDMI-1 --auto --panning 3840x2160+3840+0 --scale 2x2 --right-of eDP-1

hidpi のモニターが AxB ピクセルで通常のモニターが CxD、そして [ExF] でスケールする場合、コマンドは以下のようになります:

$ xrandr --output eDP-1 --auto --output HDMI-1 --auto --panning [C*E]x[D*F]+[A]+0 --scale [E]x[F] --right-of eDP-1
ノート: 上記の --scale 2x2 は一部の Nvidia カードでは機能しません。現在のところ解決方法は見つかっていません [6]nvidia-settings を使って CurrentMetaModeForceFullCompositionPipeline=On を設定することで一時的に回避することができます。詳しくは [7] を参照。

複数の外部ディスプレイ

外部ディスプレイが複数あって、DPI が異なるとスケーリングに問題が起こる場合があります。そのようなときは、代わりに HiDPI ディスプレイをダウンスケールしてみてください。例:

xrandr --output eDP1 --scale 0.5x0.5 --output DP2 --right-of eDP1 --output HDMI1 --right-of DP2

HiDPI ディスプレイをダウンスケールすると、HiDPI ディスプレイに表示されるフォントがぼやけますが、外部ディスプレイをアップスケールしたときに発生する滲みとは多少違います。どちらが良いか比較して決めてください。

ミラーリング

ディスプレイをミラーしたい場合、簡単にできます:

HiDPI の解像度が AxB で、外部ディスプレイの解像度が CxD の場合:

$ xrandr --output HDMI --scale [A/C]x[B/D]

例えば QHD の場合 (3200/1920 = 1.66 と 1800/1200 = 1.5):

$ xrandr --output HDMI --scale 1.66x1.5

UHD から 1080p の場合 (3840/1920=2 2160/1080=2):

$ xrandr --output HDMI --scale 2x2

スケーリングによって画面が霞むときは、モニター設定で"シャープネス"パラメータを調整してください。

ツール

上記のようなコマンドを自動化するツールがいくつかあります。

Linux コンソール

デフォルトのコンソールフォントでは hidpi ディスプレイでとても小さくなってしまいます。kbd パッケージに含まれている一番巨大なフォントは latarcyrheb-sun32 であり、(一時的に) 有効にするには:

$ setfont latarcyrheb-sun32

terminus-font など他のパッケージには大きいフォントとして ter-132n(normal) や ter-132b(bold) が含まれています。詳しくはフォント#コンソールフォントを見てください。

フォントを変更した場合、他の仮想端末 (tty2-6) に切り替えたときに問題が発生することがあります。KMS の特定のモード (例: video=2560x1600@60) を強制的に使うように設定して再起動することで問題は解決します (使用している HiDPI ディスプレイのネイティブ解像度にあわせて設定してください)。

参照