web-dev-qa-db-fra.com

Régler le volume pulseaudio par défaut

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.

3
MrUser

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

3
bob

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
2
Lucas

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.

0
chaos

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.

0
Prakash V Holkar