概要
- archlinuxをインストールした端末にHDMIを抜き差ししてもサブモニターに映像が出力されない。
- xrandrコマンドを利用することで出力することはできるが、手間なので自動化する。
- 記者の環境は以下を参照
手順
systemフォルダへ移動する
cd /etc/systemd/system
.serviceファイルを作成する
sudo vim monitor-connect.service
以下のように記載する
[Unit] Description=Connect to HDMI Monitor After=display.service [Service] Type=oneshot ExecStart=/usr/bin/bash -c ' if [ -e /sys/class/drm/card*/device/HDMI1 ]; then xrandr --output HDMI1 --auto --right-of VGA1 elif [ -e /sys/class/drm/card*/device/HDMI2 ]; then xrandr --output HDMI2 --auto --right-of VGA1 fi ' After=multi-user.target graphical.target display-manager.service [Install] WantedBy=multi-user.target
systemをリロードする
sudo systemctl daemon-reload
systemの有効化
sudo systemctl enable monitor-connect.service
再起動
reboot
解説
- モニタ側のHDMI1、HDMI2どちらにも対応できるようにする
if [ -e /sys/class/drm/card*/device/HDMI1 ]; then xrandr --output HDMI1 --auto --right-of VGA1 elif [ -e /sys/class/drm/card*/device/HDMI2 ]; then xrandr --output HDMI2 --auto --right-of VGA1 fi
- 起動に失敗しないようにsystemdスクリプトの実行順序を変更する
After=multi-user.target graphical.target display-manager.service
トラブルシューティング
- ファイル権限の見直し
- ディスプレイマネージャーとの競合問題解決