LINUX.ORG.RU

Консольное подключение bluetooth наушников

 , , ,


1

1

Уже сейчас есть скрипт который прекрасно справляется со своей задачей. Сделан через передачу нужной команды в интерактивную программу

Полный текст скрипта:

#!/bin/sh
connect()
{
        HEADPHONES_MAC=`echo devices | bluetoothctl | egrep "^Device.*JBL" | awk '{ print $2 }'`
        echo connect $HEADPHONES_MAC | bluetoothctl
}

disconnect()
{
        echo disconnect | bluetoothctl
}

VAL=`echo exit | bluetoothctl | grep exit | sed -r "s/\x1B\[([0-9]{1,3}((;[0-9]{1,3})*)?)?[m|K]//g" | cut -d '#' -f 1`

[ "$VAL" = "[bluetooth]" ] && connect || disconnect

Вопрос: есть ли более элегантный способ добиться того же результата? Очень не нравиться выражение подаваемое sed’у, которое убирает цвет из текстового вывода программы

Ответ на: комментарий от WitcherGeralt

Показалось, что этот раздел подходит больше чем general, desktop или admin

brualan
() автор топика

Bluetoothctl версии выше 5.50 уже умеет нормально работать из командной строки bluetoothctl devices и все такое. Неинтерактивный режим работает короче.

irton ★★★★★
()
Ответ на: комментарий от anonymous

Подключается, но скрипт позволяет это автоматизировать. Например, у меня есть скрипт, называется «chill-mode». Он запускает в полноэкранном режиме mpv со списком воспроизведения из видео из моих подписок youtube и подключает наушники, что бы можно было отдохнуть. Или например, есть скрипт «work-mode-enabled», который подключает наушники, открывает в браузере яндекс.музыку, подключается к 2 мониторам (в основном работаю с ноута) в нужной мне конфигурации. И так далее

brualan
() автор топика
Ответ на: комментарий от irton

Ок, спасибо. В linux mint пока что из apt ставиться только 5.48, буду следить, как только обновиться — улучшу скрипт

brualan
() автор топика
Ответ на: комментарий от brualan

Понятно, включение-выключение просто привязано к задачам, запускаемым из скрипта.

anonymous
()
#remove escape characters from input
resc() { sed 's/\x1b\[[0-9;]*[mK]//g; }

И всё, больше тут ничего непонятного в скрипте нету(cut можешь туда же запихнуть). вот ещё добавь

# UB
bluetoothctl() {
btctl=`which bluetoothctl`
echo $@| $btctl
}

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.