「HiDPI」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(Pkg/AUR テンプレートの更新)
(同期)
12行目: 12行目:
 
=== GNOME ===
 
=== GNOME ===
   
HiDPI を有効にするには、gsettings を使ってインターフェイスのスケールファクタを設定します:
+
HiDPI を有効にするには、Settings > Devices > Displays から有効にするか、gsettings を使ってインターフェイスのスケールファクタを設定します:
   
 
$ gsettings set org.gnome.desktop.interface scaling-factor 2
 
$ gsettings set org.gnome.desktop.interface scaling-factor 2
19行目: 19行目:
   
 
{{Note|1={{ic|scaling-factor}} に設定できるのは整数だけです。1 = 100%, 2 = 200% など。}}
 
{{Note|1={{ic|scaling-factor}} に設定できるのは整数だけです。1 = 100%, 2 = 200% など。}}
  +
  +
==== 小数値のスケーリング ====
   
 
{{ic|scaling-factor}} で設定できる2や3という数字では、使用している HiDPI ディスプレイや小型スクリーンに適合しない場合があります。
 
{{ic|scaling-factor}} で設定できる2や3という数字では、使用している HiDPI ディスプレイや小型スクリーンに適合しない場合があります。
   
  +
===== Wayland =====
{{ic|scaling-factor}} と {{ic|xrandr}} を組み合わせることで整数以外のスケールファクタが使えます。{{ic|xrandr}} だけを使用したときのように TTF フォントが汚くなることはありません。
 
  +
実験機能の小数値スケーリングを有効化:
  +
  +
$ gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"
  +
  +
Settings > Devices > Displays から小数で設定できるようになります。
  +
  +
===== Xorg =====
  +
{{ic|scaling-factor}} と [[xrandr]] を組み合わせることで整数以外のスケールファクタが使えます。{{ic|xrandr}} だけを使用したときのように TTF フォントが汚くなることはありません。
   
 
まずは [[GNOME]] をスケールさせます。2で小さすぎる場合は3以上を使ってください。
 
まずは [[GNOME]] をスケールさせます。2で小さすぎる場合は3以上を使ってください。
46行目: 56行目:
 
=== KDE ===
 
=== KDE ===
   
  +
KDE の設定を使ってフォント・アイコン・ウィジェットのスケーリングを調整できます。Qt と GTK+ 両方のアプリケーションに適用されます。
[[KDE]] Plasma 5 は HiDPI ディスプレイの優れたサポートを有しています。X サーバーがディスプレイのピクセル密度を正しく認識するように設定するだけで後は勝手にやってくれます。{{ic|/etc/sddm.conf}} を編集して {{ic|[X11]}} セクションの {{ic|ServerArguments}} に dpi 引数を追加してください:
 
   
  +
フォント・ウィジェット・アイコン全てのスケーリングを変更するには:
ServerArguments=-nolisten tcp -dpi 276
 
   
  +
# システム設定 → ディスプレイとモニター → ディスプレイの設定 → ディスプレイのスケール
詳しい情報は [[Xorg#画面サイズと DPI]] を見てください。
 
  +
# スライダーをドラッグして適当なサイズを設定してください。
  +
# 再起動することで変更が適用されます。
   
  +
フォントのスケーリングだけ変更するには:
==== マルチディスプレイ構成 ====
 
   
  +
# システム設定 → フォント
全てのディスプレイの DPI が同じであれば上記の設定で上手くいきますが、ディスプレイの出力が異なる場合はディスプレイごとにスケールさせる必要があります:
 
  +
# "Force fonts DPI" にチェックを入れて DPI レベルを適当な値に設定してください。新しく起動したアプリケーションから即座に変更が適用されます。Plasma デスクトップに変更を適用するには一度ログアウトする必要があります。
   
  +
アイコンのスケーリングだけ変更するには:
# システム設定 → ディスプレイとモニター → ディスプレイの設定 → ディスプレイのスケール
 
  +
# スライダーを 2 までドラッグしてください。
 
  +
# System Settings → Icons → Advanced
# 一度ログアウトしてログインしなおすと全てのアプリケーションに新しい設定が適用されます。
 
  +
# カテゴリごとに適切なアイコンサイズを選択してください。変更はすぐに適用されます。
  +
  +
==== 整数以外のディスプレイのスケール ====
  +
  +
ディスプレイのスケールで整数値を使用しないと Qt アプリケーション (例: Okular) で表示に問題が発生することがあります。
  +
  +
以下の手順で問題を回避できます:
  +
# スケール値を {{ic|1}} に設定
  +
# フォントとアイコンを設定して "Force fonts DPI" を使うようにする (全てのアプリに変更が適用されますがフォントに問題は起こりません)。
  +
# KDE を再起動
  +
# 必要に応じて {{ic|GDK_SCALE}} や {{ic|GDK_DPI_SCALE}} を使って GTK アプリを設定してください ([[#GDK 3 (GTK+ 3)]] を参照)。
   
 
==== 固定サイズのトレイアイコン ====
 
==== 固定サイズのトレイアイコン ====
   
  +
Plasma は Qt のスケーリング設定をデフォルトでは無視するため、トレイアイコンはスケールしません。Plasma に Qt の設定を反映させるには、{{ic|PLASMA_USE_QT_SCALING}} [[環境変数]]を {{ic|1}} に設定してください。
トレイアイコンがスケールしない場合、{{ic|/usr/share/plasma/plasmoids/org.kde.plasma.private.systemtray/contents/config/main.xml}} の ''iconSize'' でデフォルトのサイズ値を設定できます:
 
{{hc|/usr/share/plasma/plasmoids/org.kde.plasma.private.systemtray/contents/config/main.xml|<nowiki>
 
<entry name="iconSize" type="Int">
 
<label>Default icon size for the systray icons, it's an enum which values mean,
 
Small, SmallMedium, Medium, Large, Huge, Enormous respectively. On low
 
DPI systems they correspond to 16, 22, 32, 48, 64, 128 pixels. On high
 
DPI systems those values would be scaled up, depending on the DPI.</label>
 
<default></nowiki>'''2'''<nowiki></default>
 
</entry>
 
</nowiki>}}
 
   
 
=== Xfce ===
 
=== Xfce ===
163行目: 178行目:
 
詳しくは https://phab.enlightenment.org/w/elementary/ を参照。
 
詳しくは https://phab.enlightenment.org/w/elementary/ を参照。
   
== ディスプレイマネージャ ==
+
== ブートマネージャ ==
   
=== SDDM ===
+
=== GRUB ===
   
  +
==== フレームバッファの解像度が低くする ====
[[SDDM]] を拡大するには {{ic|/etc/sddm.conf}} の以下のプロパティを変更してください。ファイルを編集する前にバックアップを作成することを推奨します。
 
   
  +
[[GRUB/ヒントとテクニック#フレームバッファの解像度を設定する]]を見てください。
[X11]
 
# X server arguments
 
ServerArguments=-nolisten tcp -dpi 144
 
   
==== Xrandr 使用する方法 ====
+
==== フォントのサイズ変更する ====
 
ServerArguments で設定できない場合、xrandr で直接 DPI を変更できます。{{ic|/etc/sddm.conf}} を編集して以下のセクションを追加してください:
 
 
[X11]
 
# script to execute when starting the display server
 
# default to /usr/share/sddm/scripts/Xsetup
 
DisplayCommand=/etc/sddm/Xsetup
 
 
そして以下の内容の {{ic|/usr/share/sddm/scripts/Xsetup}} を {{ic|/etc/sddm/Xsetup}} にコピーします:
 
 
#!/bin/sh
 
# Xsetup - run as root before the login dialog appears
 
/usr/bin/xrandr --dpi 144
 
 
設定パラメータについて詳しくは {{ic|sddm.conf(5)}} を読んでください。
 
 
== ブートマネージャ ==
 
 
=== GRUB ===
 
   
 
大きなサイズのフォントを使用する方法があります。{{Pkg|ttf-dejavu}} パッケージに含まれている DejaVu Sans Mono フォントでサイズが 36 の GRUB フォントを生成:
 
大きなサイズのフォントを使用する方法があります。{{Pkg|ttf-dejavu}} パッケージに含まれている DejaVu Sans Mono フォントでサイズが 36 の GRUB フォントを生成:
212行目: 206行目:
 
==== Firefox ====
 
==== Firefox ====
   
  +
[[Firefox]] は [[#GDK 3 (GTK+ 3)|GDK 3 (GTK+ 3)]] の設定を使用します。しかしながら {{ic|GDK_SCALE}} では Firefox を完全にはスケールされず、小数値は使えません。代わりに {{ic|GDK_DPI_SCALE}} を使用すると良いでしょう。
[[Firefox]] の高度な設定のページ ({{ic|about:config}}) を開いて {{ic|layout.css.devPixelsPerPx}} パラメータを {{ic|2}} に設定してください ({{ic|2}} は Retina スクリーンに合った数値です、必要に応じて数値を変更してください)。
 
   
  +
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] を参照):
Firefox バージョン 38 以降から、システム設定 (GTK+ 3.10) が適用されるようになっています [https://bugzilla.mozilla.org/show_bug.cgi?id=975919]。
 
   
  +
{{hc|~/.mozilla/firefox/<em><profile></em>/chrome/userChrome.css|@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
メニューや URL バーのフォントが小さい場合は {{ic|userChrome.css}} ファイルを作成することで明示的にフォントサイズを設定できます。ファイルは {{ic|$HOME/.mozilla/firefox/*.default/chrome/}} フォルダに保存してください。chrome フォルダは自分で作成する必要があります。別の場所にある chrome フォルダに css ファイルを保存しても適用されません。
 
   
  +
/* #tabbrowser-tabs, #navigator-toolbox, menuitem, menu, ... */
css ファイルの中身は以下のようにします:
 
  +
* {
  +
font-size: 15px !important;
  +
}
   
  +
/* exception for badge on adblocker */
<pre><nowiki>
 
  +
.toolbarbutton-badge {
@namespace url("https://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); /* set default namespace to XUL */
 
* { font-size: 16px !important; }
+
font-size: 8px !important;
  +
}
</nowiki></pre>
 
  +
}}
   
  +
Retina ディスプレイのような HiDPI ディスプレイを他のモニターと組み合わせて使っている場合、[https://addons.mozilla.org/firefox/addon/autohidpi/ AutoHiDPI] アドオンを使うことで有効なディスプレイに合わせて {{ic|layout.css.devPixelsPerPx}} を自動的に調整できます。また、Firefox バージョン 49 から、ディレプレイの解像度にあわせて自動的にスケールするようになっています。
設定ページが小さい場合、設定 -> コンテンツ -> フォントと配色 -> 詳細設定から最小フォントサイズを設定してみてください。
 
   
 
==== Chromium / Google Chrome ====
 
==== Chromium / Google Chrome ====
   
  +
Chromium は [[#GDK 3 (GTK+ 3)|GDK 3 (GTK+ 3)]] の設定を使用します。
バージョン 43.0.2357.2-1 からメインブランチの {{AUR|google-chrome}} で完全な HiDPI サポートが含まれており、何も設定しなくても動作します (Gnome と Cinnamon でテスト済み)。また、AUR の古い Chrome パッケージでは、[[chromium]] パッケージと同じように、{{ic|--force-device-scale-factor}} コマンドラインフラグを使ってブラウザを起動することができます。全てのコンテンツと ui、さらにタブやフォントサイズがスケールします。例:
 
  +
  +
上書きしたい場合、{{ic|1=--force-device-scale-factor}} フラグを使ってスケール値を設定してください。全てのコンテンツと ui、さらにタブやフォントサイズがスケールします。例:
   
 
$ chromium --force-device-scale-factor=2
 
$ chromium --force-device-scale-factor=2
   
このオプションを使う場合、スケールファクター1が通常のスケーリングです。少数点を使うこともできます。
+
このオプションを使う場合、スケールファクター {{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] 拡張を使うことで使用しているディスプレイにあわせてズームレベルを自動的に調整することができます。
 
Retina ディスプレイのような HiDPI モニターと別のモニターを一緒に使用する場合、[https://chrome.google.com/webstore/detail/resolution-zoom/enjjhajnmggdgofagbokhmifgnaophmh reszoom] 拡張を使うことで使用しているディスプレイにあわせてズームレベルを自動的に調整することができます。
239行目: 243行目:
 
==== Opera ====
 
==== 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 の設定)。
 
   
  +
上書きしたい場合、バージョン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 の設定)。
一般的にいって、Opera の HiDPI サポートは優れています。また、Chrome の blink レンダラを使って作成されているので、ほとんどの Chrome 拡張が動作します。HiDPI のサポートが上手く行っている Chrome として使うことができるでしょう。
 
   
 
=== メールクライアント ===
 
=== メールクライアント ===
257行目: 261行目:
 
=== Skype ===
 
=== Skype ===
   
新しい Skype for Linux Alpha ({{AUR|skypeforlinux}}{{Broken package link|パッケージが存在しません}}) は [[#GDK 3 (GTK+ 3)|GTK+ 3]] を使用し、{{AUR|skypeforlinux-bin}}{{Broken package link|パッケージが存在しません}} パッケージは [[#GTK+ 2|GTK+ 2]] を使用しています。
+
新しい Skype for Linux ({{AUR|skypeforlinux-preview-bin}}) は [[#GDK 3 (GTK+ 3)|GTK+ 3]] を使用し、{{AUR|skypeforlinux-stable-bin}} パッケージは [[#GTK+ 2|GTK+ 2]] を使用しています。
   
 
旧バージョンの [[Skype]] ({{AUR|skype}}) は Qt 4 を使っており、別個に設定する必要があります。Skype の DPI 設定を変更することはできませんが、フォントサイズは変更することができます。{{Pkg|qt4}} をインストールして {{ic|qtconfig-qt4}} を実行して設定してください。
 
旧バージョンの [[Skype]] ({{AUR|skype}}) は Qt 4 を使っており、別個に設定する必要があります。Skype の DPI 設定を変更することはできませんが、フォントサイズは変更することができます。{{Pkg|qt4}} をインストールして {{ic|qtconfig-qt4}} を実行して設定してください。
282行目: 286行目:
 
Categories=Audio;Music;Player;AudioVideo;
 
Categories=Audio;Music;Player;AudioVideo;
 
MimeType=x-scheme-handler/spotify;
 
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]:
+
[[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/idea.vmoptions
 
/usr/share/intellij-idea-ultimate-edition/bin/idea64.vmoptions
 
/usr/share/intellij-idea-ultimate-edition/bin/idea64.vmoptions
303行目: 310行目:
 
=== GIMP 2.8 ===
 
=== GIMP 2.8 ===
   
[[GIMP]] の場合、HiDPI 対応のテーマを使用するか、既存のテーマの {{ic|1=gtkrc}} を [http://gimpforums.com/thread-increase-all-icons-on-hidpi-screen?pid=39113#pid39113 変更] してください。例えば {{ic|1=GimpToolPalette::tool-icon-size}} を {{ic|1=dialog}} に設定します。
+
[[GIMP]] の場合、HiDPI 対応のテーマを使用するか、既存のテーマの {{ic|1=gtkrc}} を変更してください。例えば {{ic|1=GimpToolPalette::tool-icon-size}} を {{ic|1=dialog}} に設定します。
   
 
HiDPI ディスプレイ用のテーマである [https://github.com/jedireza/gimp-hidpi gimp-hidpi] も存在します。
 
HiDPI ディスプレイ用のテーマである [https://github.com/jedireza/gimp-hidpi gimp-hidpi] も存在します。
   
=== VLC ===
+
=== Steam ===
   
  +
==== 公式 HiDPI サポート ====
2015年5月現在、AUR にある git バージョン {{AUR|vlc-git}} の [[VLC]] で問題は解決します。
 
   
  +
2018年1月25日のベータプログラムから Steam は HiDPI をサポートし自動的に認識します。自動的に認識されない場合、{{ic|1=GDK_SCALE=2}} を使って適当なスケールファクタを設定してください。
Qt5 によって HiDPI ディスプレイが検出されて、フルスクリーンで再生されている場合でも、動画がウィンドウの隅に表示されて無駄な領域が生まれることがあります。{{ic|1=QT_AUTO_SCREEN_SCALE_FACTOR=0}} を使って VLC を起動することで問題は解決しますが、インターフェイスが小さくなってしまいます ([https://trac.videolan.org/vlc/ticket/17823 ソース])。
 
   
=== Steam ===
+
==== 非公式 ====
   
 
[https://github.com/MoriTanosuke/HiDPI-Steam-Skin HiDPI-Steam-Skin] をインストールすることで [[Steam]] のインターフェイスのフォントサイズを大きくすることができます。完全ではありませんが、可読性は向上します。
 
[https://github.com/MoriTanosuke/HiDPI-Steam-Skin HiDPI-Steam-Skin] をインストールすることで [[Steam]] のインターフェイスのフォントサイズを大きくすることができます。完全ではありませんが、可読性は向上します。
320行目: 327行目:
   
 
[https://steamcommunity.com/groups/metroskin/discussions/0/517142253861033946/ MetroSkin Unofficial Patch] も HiDPI 環境の Linux で Steam を使う場合に役立ちます。
 
[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
   
 
=== 他のアプリケーション ===
 
=== 他のアプリケーション ===
   
  +
{{AUR|run_scaled-git}} を使うことでアプリケーションをスケールすることができます ([[Xpra]] が内部的に使われています)。
アプリケーションを VNC デスクトップでフルスクリーンで実行して、装飾を省かせるという方法があります。それからビューアを拡大します。Vncdesk ([[AUR]] の {{AUR|vncdesk-git}} でインストールできます) では、アプリケーションごとにデスクトップを設定することができます。{{ic|vncdesk 2}} などのシンプルなコマンドでサーバーとクライアントを起動します。
 
  +
  +
他にも、アプリケーションを VNC デスクトップでフルスクリーンで実行して、装飾を省かせるという方法があります。それからビューアを拡大します。Vncdesk ([[AUR]] の {{AUR|vncdesk-git}} でインストールできます) では、アプリケーションごとにデスクトップを設定することができます。{{ic|vncdesk 2}} などのシンプルなコマンドでサーバーとクライアントを起動します。
   
 
[[x11vnc]] には実験的なオプションとして {{ic|-appshare}} があり、アプリケーションウィンドウごとにビューアを開きます。
 
[[x11vnc]] には実験的なオプションとして {{ic|-appshare}} があり、アプリケーションウィンドウごとにビューアを開きます。
349行目: 385行目:
 
$ 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
 
$ 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]。}}
+
{{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 ディスプレイに表示されるフォントがぼやけますが、外部ディスプレイをアップスケールしたときに発生する滲みとは多少違います。どちらが良いか比較して決めてください。
   
 
=== ミラーリング ===
 
=== ミラーリング ===
363行目: 406行目:
 
$ xrandr --output HDMI --scale 1.66x1.5
 
$ xrandr --output HDMI --scale 1.66x1.5
   
UHD から 1080p の場合 (3840/1920=2 2160/1080=1.98):
+
UHD から 1080p の場合 (3840/1920=2 2160/1080=2):
   
$ xrandr --output HDMI --scale 2x1.98
+
$ xrandr --output HDMI --scale 2x2
   
 
スケーリングによって画面が霞むときは、モニター設定で"シャープネス"パラメータを調整してください。
 
スケーリングによって画面が霞むときは、モニター設定で"シャープネス"パラメータを調整してください。

2018年4月7日 (土) 01:04時点における版

関連記事

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

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

デスクトップ環境

GNOME

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

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

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

ノート: scaling-factor に設定できるのは整数だけです。1 = 100%, 2 = 200% など。

小数値のスケーリング

scaling-factor で設定できる2や3という数字では、使用している HiDPI ディスプレイや小型スクリーンに適合しない場合があります。

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

KDE

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

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

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

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

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

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

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

整数以外のディスプレイのスケール

ディスプレイのスケールで整数値を使用しないと Qt アプリケーション (例: Okular) で表示に問題が発生することがあります。

以下の手順で問題を回避できます:

  1. スケール値を 1 に設定
  2. フォントとアイコンを設定して "Force fonts DPI" を使うようにする (全てのアプリに変更が適用されますがフォントに問題は起こりません)。
  3. KDE を再起動
  4. 必要に応じて GDK_SCALEGDK_DPI_SCALE を使って GTK アプリを設定してください (#GDK 3 (GTK+ 3) を参照)。

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

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/ヒントとテクニック#フレームバッファの解像度を設定するを見てください。

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

大きなサイズのフォントを使用する方法があります。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

アプリケーション

ブラウザ

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-preview-binAUR) は GTK+ 3 を使用し、skypeforlinux-stable-binAUR パッケージは GTK+ 2 を使用しています。

旧バージョンの Skype (skypeAUR) は Qt 4 を使っており、別個に設定する必要があります。Skype の DPI 設定を変更することはできませんが、フォントサイズは変更することができます。qt4 をインストールして qtconfig-qt4 を実行して設定してください。

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

他のアプリケーション

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 ディスプレイのネイティブ解像度にあわせて設定してください)。

参照