如何从命令行在 Ubuntu 18.04 中快速切换屏幕和声音输出?

如何从命令行在 Ubuntu 18.04 中快速切换屏幕和声音输出?

我使用 HDMI 线将电视连接到笔记本电脑。

我希望能够快速执行以下操作:

  • 激活电视作为主显示屏并关闭笔记本电脑屏幕,
  • 从音响切换到 HDMI 声音

以及反方向。

为此,我编写了以下 bash 脚本:

#!/bin/bash

# Switch between (HDMI output + HDMI sound) and (laptop display and laptop sound)

laptopDisp="eDP-1"
laptopSound="sound profile name returned by pacmd list-sinks | grep -e 'name:'"
hdmiDisp="HDMI-1"
hdmiSound="HDMI sound profile name returned by pacmd list-sinks | grep -e 'name:'"

currentDisplay=$(xrandr | grep " connected primary " | awk '{ print$1 }')

if [ "$currentDisplay" == "$laptopDisp" ]
then
    echo "Switching on HDMI, switch off main display"
    xrandr --output $hdmiDisp --auto
    xrandr --output $laptopDisp --off
    pacmd set-default-sink $hdmiSound
    pulseaudio -k
else
    echo "Switching off HDMI screen and set sound from laptop speakers:"
    pacmd set-default-sink $laptopSound
    xrandr --output $laptopDisp --auto
    xrandr --output $hdmiDisp --off
    pulseaudio -k
fi

当我运行它时,主屏幕发生了变化。不幸的是,虽然我在声音控制面板中看到声源已更改,但我听不到笔记本电脑扬声器发出的任何声音。

问题的根源可能是什么?

相关内容