Ubuntu виджет Bluetooth для устройства - PullRequest
0 голосов
/ 20 ноября 2018

Я хотел посмотреть, есть ли способ запрограммировать очень упрощенный графический интерфейс (кнопка включения / выключения) для подключения к определенному устройству Bluetooth с помощью команды bluetoothctl .

1 Ответ

0 голосов
/ 02 июля 2019

Вот как я это сделал.

  1. Скрипт для переключения соединения
  2. Ярлык меню для вызова скрипта

Скрипт, который я поместил в ~ / .local / bin (любое место хорошо):

#!/usr/bin/env python3
from subprocess import check_output, call


def is_connected(device_mac):
    return b'Connected: yes\n' in check_output(['bluetoothctl', 'info', device_mac])

def connect(device_mac):
    print('connecting to bluetooth device {}'.format(device_mac))
    call(['bluetoothctl', 'connect', device_mac])

def disconnect(device_mac):
    print('disconnecting from bluetooth device {}'.format(device_mac))
    call(['bluetoothctl', 'disconnect', device_mac])

def main(device_mac):
    if is_connected(device_mac):
        disconnect(device_mac)
    else:
        connect(device_mac)

if __name__ == '__main__':
    main('04:5D:4B:E9:29:D4')

Найдите MAC-адрес вашего устройства в списке добавленных вами устройств:

$ bluetoothctl devices

Изамените MAC-адрес '04: 5D: 4B: E9: 29: D4 'на MAC-адрес вашего устройства.

Затем я создал ярлык меню, создав файл .desktop.Вы можете поместить его на рабочий стол ~ / Desktop, чтобы увидеть его на рабочем столе ... или / и в ~ / .local / share / apps, чтобы он был доступен в меню панели запуска.

[Desktop Entry]
Categories=utilitary
Comment=Connect or disconnect my headset Sony MDR 1000X
Exec="/home/aho/.local/bin/toggle-mdr-1000x.py"
Icon=/home/aho/.local/share/toggle-mdr-1000x/sony-mdr-1000x.png
Name=MDR-1000X
Terminal=false
Type=Application
Version=1.0

Теперь,когда я открываю меню черточки с помощью супер-клавиши / клавиши Windows и набираю «mdr», появляется запись, я нажимаю клавишу ввода и BAM! , она подключается / отключается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...