Lorsque je redémarre, le volume des puits PulseAudio est réglé sur 100%. Je sais comment changer le volume en utilisant pactl set-sink-volume, mais ce n'est que temporairement. Je pourrais écrire un script exécuté au démarrage, mais il ne sera pas appliqué si je connecte un récepteur ultérieurement. (c'est-à-dire un haut-parleur Bluetooth)
Existe-t-il un fichier de configuration dans lequel je peux définir le volume par défaut attribué à un périphérique lors de son premier chargement par PulseAudio? Ou même le volume principal au démarrage?
Précision: l’application s’applique à une machine Linux sans tête, le système ne devrait donc pas avoir à être redémarré et devrait pouvoir accepter de nouveaux périphériques sans avoir à se connecter via ssh pour régler les volumes, etc.
Ce qui a fonctionné pour moi a été d'aller dans /home/(user)/.config/Pulse/default.pa
et de défiler vers le bas jusqu'à set-sink-volume
et de changer la valeur en 0
Avec PulseAudio 8.0 sur Ubuntu 16.04 et une seule carte son, vous pouvez régler le volume principal par défaut à 50% avec le fichier suivant. En incluant la valeur par défaut du système, vous n'avez pas à vous soucier des modifications apportées aux valeurs par défaut de la distribution.
$ cat ~/.config/Pulse/default.pa
.include /etc/Pulse/default.pa
# Set volume to 50% on boot
set-sink-volume 0 32768
Si vous avez plusieurs cartes, remplacez le numéro d'index par le nom car l'ordre n'est pas garanti. De plus, si vous souhaitez régler le volume, déterminez le "volume de base" qui représente le maximum et calculez le pourcentage équivalent.
$ pacmd list-sinks | grep -e "name:" -e "index:" -e "base volume:"
* index: 0
name: <alsa_output.card0>
base volume: 65536 / 100% / 0.00 dB
* index: 1
name: <alsa_output.card1>
base volume: 32768 / 100% / 0.00 dB
Par exemple, pour spécifier le volume par défaut de 70% pour card1, la ligne devient:
set-sink-volume alsa_output.card1 22937
Réglez le volume sur le niveau souhaité, puis tapez un terminal:
Sudo alsactl store
Maintenant, il devrait être stocké même après le redémarrage.
Vous pouvez créer un script séparé et l'exécuter à partir du démarrage pour que chaque fois que vous redémarrez le système, celui-ci vérifie le volume récepteur spécifique.
Voici le script:
export sink_index=$(pactl list short sinks | awk -v index_number=<sink_name> '$2==index_number {print $1}')
volume=$(pactl list sinks | Perl -000ne 'if(/#$ENV{sink_index}/){/(Volume:.*)/; print "$1\n"}' | sed 's/.*\ \(.*\)%.*/\1/g')
if [ $volume -ne 100 ]; then
pactl set-sink-volume $sink_index 100%
fi
Le nom_variant doit être votre dissipateur Bluetooth ou le dissipateur que vous souhaitez définir pour le volume.
Vous pouvez trouver le récepteur Bluetooth à partir de:
pactl list short sinks | grep "alsa_output" | awk '{ print $2 }' | head -n1
J'espère que cela vous aidera.