Réponses:
D'après ce rapport de bogue, il apparaît que la clé de volume-étape a disparu dans 11.10 et n'a pas (encore) réapparu.
Par conséquent, il n’ya pas de simple changement de configuration simple que vous puissiez effectuer pour réduire l’étape de volume.
La publication n ° 18 dans le lien constitue une solution de contournement intéressante qui implique l’utilisation des fonctionnalités d’ alsamixer
incrémentation et de décrémentation ainsi que l’envoi de notifications au bureau.
Cependant, je ne pouvais pas le faire fonctionner - ainsi mon point de vue de la solution est basé sur ce post.
Avec cette solution, l’étape de volume par défaut sera réduite à deux pour cent.
Installez le xbindkeys
paquet (en utilisant Synaptic ou avec sudo apt-get install xbindkeys
).
À l'aide de votre éditeur de texte préféré, créez un fichier dans votre dossier de départ appelé, .volumeHack.sh
puis copiez et collez le contenu ci-dessous dans ce fichier, c.-à-d.
gedit ~/.volumeHack.sh
Exécuter chmod a+x .volumeHack.sh
pour le rendre exécutable.
Ensuite, éditez le fichier ~/.xbindkeysrc
et copiez-collez le texte ci-dessous au bas de ce fichier. c'est à dire
gedit ~/.xbindkeysrc
Déconnexion et connexion
# Increase volume
#"amixer set Master playback 1+"
"sh ~/.volumeHack.sh -c up -i 2% -m Master"
m:0x0 + c:123
XF86AudioRaiseVolume
# Decrease volume
"sh ~/.volumeHack.sh -c down -i 2% -m Master"
m:0x0 + c:122
XF86AudioLowerVolume
# Toggle mute - this is not used here
#"amixer set Master toggle"
# m:0x0 + c:121
# XF86AudioMute
#!/bin/sh
usage="usage: $0 -c {up|down|mute} [-i increment] [-m mixer]"
command=
increment=5%
mixer=Master
while getopts c:i:m:h o
do case "$o" in
c) command=$OPTARG;;
i) increment=$OPTARG;;
m) mixer=$OPTARG;;
h) echo "$usage"; exit 0;;
?) echo "$usage"; exit 0;;
esac
done
#echo "command:$command"
#echo "increment:$increment"
#echo "mixer:$mixer"
if [ "$command" = "" ]; then
shift $(($OPTIND - 1))
command=$1
exit 0;
fi
if [ "$command" = "" ]; then
echo "usage: $0 {up|down|mute} [increment]"
exit 0;
fi
display_volume=0
if [ "$command" = "up" ]; then
display_volume=$(amixer set $mixer $increment+ unmute | grep -m 1 "%]" | cut -d "[" -f2|cut -d "%" -f1)
fi
if [ "$command" = "down" ]; then
display_volume=$(amixer set $mixer $increment- unmute | grep -m 1 "%]" | cut -d "[" -f2|cut -d "%" -f1)
fi
icon_name=""
if [ "$command" = "mute" ]; then
if amixer get Master | grep "\[on\]"; then
display_volume=0
icon_name="notification-audio-volume-muted"
amixer set $mixer mute
else
display_volume=$(amixer set $mixer unmute | grep -m 1 "%]" | cut -d "[" -f2|cut -d "%" -f1)
fi
fi
if [ "$icon_name" = "" ]; then
if [ "$display_volume" = "0" ]; then
icon_name="notification-audio-volume-off"
else
if [ "$display_volume" -lt "33" ]; then
icon_name="notification-audio-volume-low"
else
if [ "$display_volume" -lt "67" ]; then
icon_name="notification-audio-volume-medium"
else
icon_name="notification-audio-volume-high"
fi
fi
fi
fi
notify-send " " -i $icon_name -h int:value:$display_volume -h string:synchronous:volume
#echo "icon: $icon_name and $display_volume"
J'ai enfin une solution appropriée pour les utilisateurs de Trusty, Vivid, Wily, Xenial, Yakkety et Zesty. Plutôt que d'utiliser un tas de hacks ou un script, j'ai décidé de résoudre le problème dans le code source. J'ai appliqué ce correctif à gnome-settings-daemon et unity-settings-daemon (des modifications triviales ont été apportées au correctif).
J'ai téléchargé les paquets sur un PPA:
ppa: george-edison55 / gnome-settings-daemon ( Cliquez ici pour des instructions sur l'utilisation des PPA. )
Une fois que vous avez ajouté le PPA, lancez:
sudo apt-get update
sudo apt-get upgrade
Vous devrez redémarrer une fois l'installation terminée. Une fois les packages mis à niveau, vous pouvez utiliser la dconf
commande pour modifier l'incrément de volume:
dconf write /org/gnome/settings-daemon/plugins/sound/volume-step 2
(La valeur par défaut est 6.)
Maintenant, lorsque vous appuyez sur les touches de volume, le volume change par incréments de 2:
mate-settings-daemon
? Je serais éternellement reconnaissant :-)
dconf write /org/mate/settings-daemon/plugins/media-keys/volume-step <NUM>
où <NUM>
est la nouvelle valeur. Je viens de tester cela sur MATE 16.04.
Lorsque vous utilisez les raccourcis clavier, vous n’avez pas l’action de la barre de volume à l’écran, mais vous aurez le contrôle du volume le plus précis possible.
Paramètres système> Clavier> onglet "Raccourcis"> catégorie "Son et média"
Désactivez les raccourcis existants "Volume bas" et "Volume supérieur". Pour ce faire, cliquez sur chacun d'eux pour le sélectionner, puis appuyez sur la touche Retour arrière pour effacer toute combinaison de touches qui lui est associée.
Sélectionnez maintenant la catégorie "Raccourcis personnalisés" et cliquez sur l'icône "+" pour créer deux nouveaux raccourcis comme suit:
Nom:
Commande d’augmentation du volume : ensemble d’amixers Master 3% +
Nom: Volume Down
Commande: Amixer Set Master 3% -
(Faites des essais avec les pourcentages. Si vous devez aller extrêmement bien, omettez le signe% et vous utiliserez une échelle de 0 à 255 au lieu de%)
Assignez maintenant chacun de vos nouveaux raccourcis à une touche ou à une combinaison de touches: Sélectionnez un raccourci et tapez la ou les touches souhaitées sur votre clavier.
Après cela, lorsque vous utilisez les commandes de volume de votre clavier, vous devez disposer de l’incrément de volume que vous avez spécifié. Vous pouvez toujours revenir au comportement d'origine en désactivant vos raccourcis personnalisés et en réactivant ceux préconfigurés dans la catégorie "Son et média".
Il convient de noter que sur Ubuntu 17.10, il existe déjà (quoique quelque peu alambiquée) genre de soutien pour cela. Appuyez sur Shift+ XF86AudioRaiseVolume(ou XF86AudioLowerVolume) pour modifier le volume avec une taille de pas plus petite.
Vous pouvez le faire avec CompizConfig Settings Manager. Utilisez la commande
sudo apt-get install compizconfig-settings-manager
si vous ne l'avez pas déjà installée.
Ouvrez maintenant le gestionnaire de paramètres CompizConfig et accédez à Commandes dans la section Général . Cochez la case Activer les commandes à droite. Dans l' onglet Commandes , entrez les deux commandes suivantes séparément en tant que deux commandes:
amixer set Master 5%+ -q
amixer set Master 5%- -q
Assigner deux raccourcis clavier pour les commandes dans les raccourcis clavier onglet. J'utilise les combinaisons Super + [et Super +]. Fermez maintenant le gestionnaire de paramètres CompizConfig et cela devrait fonctionner.
Je ne sais pas si vous pouvez affecter les commandes aux contrôleurs de volume intégrés de l'ordinateur.
amixer
commande est merveilleuse, mais vous n'avez pas besoin d'instruire les lecteurs pour installer CompizConfig Settings Manager.
Si vous souhaitez contrôler le volume pulseaudio directement plutôt que de suivre la route ALSA, vous pouvez utiliser le script suivant. Bien qu'il soit également possible de contrôler le volume via DBUS comme indiqué dans cette réponse à Stackoverflow , je n'ai toutefois pas trouvé le moyen de faire fonctionner cela avec Ubuntu 12.04.
Comme il est dit dans le script lui-même, il utilise cette réponse de Stackoverflow pour changer de volume par programme dans Ubuntu et développe l'idée en un script qui prend le changement de volume comme argument de ligne de commande et affiche également une notification OSD. J'ai essayé de le modéliser aussi étroitement que possible au comportement par défaut d'Ubuntu (12.04).
Le script prend les changements de volume sous forme de nombre absolu ou relatif ou de pourcentage. Ainsi par exemple:
pavol.sh 2000
définit le volume sur 2000,pavol.sh 30%
règle le volume à 30%,pavol.sh +1000
augmente le volume de 1000 etpavol.sh -5%
diminue le volume de 5 pour cent.Il est également commenté de manière assez libérale dans l’espoir que cela sera utile pour d’autres ajustements.
Utilisez votre éditeur de texte favori pour créer un fichier dans votre dossier de départ (ou n'importe où ailleurs - rappelez-vous simplement le chemin) pavol.sh
et copiez-collez le contenu ci-dessous dans ce fichier, c.-à-d.
gedit ~/pavol.sh
Exécuter chmod a+x ~/pavol.sh
pour le rendre exécutable.
Puis ouvrez Sytem Settings
, allez dans les Keyboard
paramètres et passez à l' Shortcuts
onglet. Cliquez dessus Custom Shortcuts
et créez deux nouveaux raccourcis clavier avec le bouton plus.
Donnez à chacun un nom et, comme commande, entrez quelque chose comme ceci: /home/username/pavol.sh "+3%"
Il est important de saisir le chemin d'accès complet au pavol.sh
script (à moins que le script ne se trouve dans un dossier inclus dans la variable d'environnement PATH). Utilisez également des guillemets ""
autour de la valeur du volume ou le raccourci clavier ne fonctionnera pas.
Après cela, cliquez sur le côté droit de chaque entrée pour définir une combinaison de touches ou une clé multimédia. Si la combinaison ou la touche souhaitée est déjà attribuée à un autre raccourci, le programme vous demandera si vous souhaitez le réaffecter.
#!/bin/bash --
## This script expands upon this answer on stackoverflow:
## https://stackoverflow.com/a/10739764
##
## GLOBAL VARIABLES
# restrict usable commands
PATH="/bin:/usr/bin"
# this script changes the volume of the default sink (as set, for instance, via the Ubuntu sound menu);
# use "pactl info" to display these settings neatly in a terminal
DEFAULT_SINK=$(pacmd dump | grep 'set-default-sink' | cut -d ' ' -f 2)
# get max. volume from the DEFAULT_SINK
MAX_VOL=$(pacmd list-sinks | grep -A 20 "name: <${DEFAULT_SINK}>" | grep "volume steps:" | tr -d '[:space:]' | cut -d ':' -f 2)
# show debug messages?
# 0 means no debug messages; 1 prints the current volume to the console at the end of the script; 2 switches on bash debugging via "set -x"
DEBUG=0
## FUNCTIONS
# generate trace output if DEBUG is 2 or higher
if [ ${DEBUG} -gt 1 ]; then set -x; fi
# use poor man's return buffer via this variable (This is not stackable!)
RETVAL=""
# print simple usage text to console
show_usage() {
echo "Usage: $(basename ${0}) [+|-][number|percentage]"
}
# return (via RETVAL) the current pulseaudio volume as hexadecimal value
get_cur_vol() {
RETVAL=$(pacmd dump | grep "set-sink-volume ${DEFAULT_SINK}" | cut -d ' ' -f 3)
}
# change the pulseaudio volume as set in the first parameter variable, i.e. ${1};
# this can either be an absolute percentage or normal value, for instance 20% or 2000,
# or a relative percentage or normal value, for instance +3% or -5% or +200 or -1000
change_vol() {
step=${1}
relative=${step:0:1} # extract first character
percent=${step: -1} # extract last character
# cut off first character for easier calculations, if it is either a "+" or "-"
if [ "${relative}" = "+" -o "${relative}" = "-" ]; then step=${step:1}; fi
# if the last character of ${step} was, in fact, a percent sign...
if [ "${percent}" = "%" ]; then
step=${step:0:-1} # cut off last character for easier calculations
step=$[step*MAX_VOL/100] # change percentage into fixed value via MAX_VOL
fi
# save current volume in ${old_vol}
get_cur_vol
old_vol=$[RETVAL+0] # the dummy calculation turns the hexadecimal number to a decimal one
# calculate the new volume value ${new_vol} with the operand that was extracted earlier
if [ "${relative}" = "+" ]; then
new_vol=$[old_vol+step]
else
if [ "${relative}" = "-" ]; then
new_vol=$[old_vol-step]
else
# no operand found, so ${step} must be an absolute value
new_vol=${step}
fi
fi
# check boundaries - don't go below 0 and above MAX_VOL
if [ ${new_vol} -lt 0 ]; then new_vol=0; fi
if [ ${new_vol} -gt ${MAX_VOL} ]; then new_vol=${MAX_VOL}; fi
# set the new volume
pactl -- set-sink-volume "${DEFAULT_SINK}" "${new_vol}"
# mute the sink if the new volume drops to 0 ...
if [ ${new_vol} -le 0 ]; then
pactl -- set-sink-mute "${DEFAULT_SINK}" yes
else
# ... or unmute the sink if the new volume is greater than the old
if [ ${new_vol} -gt ${old_vol} ]; then
pactl -- set-sink-mute "${DEFAULT_SINK}" no
fi
fi
}
# show an OSD notification
notify_osd() {
# get current volume
get_cur_vol
cur_vol_percent=$[RETVAL*100/MAX_VOL]
# get mute state (gives "yes" or "no")
muted=$(pacmd dump | grep "set-sink-mute ${DEFAULT_SINK}" | cut -d ' ' -f 3)
# choose suitable icon (modeled after the default Ubuntu 12.04 behavior):
# muted-icon if volume is muted
if [ "${muted}" = "yes" ]; then
icon="notification-audio-volume-muted"
else
# icon with loudspeaker and 1 of the 3 circle segments filled if volume is less than 34%
if [ ${cur_vol_percent} -lt 34 ]; then
icon="notification-audio-volume-low"
else
# icon with loudspeaker and 2 of the 3 circle segments filled if volume is between 34% and 66%
if [ ${cur_vol_percent} -lt 67 ]; then
icon="notification-audio-volume-medium"
else
# icon with loudspeaker and all 3 of the 3 circle segments filled if volume is higher than 66%
icon="notification-audio-volume-high"
fi
fi
fi
# show notification
notify-send "Volume" -i ${icon} -h int:value:${cur_vol_percent} -h string:synchronous:volume
}
# fake main function, that gets called first and kicks off all the other functions
main() {
# only change volume if input is a number with either a +/- prefix and/or a % suffix
if [[ "${1}" =~ ^[+-]?[0-9]+[%]?$ ]]; then
change_vol ${1}
else
show_usage
fi
# show volume osd
notify_osd
# show the new - now current - volume in hexadecimal, decimal and percentage if DEBUG is greater than 0
if [ ${DEBUG} -gt 0 ]; then
get_cur_vol
echo "${RETVAL} - $[RETVAL+0] - $[RETVAL*100/MAX_VOL]%"
fi
}
## REAL MAIN
# run the fake main function and pass on all command line arguments; then exit the script
main ${@}
exit 0
--hint=int:transient:1
avant "Volume"
sur la ligne avec la commande notify-send (devrait être le numéro de ligne 130). Peut-être que ça aide.
Editez le fichier main.xml
généralement trouvé à: en
/usr/share/plasma/plasmoids/org.kde.plasma.volume/contents/config/main.xml
tant que root.
Recherchez l'entrée volumeStep:
<entry name="volumeStep" type="Int">
<default>2</default>
</entry>
et changez le pourcentage par étape en ce que vous voulez. J'utilise 2% comme vous pouvez le voir.
Comme écrit dans Kubuntu 16.04, vous devrez redémarrer Plasma pour que cela prenne effet:
killall plasmashell #to stop it
kstart plasmashell #to restart it
J'ai mis à niveau à partir de 14.04, qui avait un niveau de volume principal ainsi que les sources d'entrée individuelles et les sources de sortie, et une étape d'incrémentation / décrémentation de 3% (qui a ensuite été modifiée à 5%). J'ai réussi à le maintenir à environ 2% et 3% en ajustant simplement les niveaux de volume de la source de sortie pour compenser les niveaux du volume principal.
Alors naturellement, je me suis un peu énervé lorsque 16.04 a augmenté ce taux à 6% et que le contrôle du volume principal a été supprimé. Les boutons de volume contrôlent les deux sources de sortie.
Le correctif ci-dessus pour Ubuntu 16.04 ne fonctionne pas avec l'interface Plasma 5 utilisée sur KDE5, donc ne fonctionnera pas pour Kubuntu 16.04 - j'ai essayé, et cela ne fonctionne pas.
J'ai donc effectué une rapide vérification en ligne, et le processus nécessite la modification manuelle d'un fichier, mais c'est assez simple.
Editez le fichier qui ListItemBase.qml
se trouve généralement à /usr/share/plasma/plasmoids/org.kde.plasma.volume/contents/ui/ListItemBase.qml
la racine.
Il y a quelques lignes dans les fonctions increaseVolume
et decreaseVolume
qui définissent l'étape en divisant le volume maximum de 15. Ils ressemblent:
var step = slider.maximumValue / 15;
Plus le nombre est élevé, plus les marches sont petites. S'il s'agit de 1, le volume est égal à 0% ou à 100%, mais s'il était égal à 100, le volume augmenterait par paliers de 1%.
Personnellement, je visais 2%, alors j'ai changé ces deux lignes en
var step = slider.maximumValue / 50;
Le mérite revient à ce Reddit: https://www.reddit.com/r/kde/comments/3t1xr0/how_to_change_the_volume_increment_step_size_for/
Cependant, vous devrez redémarrer Plasma pour que cela prenne effet:
killall plasmashell #to stop it
kstart plasmashell #to restart it
Espérons que cela va aider quelqu'un, ou peut-être même amener quelqu'un à soumettre un changement de plasma pour que cette configuration soit pilotée ... les deux peuvent finir par être moi après une autre mise à jour.