每次我退出、休眠或关闭电脑时,Ubuntu 都会将音频输入和输出设备从 USB 耳机切换到内置声卡,这很烦人。即使在 PulseAudio 中选择了“USB 耳机模拟立体声”的“设置为后备选项”,这种情况仍然会发生。
我决定每次计算机启动或解冻时都运行一个脚本。让命令在我登录时运行很容易:我只需将它们放在我的 .zshrc 文件中即可。但我在从休眠状态唤醒时很难让它们运行。这是我的脚本,我将其放在 /etc/pm/sleep.d 中:
#!/bin/bash
case "$1" in
thaw|resume)
pacmd set-default-sink "alsa_output.usb-Sennheiser_Communications_Sennheiser_USB_Headset-00-Headset.analog-stereo"
pacmd set-default-source "alsa_output.usb-Sennheiser_Communications_Sennheiser_USB_Headset-00-Headset.analog-stereo.monitor"
;;
esac
问题是它在解冻时不执行 pacmd 命令(我不暂停我的计算机,因为它在恢复时会冻结)。我尝试了脚本的多种变体,包括将 pacmd 命令放在 case 语句之外,以便它们(看起来)无论如何都会执行,但无济于事。
当我在脚本中放入其他命令(例如gvim
)并使计算机休眠和解冻时,它们也不会执行。但是,如果命令位于语句之外并且我在命令行运行脚本,则命令会执行。如果我在 /etc/pm/power.d 中的脚本中将命令放在 case 语句之外,它们会执行两次。