DELLのxps-13(解像度3200x1800)にUbuntuを入れて使っているのですが、13インチでこの解像度ではドットバイドットで使用するのはちょっと厳しい。最近のUbuntuはちゃんとHI-DPIな環境も考慮していて、設定画面からwindow scalingなるものを設定できるのですが、これが整数しか指定できず、実質的には2(2倍)を設定するしかありません。ただ、それではFullHDにも満たない解像度になってしまいます。まあそれでも1600x900あるんだからまあいっかと思えなくもないのですが、ここに余っていたFullHDのモニタをつなげるとそっちもスケール2倍で描画されてしまい、これはがまんできん、ということでいろいろ調べたらxrandrコマンドで詳細な設定ができることを知ったのでそれのメモ。
接続済みのディスプレイの検出
$ xrandr | grep -w connected
とやると、ディスプレイの一覧が表示されます。
eDP-1 connected primary 3200x1800+1920+0 (normal left inverted right x axis y axis) 294mm x 165mm
HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 476mm x 267mm
eDP-1というのがxps-13のディスプレイで、HDMI-1が外部ディスプレイのことです。
外部ディスプレイを左側に置いているので、xps-13の設定が 3200x1800+1920+0 になります。
x座標が1920、つまり外部モニタがFulHDなのでその右側に位置させたいのなら、このような値になる、ということです。
スケーリングの値を変更する
まずは外部モニタの解像度を本来のFullHDにしたいので、次のように打ちます。
$ xrandr --output HDMI-1 --scale 2x2
本来のFullHDになりました。
ここでxrandrでHDMI-1の値を見てみると解像度がFullHDの倍になっていました。
UbuntuのWindowScaleを2にしているので、FullHDを4Kにしてスケール2倍で描画、てなイメージでしょうか。
xps-13のディスプレイの座標を変更
となりのモニタの解像度が大きくなったので、本体の表示位置もその分ずらしてやる必要があります。
$ xrandr --output eDP-1 --pos 3840x0
xps―13の解像度もせめてFullHDにする
外部モニタの方は本来のFullHDの解像度にできたので、xps-13本体の方もせめてFullHDにしたいところです。13インチなのでそのあたりが限度ではありますが、、、。
$ xrandr --output e-DP1 --scale 1.2x1.2
本来の解像度が3200x1800のところをスケール2倍にしているので、実際の解像度は1600x900になっているのですが、これを1.2倍すればちょうど1920x1080のFullHD解像度になります。
これで無事にxps-13はFullHDのRetinaとして、外部モニタは通常のFullHDモニタとして快適に使えるようになりました。
最終的には下のような値になります。
$ xrandr | grep -w connected
eDP-1 connected primary 3840x2160+3840+0 (normal left inverted right x axis y axis) 294mm x 165mm
HDMI-1 connected 3840x2160+0+0 (normal left inverted right x axis y axis) 476mm x 267mm