Удаление подключенных устройств Bluetooth при загрузке системы

Добрый день!
Подскажите, пожалуйста, каким образом можно настроить автоматическую очистку списка подключенных Bluetooth устройств при загрузке системы?

Часто использудю Bluetooth наушники на разных устройствах (ПК, ТВ, ноутбук, телефон).
При включении наушников они автоматически подключаются к тому устройству, к которому были подключены в последний раз.
А обычно, когда их включаю, планирую использовать не с тем устройством к которому были подключены в последний раз.

Для автоматической очистки списка подключенных Bluetooth устройств при загрузке системы, вы можете использовать следующие шаги:

  1. **Создайте скрипт настройки:**Вам нужно создать скрипт, который будет выполняться при загрузке системы и удалять список сопряженных Bluetooth устройств. В большинстве случаев, это можно сделать с использованием команды bluetoothctl, которая предоставляет управление Bluetooth в командной строке.Создайте текстовый файл с расширением .sh, например, reset_bluetooth.sh, и добавьте в него следующий код:
#!/bin/bash

# Убедитесь, что Bluetooth выключен
rfkill block bluetooth

# Удалите все сопряженные устройства
bluetoothctl << EOF
remove *
quit
EOF

# Включите Bluetooth обратно
rfkill unblock bluetooth

Этот скрипт отключает Bluetooth, удаляет все сопряженные устройства и затем включает Bluetooth снова.

  • **Дать права на выполнение скрипта:**Откройте терминал и выполните следующую команду для предоставления прав на выполнение скрипта:
chmod +x reset_bluetooth.sh
  • **Добавьте скрипт в автозапуск:**В зависимости от вашей системы (Linux-дистрибутив или ОС), добавьте скрипт в список автозапуска. Например, на большинстве дистрибутивов Linux, вы можете использовать systemd для этой цели.Создайте файл службы, например, reset_bluetooth.service:
sudo nano /etc/systemd/system/reset_bluetooth.service

Вставьте следующий текст в файл:

[Unit]
Description=Reset Bluetooth on startup

[Service]
ExecStart=/полный/путь/к/вашему/скрипту/reset_bluetooth.sh

[Install]
WantedBy=multi-user.target

Замените /полный/путь/к/вашему/скрипту/ на фактический путь к вашему скрипту reset_bluetooth.sh.

  • **Запустите службу и настройте автозапуск:**Выполните следующие команды:
sudo systemctl daemon-reload
sudo systemctl enable reset_bluetooth.service
sudo systemctl start reset_bluetooth.service

Это запустит ваш скрипт при каждой загрузке системы и очистит список сопряженных Bluetooth устройств.

Теперь, при каждой загрузке системы, ваш скрипт будет выполняться автоматически, и список сопряженных Bluetooth устройств будет очищен.

1 Like

Спасибо за подробный ответ!

Сделал все по инструкции, перезагрузился.
Список устройств остался не удален.
Попытался выполнить скрипт самостоятельно в терминале, получил:

./reset_bluetooth.sh: строка 7: bluetoothctl: команда не найдена

Выполнил

 sudo pacman -S bluez-utils

Очередной запуск скрипта вручную стал выдавать:

[bluetooth]# remove *
Too many arguments: 15 > 1
[bluetooth]# quit

Не понял, что за " 15 > 1" и не нашел как удалить все устройства “*, all, %” не срабатывали. Пришлось перечислить mac адреса используемых наушников.

Далее эксперементы со скриптом показали, что после выполнения команды:

rfkill block bluetooth

Происходит отключение bluetooth и список устрой с отключенным bluetooth не очищается.
Убрал из скрипта отклчюение и включение bluetooth.

У меня итоговый рабочий вариант получился следующий:

#!/bin/bash

# Без паузы перед выполнением не очищается список устройств
sleep 5

# Удаляем перечисленные сопряженные устройства
bluetoothctl <<EOF
remove 'AB:CD:EF:AB:CD:EF'
remove 'CD:EF:AB:CD:EF:AB'
quit
EOF>>

Список mac адресов подключенных bluetooth устройств можно получить

bluetoothctl devices

На самом деле я не использую Bluetooth, однако я рад, что решение сработало для вас, хоть и с небольшими изменениями.

Молодец! :partying_face: