自动检测何时插入 HDMI

Automatically detect when HDMI is plugged in

有时我会通过 HDMI 将笔记本电脑连接到电视以获得更大的屏幕。不幸的是,它不会自动切换音频输出,所以我每次插入或拔出它时都必须自己做,用这两个中的任何一个,让声音来自我想要的地方。

有什么方法可以检测 HDMI 是否已插入,或者至少是否发生了变化?谢谢!

Linux 薄荷 18.2 Xfce x64,华硕 P756U

我使用两种不同的方法来确定是否插入了 HDMI:

a) 使用 xrandr
一个简单的 xrandr 将报告您的 hdmi 监视器已连接 要在脚本中使用它,您可以执行以下操作:

hdmi_active=$(xrandr |grep ' connected' |grep 'HDMI' |awk '{print }')

以上将 return 连接的 hdmi 端口(即 HDMI-1),或者如果没有连接 HDMI,则 return 什么都没有。

然后您可以使用

[[ ! -z "$hdmi_active" ]] && do_your_stuff 
如果未设置 $hdmi_active

z 将变为 true! z 恢复此行为并且 returns true 如果 hdmi_active 有一个值 = hdmi 已连接

b) 使用 HDMI 状态文件:

$ cat /sys/class/drm/card0/*HDMI*/status

此return已连接/断开您的 hdmi 端口:

$ cat /sys/class/drm/card0/*HDMI*/status
disconnected
disconnected

然后您可以使用类似以下内容测试该结果:

hdmi_active="$(cat /sys/class/drm/card0/*HDMI*/status |grep '^connected')" #Using ^ we avoind matching disconnected from the regex match, since ^ in an anchor to the beginning of the line
[[ ! -z "$hdmi_active" ]] && do_your_stuff #hdmi is active