设置快捷方式以打开或关闭蓝牙

设置快捷方式以打开或关闭蓝牙

有没有办法做到这一点而不安装额外的软件包?

答案1

你可以通过 来控制蓝牙信号是否启用rfkill。将其包装在一个小的 Bash 条件中,你就可以轻松切换状态:

#!/bin/bash
if rfkill list bluetooth | grep -q 'yes$' ; then 
    rfkill unblock bluetooth
else
    rfkill block bluetooth
fi

您可以将上述内容保存在任何地方的脚本文件中(例如~/bin/toggle-bluetooth),并使其可执行(chmod +x FILENAME),以便能够将该命令绑定到系统设置中的键盘快捷键。

或者,您可以将其放在单行bash命令中,然后直接将其粘贴到快捷方式中:

bash -c "if rfkill list bluetooth|grep -q 'yes$';then rfkill unblock bluetooth;else rfkill block bluetooth;fi"

答案2

如果您不仅想切换蓝牙本身,还想切换与特定设备的连接,则可以使用以下脚本。我在 Ubuntu 20.04 中使用它来切换与扬声器的蓝牙连接。它会检查连接是否已建立并相应地进行切换。

请注意,它已将我的扬声器的 MAC 地址进行硬编码。

!/bin/bash

# Toggle connection to bluetooth device

mac="90:03:B7:17:00:08" # DEH-4400BT

if bluetoothctl info "$mac" | grep -q 'Connected: yes'; then
    echo "Turning off $mac"
    bluetoothctl disconnect || echo "Error $?"
else
    echo "Turning on $mac"
    # turn on bluetooth in case it's off
    rfkill unblock bluetooth

    bluetoothctl power on
    bluetoothctl connect "$mac"
    sink=$(pactl list short sinks | grep bluez | awk '{print $2}')

    if [ -n "$sink" ]; then
        pacmd set-default-sink "$sink" && echo "OK default sink : $sink"
    else
        echo could not find bluetooth sink
        exit 1
    fi
fi

相关内容