我正在为 i3/Sway 编写自己的自定义状态以显示音量指示器,但遇到了障碍。
我想知道是否有一种标准方法,使用标准 Linux 工具(可能是 ALSA 或 sysfs)来检测耳机是否插入?我更愿意这样做,以防我想在任何时候从 Pipewire 切换到常规 JACK,或者其他什么。
我将发布我在网上找到的这个“半工作”解决方案的一个片段(抱歉,我不记得是谁发布的,所以我可以归功于那个人)。
has_headset() { grep -A4 -ri "Headphone Playback Switch" /proc/asound/card*/* | grep "Amp-Out vals.*\[0x00\]*" }
此功能has_headset()
有点用,但问题是如果耳机插入且静音,则无法使用。不确定“Amp-Out vals”的值是什么意思。似乎是[0x80] [0x80]
在拔下耳机时,然后[0x00] [0x00]
是插入耳机且未静音时。
我正在使用 POSIX sh,但也非常欢迎专门为 Bash 编写的解决方案!