2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

LightDMでカスタムの解像度を追加して永続化する

Last updated at Posted at 2021-09-02

Raspberry Pi Model 4BにTwister OSでデスクトップ環境を構築しました。ディスプレイの解像度はGUIから変更ができますが、あいにく接続したディスプレイに適した解像度がありませんでした。ここでは解像度を1366x768に設定するものとして、再起動しても反映されたままにする方法を記します。

ディスプレイに表示できなくなる場合に備えて、作業前にSSHで接続できるようにしておくのが望ましいです。

VESA CVT modelineの生成

新しい解像度設定のためのモード文字列をcvtコマンドで生成します。

$ cvt 1366 768
# 1368x768 59.88 Hz (CVT) hsync: 47.79 kHz; pclk: 85.25 MHz
Modeline "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync

1366x768を指定しているのに1368x768のモードで出力されていますが、これは水平カウントが8の倍数である(1368=171*8)というVESA CVTの標準に従うためです。
参考: xorg - cvt is acting strange when defining resoluton - Unix & Linux Stack Exchange

解像度設定を追加する

先ほどのcvtコマンドの出力からModelineの行を利用して解像度設定を追加します。

$ xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync

"1368x768_60.00"の部分は解像度設定の名前ですので自由に変更できます。
続いて画面出力に対して上記の設定値を追加しますが、その準備として追加先にする画面出力を調査します。

$ xrandr --listmonitors
Monitors: 1
 0: +*HDMI-1 1280/698x720/392+0+0  HDMI-1

この場合は1つしかディスプレイを接続していないため、HDMI-1が追加先の画面出力です。複数のディスプレイを接続している場合はより多くの行が表示されます。次に設定値を追加します。

$ xrandr --addmode HDMI-1 1368x768_60.00

1368x768_60.00xrandr --newmodeで追加した解像度設定の名前です。

画面の解像度を変更する

対象の画面の解像度を変更します。

$ xrandr --output HDMI-1 --mode 1368x768_60.00

指定した解像度になっていれば成功です。

解像度設定を永続化する

ここまでで現在のセッションに対する画面解像度は変更されましたが、再起動を行うとリセットされてしまいます。再起動後も同じ設定が維持されるように、ディスプレイマネージャが起動した時に上記の操作が行われるように設定します。
LightDMの設定ファイル/etc/lightdm/lightdm.confdisplay-setup-scriptの項目に指定されているシェルスクリプトを編集します。例として、私の環境では/usr/share/dispsetup.shでした。

/usr/share/dispsetup.sh
# !/bin/sh
xrandr --newmode "1368x768"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync
xrandr --addmode HDMI-1 1368x768
xrandr --output HDMI-1 --mode 1368x768
exit 0

一度ログインした状態で解像度設定を行っており、ログイン画面の解像度を気にしない場合はxrandr --output HDMI-1 --mode 1368x768の行はなくても問題ありません。その場合はログイン後に指定した解像度が適用されます。

参考

参考文献

試してダメだった方法

別の方法

  • ~/.xsessionrcに記述する
    • /usr/share/dispsetup.shからshebang(#!/bin/sh)とexit 0を除いたものを記述します
    • ログイン後にXセッションが起動してから実行されるため、ログイン画面では設定した解像度が適用されません
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?