X11
如何在沒有 acpi、xrandr、/sys 和 udev 的情況下檢測顯示器何時插入或拔出?
我已經閱讀了這個問題的答案,但我沒有 ACPI,該
/sys/class/drm/card0-socket/status
方法不起作用並且該xrandr
方法阻塞了我的 CPU。udevadm monitor
(拔下)插入顯示器時不顯示任何內容。我有一個大約 2013 年的聯想 ThinkPad w530 和 nVidia quadro 的東西。我正在與
nouveau
驅動程序一起執行 Lubuntu 18.04。顯示器是 27 英寸飛利浦 271S。我使用的是 VGA 電纜。如何檢測監視器(拔出)插入?
我求助於輪詢外部螢幕 EDID。我安裝了read-edid包,在visudo中加了一行
%sudo ALL=(ALL:ALL) NOPASSWD:/usr/bin/get-edid
允許無密碼 get-edid 並使用以下循環:
#!/bin/bash # edid_based_automatic_display_loop.sh 導出 NEW_CONNECTION=1 導出 NEW_DISCONNECTION=1 儘管 : 做 睡覺 1 sudo get-edid 2>/dev/null|parse-edid 2>/dev/null|grep "PHL 271S7Q">/dev/null _DISCONNECTED=`回顯 $?` # echo "DISCONNECTED $_DISCONNECTED" 如果 [ $_DISCONNECTED = "0" -a $NEW_CONNECTION = "1" ] ; 然後 導出 NEW_DISCONNECTION=1; 導出 NEW_CONNECTION=0; bash /home/bruno/.screenlayout/only_external.sh elif [ $_DISCONNECTED = "1" -a $NEW_DISCONNECTION = "1" ] ; 然後 導出 NEW_DISCONNECTION=0; 導出 NEW_CONNECTION=1; bash /home/bruno/.screenlayout/only_laptop.sh 是 完畢