Добрый день!
Подскажите, пожалуйста, каким образом можно настроить автоматическую очистку списка подключенных Bluetooth устройств при загрузке системы?
Часто использудю Bluetooth наушники на разных устройствах (ПК, ТВ, ноутбук, телефон).
При включении наушников они автоматически подключаются к тому устройству, к которому были подключены в последний раз.
А обычно, когда их включаю, планирую использовать не с тем устройством к которому были подключены в последний раз.
Для автоматической очистки списка подключенных Bluetooth устройств при загрузке системы, вы можете использовать следующие шаги:
- **Создайте скрипт настройки:**Вам нужно создать скрипт, который будет выполняться при загрузке системы и удалять список сопряженных 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, однако я рад, что решение сработало для вас, хоть и с небольшими изменениями.
Молодец! 