La réponse ci-dessus fonctionne, mais pas pour tous les appareils audio Bluetooth. Certains périphériques ont des noms de profil différents de ceux que l'affiche a avec ses haut-parleurs Bluetooth. Par exemple, dans le code suivant, qui a été posté à l'origine par cette personne, il y a apparemment des profils nommés a2dp
y hsp
. Aucune de ces fonctions n'est disponible avec mes LG Tones, par exemple, mais elles le sont avec d'autres appareils comme mon casque Sony.
#!/bin/bash
BLUEZCARD=$(pactl list cards short | egrep -o bluez.*[[:space:]])
pactl set-card-profile $BLUEZCARD a2dp
pactl set-card-profile $BLUEZCARD hsp
pactl set-card-profile $BLUEZCARD a2dp
Ce code fonctionnera pour la plupart des appareils Bluetooth, mais pour que cela fonctionne correctement pour les appareils qui n'ont pas le profil a2dp ou le profil hsp, tapez :
pactl list | grep -Pzo '.*bluez_card(.*\n)*'
Cela renverra tout ce qui se trouve après avoir trouvé un appareil bluetooth. Par exemple, avec l'oreillette LG Tone Ultra, j'obtiens ceci :
Name: bluez_card.B8_AD_3E_**_**_**
Driver: module-bluez5-device.c
Owner Module: 36
Properties:
device.description = "LG HBS810"
device.string = "B8:AD:3E:**:**:**"
device.api = "bluez"
device.class = "sound"
device.bus = "bluetooth"
device.form_factor = "headset"
bluez.path = "/org/bluez/hci0/dev_B8_AD_3E_**_**_**"
bluez.class = "0x240404"
bluez.alias = "LG HBS810"
device.icon_name = "audio-headset-bluetooth"
device.intended_roles = "phone"
Profiles:
a2dp_sink: High Fidelity Playback (A2DP Sink) (sinks: 1, sources: 0, priority: 10, available: yes)
headset_head_unit: Headset Head Unit (HSP/HFP) (sinks: 1, sources: 1, priority: 20, available: yes)
off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
Active Profile: a2dp_sink
Ports:
headset-output: Headset (priority: 0, latency offset: 0 usec)
Part of profile(s): a2dp_sink, headset_head_unit
headset-input: Headset (priority: 0, latency offset: 0 usec)
Part of profile(s): headset_head_unit
Nous sommes intéressés par le profiles
section. Dans cette section, nous voyons trois profils, qui sont a2dp_sink
, headset_head_unit
et off
. Les deux profils dont nous avons besoin doivent comporter (A2DP Sink) et (HSP/HFP). Dans ce cas, il s'agit de a2dp_sink
pour le profil a2dp, et headsethead_unit
pour le profil hsp. Remarquez qu'elle est différente de celle de l'affiche originale. a2dp
y hsp
.
Maintenant, avec le code ci-dessus, nous allons le modifier et le mettre dans un fichier. J'ai appelé le fichier bluezswitch.sh
.
Passez dans le répertoire dans lequel vous voulez placer le fichier. Il peut être n'importe où.
touch bluezswitch.sh
Puis
nano bluezswitch.sh
Copiez et collez le code qui se trouve tout en haut de ce commentaire et remplacez la partie a2dp
y hsp
avec les valeurs que vous avez obtenues lorsque vous avez exécuté la commande ci-dessus, et collez-le dans ce fichier. Par exemple, voici à quoi ressemblait mon fichier pour mes LG Tones.
#!/bin/bash
BLUEZCARD=$(pactl list cards short | egrep -o bluez.*[[:space:]])
pactl set-card-profile $BLUEZCARD a2dp_sink
pactl set-card-profile $BLUEZCARD headset_head_unit
pactl set-card-profile $BLUEZCARD a2dp_sink
Maintenant, ctrl-x
puis y
pour enregistrer le fichier et quitter nano, puis rendre le fichier exécutable :
chmod +x bluezswitch.sh
Ensuite, il faut définir un raccourci clavier comme cela a été expliqué.
Allez dans Paramètres... Clavier... Raccourcis, et créez un raccourci personnalisé. raccourci personnalisé ; nommez-le comme vous le souhaitez, avec la commande suivante /home/$USER/bluezswitch.sh (substituez le nom d'utilisateur approprié dans le chemin !). Cliquez sur Appliquer, et ensuite cliquez à droite où il est écrit Désactivé pour configurer un raccourci clavier pour exécuter le script.
Cela devrait être tout ce qu'il y a à faire. Ça devrait marcher pour tous ceux pour qui ça ne marchait pas avant.