通常、大型モニターにドッキングされているラップトップを持っています。ドッキングしたときは、大型モニターをプライマリディスプレイとして使用し、ラップトップ画面をセカンダリディスプレイとして右側に配置します。ドッキングを解除すると、ノートパソコンの画面が唯一のディスプレイになります。
XFCEには、そのようなマルチモニターのサポートが組み込まれていないようです。- ARandR が見つかりました。これにより、モニターを希望どおりにセットアップできます。 ARandRを使用して、ドッキングされた構成とドッキングされていない構成のプロファイルを保存できます(これらは、実際には xrandr を呼び出す単なるシェルスクリプトです)。
しかし、ラップトップがドッキングおよびドッキング解除されたときに、これらのプロファイルを自動的に適用するにはどうすればよいですか?ドッキングステーションを検出するudevルールを作成する必要がありますか?もっと良い方法はありますか?
1つの方法はudevルールを作成することですが、もっと移植性の高いものが欲しかったので、このbashスクリプトを用意しました。 inotifywaitのサポートに依存しており、なんらかのループがなく、効率的と見なされています。
external-lcd.sh
#!/bin/sh
# inspired of:
# http://unix.stackexchange.com/questions/4489/a-tool-for-automatically-applying-randr-configuration- when-external-display-is-p
# http://ozlabs.org/~jk/docs/mergefb/
# http://superuser.com/questions/181517/how-to-execute-a-command-whenever-a-file-changes/181543#181543
export MONITOR2=/sys/class/drm/card0-VGA-1/status
while inotifywait -e modify,create,delete,open,close,close_write,access $MONITOR2;
dmode="$(cat $MONITOR2)"
do
if [ "${dmode}" = disconnected ]; then
/usr/bin/xrandr --auto
echo "${dmode}"
Elif [ "${dmode}" = connected ];then
/usr/bin/xrandr --output VGA1 --auto --right-of LVDS1
echo "${dmode}"
else /usr/bin/xrandr --auto
echo "${dmode}"
fi
done
ファイルを実行可能にすることを忘れないでください(chmod +x external-lcd.sh
)。次に、DEを起動するたびに起動します。
これをarchlinuxで使用しているので、動作するはずです。 xrandrパラメーターを変更するか、交換してarandr構成を使用できます。