我想让我的扬声器和耳机插孔在我从休眠/挂起状态恢复时自动静音,或者在我休眠/挂起之前静音。现在我可以编写一个脚本来执行此操作,但我知道有很多方法可以做到这一点,但是有没有正确的方法来编写这个脚本,以及将它放在哪里是合适的,相比于没有深入到这个脚本应该驻留的系统层次的基本解决方法。
答案1
该目录/etc/pm/sleep.d/
包含在系统挂起、休眠、恢复(即从挂起状态恢复)或解冻(从休眠状态恢复)时运行的脚本。
因此,您的脚本应放在此目录中,以便在这些事件发生时调用。脚本的第一个参数(即 in $1
)将是正在执行的操作(即suspend
、hibernate
或resume
之一thaw
)。您的脚本可以在恢复和解冻操作上运行,以相应地静音音量。查看那里的一些现有脚本作为示例。这些钩子脚本的文档位于pm-action
手册页中。
至于静音本身:我建议使用alsactl
将静音配置的“状态”保存到文件(例如/var/lib/alsa/asound-muted.state
)。脚本运行时,它可以调用alsactl
以从此保存的状态恢复:
alsactl -f /var/lib/alsa/asound-muted.state restore <card-id>
或者,您可以使用amixer
将特定音量控制的值设置为零:
amixer -c 0 sset PCM,0 0
— 但是,amixer 的参数将取决于您的特定声音硬件配置。