Comment puis-je modifier le volume par petits incréments?

50

Lorsque j'appuie sur les touches d'augmentation / de diminution du volume de mon clavier, le volume change trop. Comment puis-je réduire la taille du pas afin d’avoir un contrôle plus précis?

    
posée ændrük 31.10.2010 - 05:24
la source

9 réponses

11

11.10 / 12.04

À partir de ce rapport de bogue , l'étape de volume s'affiche. la clé a disparu dans 11.10 et n'a pas (encore) réapparu.

Par conséquent, vous ne pouvez effectuer aucun changement de configuration simple et simple pour réduire le volume.

La publication n ° 18 dans le lien constitue une solution de contournement intéressante qui implique l’utilisation de la fonctionnalité alsamixer d’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 sur la solution est basé sur cet article.

Avec cette solution, l’étape de volume par défaut sera réduite à deux pour cent.

Comment

Installez le package xbindkeys (en utilisant Synaptic ou avec sudo apt-get install xbindkeys ).

À l'aide de votre éditeur de texte favori, créez un fichier dans votre dossier de départ appelé .volumeHack.sh , puis copiez et collez le contenu ci-dessous dans ce fichier, à savoir.

gedit ~/.volumeHack.sh

Exécutez chmod a+x .volumeHack.sh pour le rendre exécutable.

Editez ensuite le fichier ~/.xbindkeysrc et copy & collez le texte ci-dessous au bas de ce fichier. c'est-à-dire

gedit ~/.xbindkeysrc

Déconnexion et connexion

.xbindkeysrc

# 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

.volumeHack.sh

#!/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"
    
réponse donnée fossfreedom 09.04.2012 - 23:18
la source
16

Ubuntu 14.04 / 15.04 / 15.10 / 16.04 / 16.10 / 17.04

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 (quelquesmodificationstrivialesontétéapportéesaupatch).

J'aitéléchargélespackagessurunPPA:

ppa:george-edison55/gnome-settings-daemon Launchpad logo (Click here for instructions on using PPAs.)

Une fois que vous avez ajouté le PPA, exécutez:

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 commande dconf 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:

    
réponse donnée Nathan Osman 01.12.2015 - 21:09
la source
11

10.04 / 10.10 / 11.04

Je viens de découvrir que gconf-editor a un paramètre pour "étape de volume en pourcentage du volume":

/apps/gnome_settings_daemon/volume_step

Beaucoup plus élégant et fonctionne avec les notifications de volume OSD.

    
réponse donnée ændrük 18.02.2011 - 20:39
la source
10

Cette solution simple fonctionne pour (au moins) 12.04 et ne nécessite pas de CCSM.

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 fin que vous le souhaitez.

  1. Paramètres système > Clavier > Onglet "Raccourcis" > Catégorie "Son et média"

  2. 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 les combinaisons de touches associées.

  3. Sélectionnez maintenant la catégorie "Raccourcis personnalisés" et cliquez sur l'icône "+" pour créer deux nouveaux raccourcis comme suit:

    Name: Volume Up
    Command: amixer set Master 3%+
    Name: Volume Down
    Command: amixer set Master 3%-

    (Expérimentez les pourcentages. Si vous devez aller extrêmement bien, omettez le signe% et vous utiliserez une échelle allant de 0 à 255 au lieu de%).

  4. Attribuez 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.

Ensuite, 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".

    
réponse donnée cdaddr 11.11.2012 - 20:41
la source
5

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é.

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 sous la forme de deux commandes:

.

amixer set Master 5%+ -q

amixer set Master 5%- -q

Attribuez deux raccourcis clavier aux commandes de l'onglet Claviers . J'utilise la combinaison 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.

    
réponse donnée thameera 31.10.2010 - 13:15
la source
4

Il est intéressant de noter que sur Ubuntu 17.10, il existe déjà (bien que quelque peu alambiqué) un support similaire pour cela. Appuyez sur Maj + XF86AudioRaiseVolume (ou XF86AudioLowerVolume ) pour modifier le volume avec une taille de pas plus petite.

    
réponse donnée Nonny Moose 04.02.2018 - 23:16
la source
3

12.04 (et éventuellement 11.10)

Si vous souhaitez contrôler le volume du pulseaudio directement plutôt que de suivre la route ALSA, vous pouvez utiliser le script suivant. Il devrait également être possible de contrôler le volume via DBUS comme indiqué dans cette réponse Stackoverflow , mais je n’ai pas trouvé le moyen de le modifier. ce travail dans Ubuntu 12.04.

Comme indiqué dans le script lui-même, il utilise cette Stackoverflow qui explique comment modifier par programme le volume dans Ubuntu et développe l'idée dans 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 au plus près du comportement par défaut de Ubuntu (12.04).

Le script prend les modifications 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% définit le volume à 30%,
  • pavol.sh +1000 augmente le volume de 1000 et
  • pavol.sh -5% diminue le volume de 5%.

Il est également commenté de manière assez libérale, dans l’espoir que cela sera utile pour peaufiner davantage.

Comment

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 d'accès) appelé pavol.sh et copiez-collez le contenu ci-dessous dans ce fichier, c'est-à-dire.

gedit ~/pavol.sh

Exécutez chmod a+x ~/pavol.sh pour le rendre exécutable.

Ouvrez ensuite Sytem Settings , accédez aux paramètres Keyboard et passez à l'onglet Shortcuts . Là, cliquez sur Custom Shortcuts et créez deux nouveaux raccourcis clavier avec le bouton plus.

Donnez à chacun un nom et entrez une commande semblable à celle-ci: /home/username/pavol.sh "+3%" Il est important de saisir le chemin d'accès complet au script pavol.sh (à moins que le script ne se trouve dans un dossier inclus dans la variable d'environnement PATH). . Utilisez également les guillemets "" autour de la valeur du volume, sinon 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.

pavol.sh

#!/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
    
réponse donnée Kuro 24.08.2012 - 00:54
la source
2

Kubuntu 17.04

Editez le fichier main.xml généralement présent sur: /usr/share/plasma/plasmoids/org.kde.plasma.volume/contents/config/main.xml en tant que racine.

Recherchez l'entrée volumeStep:

<entry name="volumeStep" type="Int">
  <default>2</default>
</entry>

et modifiez le pourcentage par étape comme vous le souhaitez. 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
    
réponse donnée Bas 07.08.2017 - 16:41
la source
0

Kubuntu 16.04

Je suis passé de la version 14.04, qui comportait un niveau de volume principal ainsi que les sources d’entrée et de sortie individuelles, ainsi qu’une étape d’incrémentation / décrémentation de 3% (qui a ensuite été modifiée à 5%). Je suis parvenu à 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 points ont été augmentés à 6% et que le contrôle du volume principal a été supprimé, alors que 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; il ne fonctionnera donc 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 de modifier manuellement un fichier, mais c'est assez simple.

Modifiez le fichier ListItemBase.qml qui se trouve généralement dans /usr/share/plasma/plasmoids/org.kde.plasma.volume/contents/ui/ListItemBase.qml en tant que racine.

Il existe quelques lignes dans les fonctions increaseVolume et decreaseVolume qui définissent l'étape en divisant le volume maximal par 15. Elles se présentent comme suit:

var step = slider.maximumValue / 15;

Plus le nombre est élevé, plus les étapes sont petites. Si la valeur est 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 crédit va à ce Reddit: link

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 à proposer un changement de plasma pour que cette configuration soit pilotée ... les deux pourraient bien devenir moi après une autre mise à jour.

    
réponse donnée SEoF 17.11.2016 - 12:50
la source

Lire d'autres questions sur les étiquettes