Y compris Natty, j’ai toujours été capable de basculer (mute/muet) le volume du son "maître" avec le
amixer sset Master toggle
commande que j'ai liée à une liaison Edge dans CompizConfig-Manager.
Maintenant, après l’installation de Oneiric, la commande coupe seulement le son mais ne le remet pas en sourdine. Je l'ai même essayé dans le terminal mais cela ne fonctionne pas non plus. Cela change 'Mono: Lecture 68 [78%] [-14.25dB] [off]' en '... [on]' mais le son reste en sourdine de sorte que je dois le réactiver via le bouton 'indicateur sonore' dans le panneau.
Comment puis-je obtenir que cela fonctionne à nouveau? Qu'est-ce qui a changé depuis Natty? Est-ce que quelqu'un connaît la commande utilisée par 'l'indicateur de son' pour changer le volume du son?
Cela fonctionne pour moi le 13.04, muet et non muet:
amixer -D Pulse set Master 1+ toggle
Il spécifie l'audio Pulse pour assurer la suppression du son, tout le son.
J'utilise ce script comme solution de contournement:
#!/bin/bash
CURRENT_STATE=`amixer get Master | egrep 'Playback.*?\[o' | egrep -o '\[o.+\]'`
if [[ $CURRENT_STATE == '[on]' ]]; then
amixer set Master mute
else
amixer set Master unmute
amixer set Front unmute
amixer set Headphone unmute
fi
J'ai fait un diff de amixer scontents
avant d'appeler amixer set Master mute
et après l'avoir appelé et réactivé tout en utilisant l'interface graphique pour déterminer ce qui devait être activé.
amixer scontents > ~/before
(vous obtiendrez un fichier avec le statut de tous les canaux sonores)amixer set Master toggle
amixer scontents > ~/after
amixer set Master toggle
qui est censé ramener le volume au niveau qui précédait la première commande de basculeamixer scontents > ~/afterafter
Maintenant, vous avez trois fichiers qui vous indiquent le statut des canaux sonores utilisés pour le son normal, qui sont mis en sourdine par amixer set Master toggle
et qui ne sont pas réactivés en réactivant à nouveau avec la même commande.
Pour comparer facilement les fichiers et voir les différences (les canaux qui sont coupés et qui ne seront pas réactivés par la suite), vous pouvez utiliser meld
depuis le Centre de logiciel. Démarrez-le, ouvrez les trois fichiers et sur la barre de défilement, vous pouvez voir s’il existe des différences entre les fichiers. Utilisez les noms de canaux trouvés pour les ajouter au script décrit ci-dessus.
Je n'arrivais pas à assourdir correctement les sons. Que j'utilise CLI et que je tape Amixer sset Master ou que j'appuie sur la touche de basculement des supports du pavillon HP, j'obtiens le même résultat: si le son est activé et fonctionne, il désactivera automatiquement le canal principal ET le canal PCM. Puis, lorsque je frappe à nouveau sur la bascule (cli ou touche), il active TOUJOURS le maître mais laisse PCM en sourdine. Pour mon appareil (HP Pavilion DV6 exécutant Xubuntu Oneric), cela signifie que le son est désactivé même lorsque le maître est activé. Lorsqu'il est exécuté à partir de la CLI - mêmes résultats. Si, avec cli, je bascule PCM, il désactive également le canal principal et ne le rallume plus, même s’il bascule correctement entre PCM.
Le script qui a fonctionné était:
#!/bin/bash
if amixer -c 0 get Master | grep -q off
then
amixer set Master unmute
amixer set PCM unmute
else
amixer set Master mute
fi
Ensuite, j'ai utilisé les raccourcis clavier Xubuntu (Paramètres> Gestionnaire de paramètres> Clavier> Raccourcis d'application) pour accéder au script (je l'ai appelé sndfx.sh et je l'ai défini sur exécutable en effectuant un clic droit dans thunar et sous les autorisations cochées pour l'exécuter). Ensuite, je lui ai attribué la touche rapide Pavillon HP en appuyant sur cette touche. Maintenant, il bascule correctement - Génial. J'espère que ceci aide quelqu'un d'autre.
Paix
Si je ne me trompe pas, c'est un bogue qui provoque la mise en sourdine et l'activation d'autres canaux de mixage. Pour couper le son, essayez
amixer set Master 0;
Pour réactiver le son
amixer set Master 1% +; amixer set Master 7dB +;
Essayez ce fragment de script ... ça marche
https://wiki.archlinux.org/index.php/PulseAudio#volume_control
Si vous souhaitez remplacer amixer dans .lircrc pour votre commande à distance utilisant lirc, vous pouvez essayer les lignes suivantes. Assurez-vous d'avoir installé xmacro. Le contrôle du volume fonctionne à nouveau.
begin
prog = irexec
button = KEY_VOLUMEUP
repeat = 1
delay = 2
config = echo KeyStrPress XF86AudioRaiseVolume KeyStrRelease XF86AudioRaiseVolume | xmacroplay $DISPLAY
end
begin
prog = irexec
button = KEY_VOLUMEDOWN
repeat = 1
delay = 2
config = echo KeyStrPress XF86AudioLowerVolume KeyStrRelease XF86AudioLowerVolume | xmacroplay $DISPLAY
end
begin
prog = irexec
button = KEY_MUTE
config = echo KeyStrPress XF86AudioMute KeyStrRelease XF86AudioMute | xmacroplay $DISPLAY
end
L'astuce consiste à faire en sorte que l'état du haut-parleur ou du casque suive celui du canal principal, selon que le casque est branché ou non. Ce script le fait pour moi sur mon ancien ordinateur portable Dell Latitude:
#!/bin/bash
amixer -q sset Master toggle
MASTER_STATE=`amixer get Master | awk -F"dB] " 'NR == 5 {print $2;}'`
HEADPHONES_PLUGGED=`amixer contents | grep -A 2 Headphone\ Jack | awk -F"=" 'NR == 3 {print $2;}'`
if [[ $HEADPHONES_PLUGGED == 'on' ]]; then
SLAVE="Headphone"
else
SLAVE="Speaker+LO"
fi
if [[ $MASTER_STATE == '[on]' ]]; then
amixer -q sset $SLAVE unmute
else
amixer -q sset $SLAVE mute
fi
Vous devrez peut-être vérifier vos chaînes avec amixer sur votre ordinateur et modifier les définitions de SLAVE en conséquence. De plus, la chaîne grep "Headphone\Jack" dans la définition HEADPHONES_PLUGGED peut être différente.