如何使从休眠或挂起状态恢复后自动静音?

如何使从休眠或挂起状态恢复后自动静音?

我想让我的扬声器和耳机插孔在我从休眠/挂起状态恢复时自动静音,或者在我休眠/挂起之前静音。现在我可以编写一个脚本来执行此操作,但我知道有很多方法可以做到这一点,但是有没有正确的方法来编写这个脚本,以及将它放在哪里是合适的,相比于没有深入到这个脚本应该驻留的系统层次的基本解决方法。

答案1

该目录/etc/pm/sleep.d/包含在系统挂起、休眠、恢复(即从挂起状态恢复)或解冻(从休眠状态恢复)时运行的脚本。

因此,您的脚本应放在此目录中,以便在这些事件发生时调用。脚本的第一个参数(即 in $1)将是正在执行的操作(即suspendhibernateresume之一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 的参数将取决于您的特定声音硬件配置。

相关内容