蕎麦茶さんの備忘録

エンジニアスキルになる記事を記載していきます

archlinuxで外部モニターを使用する

概要

  • archlinuxをインストールした端末にHDMIを抜き差ししてもサブモニターに映像が出力されない。
  • xrandrコマンドを利用することで出力することはできるが、手間なので自動化する。

xrandr - ArchWiki

  • 記者の環境は以下を参照

github.com

手順

  1. systemフォルダへ移動する
    cd /etc/systemd/system

  2. .serviceファイルを作成する
    sudo vim monitor-connect.service

  3. 以下のように記載する

[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
  1. systemをリロードする
    sudo systemctl daemon-reload

  2. systemの有効化
    sudo systemctl enable monitor-connect.service

  3. 再起動
    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

トラブルシューティング

  • ファイル権限の見直し
  • ディスプレイマネージャーとの競合問題解決