ノートブックカバーを閉じるときに/etc/acpi
screen()をオフにするスクリプトを使用しています。xset dpms force
off
これで、外部モニターを接続するときに動作が異なるように(明るさを0に設定する)ようにします。接続されているかどうかをテストできますが、xrandr
スクリプトはルートによって実行され、xrandrは特定のXセッションに依存します。 Xセッションに関係なく、モニタが接続されているかどうかをルートテストする方法はありますか?私はアーチLinuxを使用しています。
ベストアンサー1
方法 #1 - edid デコード
これにより、edid-decode
どのモニターが接続されているかを確認できます。これは私のUbuntu 16.04システムからのものですが、Fedora 28とCentOS 7.xでも動作します。
メモ:この特定のシステムには2つのビデオポートがあり、私はVGAポートを使用しました。
このモニターは接続されています:
$ ls /sys/class/drm/*/edid | xargs -n 1 edid-decode | grep Manufacturer:
Manufacturer: DEL Model a071 Serial Number 844247885
Manufacturer: @@@ Model 0 Serial Number 0
VGAモニターを取り外すと、これが起こります。
$ ls /sys/class/drm/*/edid | xargs -n 1 edid-decode | grep Manufacturer:
Manufacturer: @@@ Model 0 Serial Number 0
Manufacturer: @@@ Model 0 Serial Number 0
ここに再挿入されます。
$ ls /sys/class/drm/*/edid | xargs -n 1 edid-decode | grep Manufacturer:
Manufacturer: DEL Model a071 Serial Number 844247885
Manufacturer: @@@ Model 0 Serial Number 0
方法#2 - 猫sysfs
どのディスプレイポートがあるかを詳しく見ると、/sys
ここに表示されます/sys/class/drm
。
$ ls /sys/class/drm
card0 card0-DP-1 card0-HDMI-A-1 controlD64 renderD128 version
モニターの表示ポートはcard0-DP-1
(VGA)とcard0-HDMI-A-1
(HDMI)です.各ディレクトリを見ると、というファイルがあります。このファイルをstatus
使用するとcat
、そのポートの状態とモニターが接続されているかどうかがわかります。
上記と同じテストに以下を挿入します。
$ cat /sys/class/drm/card0-DP-1/status
connected
プラグを抜く:
$ cat /sys/class/drm/card0-DP-1/status
disconnected