我一直在痛苦的 i3wm 道路上走下去,但我一生都无法理解如何使用 cli 命令更改输出设备。
设置:
- 使用 i3-gaps(基础发行版是 Garuda Linux)
- Pipewire 是音频提供商
- 使用 pavucontrol 时,我可以在耳机和扬声器之间切换作为输出端口,但似乎无法弄清楚 pactl、wpctl、aplay 后台发生了什么变化
- 我将耳机连接到前辅助面板,将扬声器连接到后辅助面板。
任何帮助,将不胜感激 :)
更新:找到解决方案并将其发布在评论中
答案1
您pactl list short sinks
应该能够列出您的接收器、输出设备,并获得pactl info
有关实际配置的信息。应该Default Sink
命名实际输出。
要切换默认接收器,您可以使用pactl set-default-sink <sink_name>
。
我在网上找到了一个脚本,每次调用它时都会切换可能的接收器:https://ericlathrop.com/2021/02/changing-pulseaudio-outputs-programmatically/
尽管它说它适用于脉冲,但它也适用于管道线(至少对我来说)。
答案2
找到了一个解决方案并为其编写了一个简短的脚本
if [[ $(pactl list | grep "Active Port: analog-output") == *"headphones"* ]]; then
pactl set-sink-port 0 analog-output-lineout
else
pactl set-sink-port 0 analog-output-headphones
fi
还将其添加到我的 i3config 中:
bindsym F6 exec --no-startup-id sh ~/path/to/script/switch_output.sh
答案3
我必须首先设置卡配置文件,然后设置默认接收器。
这是对我有用的示例:
pactl set-card-profile alsa_card.usb-Focusrite_Scarlett_Solo_USB_...
pactl set-default-sink alsa_output.usb-Focusrite_Scarlett_Solo_USB_....HiFi__hw_USB__sink
我使用自动完成来选择字符串。