我正在运行 Linux Mint 19.1,并且想为使我的麦克风静音和取消静音的脚本分配一个快捷键。我发现了许多针对单个输入执行此操作的解决方案,例如
amixer set Capture toggle
pactl set-source-mute $source_number toggle
然而,当我在不同的输入(内置麦克风、蓝牙耳机、有线耳机)之间切换时,我更喜欢能够同时打开/关闭所有这些输入的设备。这意味着它们要么全部打开,要么全部关闭,不存在一个打开而另一个关闭的风险。
我不确定天气或分配的源编号是否pactl
恒定,并且希望有一个能够可靠工作的解决方案,无论我是否重新连接麦克风 42 次,甚至连接不同的(蓝牙)设备。
是否有一个命令可以获取系统使用的源(与系统相同指的是许多应用程序,例如 Zoom)?
如果是这样,当我运行命令/脚本时,我想获取该设备的状态并将所有相关设备的状态设置为相反的状态。
对我如何做到这一点有什么建议吗?
答案1
虽然这不能回答你的问题,但有效的方法是使用
pactl set-source-mute @DEFAULT_SOURCE@ toggle
切换当前使用的麦克风或
pactl set-source-mute @DEFAULT_SOURCE@ 1
静音而不是切换
答案2
使用 awk 您可以查找并迭代所有输入:
pactl list short sources | awk '/input.*RUNNING/ {system("pactl set-source-mute " $1 " toggle")}'
注意:如果稍后连接麦克风并且您已经将某些设备静音,则最终可能会导致不同设备之间的静音状态不同步。