如何在拔下耳机时将HDMI配置为默认音频?

当我拔掉耳机时,声音设备会自动设置为“数字输出(S/PDIF)”,而不是之前插上耳机时使用的“HDMI/Displayport”。
我该如何配置系统,使其在连接耳机时使用耳机,并在未连接耳机时使用HDMI输出?我不希望系统使用“数字输出(S/PDIF)”。
1个回答

根据'user.dz'的说法,当耳机断开连接时,可以触发一个脚本。
当耳机断开连接时,使用ACPI来触发一个脚本。
当耳机断开连接时执行什么代码?)。
在大多数系统中,如果不是所有系统,ACPI可以处理这个事件。为了测试:
运行acpi_listen
拔下并重新插入耳机,示例输出:(麦克风/耳机共用同一个插孔)
插孔/耳机 耳机拔出 插孔/麦克风 麦克风拔出 插孔/耳机 耳机插入 插孔/麦克风 麦克风插入
将your-script.sh放在/etc/acpi/目录下
在/etc/acpi/events/目录下为您的脚本添加一个事件触发文件
事件=插孔/耳机 耳机拔出 操作=/etc/acpi/your-script.sh
查看其他文件以进行学习。
您可能需要重新启动acpid服务以重新加载更改后的规则在/etc/acpi/events/目录下
sudo service acpid restart

在终端中设置默认耳机脚本

可以参考'Takkat'的答案来完成

(从命令行如何更改默认音频设备)

您可以通过使用pacmd和pactl命令全面控制PulseAudio。有关选项,请参阅man页面或PulseAudio的wiki:

pacmd list-sinks(或pactl list short sinks)以获取可能的音频输出接口的名称或索引号

pacmd set-default-sink "SINKNAME"来设置默认的音频输出接口

pacmd set-default-source "SOURCENAME"来设置默认的音频输入接口

pacmd set-sink-volume index volume用于设置音量

pacmd set-source-volume index volume用于音量控制(65536 = 100%,0 = 静音;或者稍微直观一点的0x10000 = 100%,0x7500 = 75%,0x0 = 0%)

还有许多其他命令行选项可用。

这是我的第一个回答 - 希望能有所帮助,如果有任何需要改进的地方,请原谅并告诉我。

1谢谢!你的回答唯一缺少的是在脚本中的pacmd之前添加这行代码:export PULSE_RUNTIME_PATH="/run/user/<your user id>/pulse/"。这是必需的,因为ACPI脚本以root用户运行,而pulse audio则在登录的用户下运行。 - Óscar
1这个解决方案的问题是它破坏了Ubuntu的声音配置。现在当我打开声音设置窗口时,里面是空的,没有输出设备... - Óscar
1为了避免破坏Ubuntu的声音设置,您应该使用action=/bin/su -c "/etc/acpi/your_script.sh" - your_username - Óscar
非常感谢提供的详细信息,我想我现在也会自己去做同样的事情!谢谢~ - Jake Cope