自宅のモニタが寿命を迎え始めていたので、約5年使ってきたLGのモニタを買い替えることにしました。幸いにも、モニタを譲り受けることが出来たので、購入することなくモニタを交換出来ました。
モニタが4K対応なので、画面を広々使えるようになったと感じられるようになりました。今まで1920x1080のサイズで慣れていたので、しばらくは解像度4Kは多少文字が小さいと感じながら、徐々に慣れていくことかと思います(笑)
職場のモニタはリフレッシュレートを60Hzに設定して作業していて、目が肥えてしまい、30Hzでは少しマウスの動きがカクついているに見えました。Windowsではディスプレイのプロパティからリフレッシュレートを変更できましたが、Ubuntuのモニタ設定にはリフレッシュレートの設定項目が見当たりませんでした。Ubuntuでは、 xrandr
コマンドを用いることでリフレッシュレートを変更できます。
ディスプレイ情報の取得
ディスプレイの設定情報を取得するためには、 xrandr
コマンドにオプションを指定せずに利用します。HDMIなどの出力に関する情報や、解像度とリフレッシュレートの情報が取得できます。また、 xrandr
の実行結果には、現在の設定のみだけではなく、設定可能な解像度とリフレッシュレートの一覧が表示されます。
以下は、私の環境で xrandr
コマンドによって取得したディスプレイの情報です。ディスプレイには HDMI-1
のポートに接続されています。解像度は 3840x2160
で、リフレッシュレートが 30.00
に設定されています。
$ xrandr Screen 0: minimum 8 x 8, current 3840 x 2160, maximum 32767 x 32767 DVI-D-0 disconnected (normal left inverted right x axis y axis) HDMI-0 disconnected (normal left inverted right x axis y axis) HDMI-1 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 880mm x 510mm 3840x2160 30.00*+ 59.94 50.00 29.97 25.00 23.98 2560x1440 59.95 1920x1200 59.88 1920x1080 60.00 60.00 59.94 50.00 50.00 23.97 60.00 50.04 1680x1050 59.95 1600x900 60.00 1440x900 59.89 1280x1024 75.02 61.00 1280x800 59.81 1280x720 59.94 50.00 1152x864 60.00 1024x768 75.03 70.07 60.00 800x600 75.00 72.19 60.32 56.25 720x576 50.00 720x480 59.94 640x480 75.00 72.81 59.94 59.93 DP-0 disconnected (normal left inverted right x axis y axis) DP-1 disconnected (normal left inverted right x axis y axis) DP-2 disconnected (normal left inverted right x axis y axis) DP-3 disconnected (normal left inverted right x axis y axis) $
解像度とリフレッシュレートの設定変更
解像度を変更するためには --mode
オプションを、 リフレッシュレートを変更するためには --rate
オプションを利用します。接続されているモニタを指定するために、 --output
オプションを利用します。
リフレッシュレートは指定された値が設定できない場合、最も近い値の設定値に変更します。例えば、上記の出力例では、リフレッシュレートは解像度が3840x2160の時に最大で59.94Hzなので、 xrandr
のオプションに --rate 60
と指定した場合、最も近い59.94に設定されます。
モニタ出力がHDMI-1のディスプレイの解像度を3840x2160, リフレッシュレートを60Hzに指定する場合のコマンドは次の通りです。
xrandr --output HDMI-1 --mode 3840x2160 --rate 60
解像度やリフレッシュレートを変更した後に xrandr
コマンドでディスプレイの情報を取得すると、変更内容が反映されていることが分かります。
$ xrandr Screen 0: minimum 8 x 8, current 3840 x 2160, maximum 32767 x 32767 DVI-D-0 disconnected (normal left inverted right x axis y axis) HDMI-0 disconnected (normal left inverted right x axis y axis) HDMI-1 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 700mm x 400mm 3840x2160 30.00 + 59.94* 50.00 29.97 25.00 23.98 2560x1440 59.95 1920x1200 59.88 1920x1080 60.00 60.00 59.94 50.00 50.00 23.97 60.00 50.04 1680x1050 59.95 1600x900 60.00 1440x900 59.89 1280x1024 75.02 61.00 1280x800 59.81 1280x720 59.94 50.00 1152x864 60.00 1024x768 75.03 70.07 60.00 800x600 75.00 72.19 60.32 56.25 720x576 50.00 720x480 59.94 640x480 75.00 72.81 59.94 59.93 DP-0 disconnected (normal left inverted right x axis y axis) DP-1 disconnected (normal left inverted right x axis y axis) DP-2 disconnected (normal left inverted right x axis y axis) DP-3 disconnected (normal left inverted right x axis y axis) $
設定の永続化
シェルから xrandr
コマンドで解像度やリフレッシュレートの変更を実行しても、シャットダウンすると設定が消えてしまいます。毎回コマンドを叩くのも面倒なので、保存させる方法がないか調べてみると、X Window Systemの設定ファイルに xrandr
コマンドを記述すれば良いようです。ユーザ単位で設定する場合、 .xprofile
に解像度やリフレッシュレートを指定する xrandr
コマンドを記述します。
ハマった点
解像度は特に何も設定することなく4Kになっていたのですが、リフレッシュレートだけ上げたいと思い、 --mode
オプションを指定せずに実行しましたが、画面に変化はなく、 xrandr
コマンドの実行結果も変化がありませんでした。
xrandr --output HDMI-1 --rate 60 # 設定が反映されない
リフレッシュレートを指定する際には、 --mode
オプションを用いて、どの解像度に対してリフレッシュレートを変更するか明示する必要があるみたいです。
まとめ
Ubuntuでディスプレイのリフレッシュレートを変更するには、 xrandr
コマンドを利用して変更します。リフレッシュレートの設定だけでなく、ディスプレイの設定可能な解像度やリフレッシュレートを取得することもできます。
リフレッシュレートを xrandr
で設定する際には、 --rate
オプションを用いるだけでなく、 --mode
オプションで解像度も指定する必要があります。オプションで指定されたリフレッシュレートの値が、指定の解像度で設定可能なリフレッシュレートに存在しない場合、最も近い値を設定します。
シェルから変更された解像度やリフレッシュレートは永続化されないので、Ubuntuの起動時に解像度やリフレッシュレートを自動的に設定させる必要があります。ユーザごとに設定を指定する場合は、 .xprofile
に解像度やリフレッシュレートを指定する xrandr
コマンドを記述します。 より詳しい xrandr
コマンドの使い方は、 xrandr(1)
を参照してください。