Ubuntu 笔记本电脑盖子关闭时静音

Ubuntu 笔记本电脑盖子关闭时静音

当我忘记在关闭笔记本电脑之前停止视频,然后在公共场合打开笔记本电脑时却播放声音时,我感到很烦人。

我尝试将以下脚本添加到/lib/systemd/system-sleep

#!/bin/bash

amixer -q -D pulse sset Master mute

echo 2 >> /home/user/test

该脚本似乎是在暂停时调用的,因为新行被附加到文件中test(两次,这可能表明该脚本也在恢复时运行 - 有人可以证实这个假设吗?)。

音响系统要么自动重新启动,要么是其他问题。但是amixer,手动执行命令时,可以正常工作。

有任何想法吗?

答案1

您可以通过创建服务在暂停之前将声音静音systemd

  • 首先,确保您的脚本是可执行的:

    chmod u+x /path/to/your/script.sh
    
  • 然后,通过运行以下命令创建systemd运行脚本的服务:

    sudo nano /etc/systemd/system/mute_before_sleep.service
    
  • nano窗口中输入以下内容:

    [Unit]
    Description=Mute sound before suspend
    Before=suspend.target
    
    [Service]
    ExecStart=/path/to/your/script.sh
    User=<your_username>
    Environment=DISPLAY=:0
    
    [Install]
    WantedBy=suspend.target
    

    输入ExecStart=您的脚本路径并输入User=您的用户名。

  • nanoCtrl+O然后按Ctrl+保存并关闭X

  • 最后启用服务:

    sudo systemctl enable mute_before_sleep.service
    

答案2

TL;DR:执行环境不同,因此 amixer 命令返回错误

该脚本似乎在暂停时被调用,因为新行被附加到“测试”文件

是的,它可以运行,但是我已经测试了你的脚本并且amixer命令返回一个错误(已用 审查sudo journalctl -b -u systemd-suspend.service):

Jan 04 18:46:49 administrator-PC systemd-sleep[12969]: ALSA lib control.c:1373:(snd_ctl_open_noupdate) Invalid CTL pulse
Jan 04 18:46:49 administrator-PC systemd-sleep[12969]: amixer: Mixer attach pulse error: No such file or directory

问题似乎是-D pulse部分原因。但更简单的命令amixer -q set Master mute有效。恢复后,我的笔记本电脑音量已静音,错误不再出现。

两次 - 这可能表明脚本也在恢复时运行 - 有人可以证实这个假设吗?

是的,脚本运行两次 - 一次在挂起时,一次在恢复时;脚本每次运行时带有两个位置参数systemd-sleep(8)Arch Wiki 文章我使用的完整脚本如下所示(请注意,调用echo和的部分date并不是特别相关并且仅用于调试;它们可以安全地从脚本中删除):

#!/bin/sh

# this will go into journalctl log
echo SUSPEND SCRIPT STARTED
case $1/$2 in
  pre/*) amixer -q set Master mute; { echo Suspending; date >> /suspend_log.txt;}  ;;  
  post/*) { echo "Waking up from $2..."; date;} >> /suspend_log.txt ;;
  *) echo foobar;;
esac

至于为什么原始 amixer 命令在手动运行时有效,可能是因为当 systemd 运行脚本时,DISPLAY环境中没有变量。相比之下,当您使用 GUI 终端仿真器时,变量存在,因此原始命令有效。原始命令可以通过以下方式调整以使用环境变量

DISPLAY=:0 amixer -q -D pulse sset Master mute

但我仍然建议使用amixer -q set Master mute与环境无关的命令。

相关内容