it-swarm.com.de

Wie kann ich die Lautstärke in kleineren Schritten ändern?

Wenn ich die Lautstärketasten auf meiner Tastatur drücke, ändert sich die Lautstärke zu stark. Wie kann ich die Schrittgröße verkleinern, um eine genauere Kontrolle zu haben?

53
ændrük

11.10/12.04

Ab diesem Bug-Report scheint die Volume-Step-Taste in 11.10 verschwunden zu sein und ist (noch) nicht wieder aufgetaucht.

Daher gibt es keine einfache Konfigurationsänderung, die Sie vornehmen können, um den Lautstärkeschritt zu reduzieren.

Beitrag Nr. 18 im Link bietet eine interessante Problemumgehung, bei der die Inkrementierungs- und Dekrementierungsfunktion von alsamixer zusammen mit dem Senden von Benachrichtigungen an den Desktop verwendet wird.

Ich konnte es jedoch nicht zum Laufen bringen - daher basiert meine Meinung zur Lösung auf diesem Beitrag.

Mit dieser Lösung wird der Standardlautstärkeschritt auf zwei Prozent reduziert.


Wie man

Installieren Sie das Paket xbindkeys (mit Synaptic oder mit Sudo apt-get install xbindkeys).

Erstellen Sie in Ihrem bevorzugten Texteditor eine Datei mit dem Namen .volumeHack.sh in Ihrem Ausgangsordner und kopieren Sie den folgenden Inhalt und fügen Sie ihn in diese Datei ein, d. H.

gedit ~/.volumeHack.sh

Führen Sie chmod a+x .volumeHack.sh aus, um es ausführbar zu machen.

Bearbeiten Sie dann die Datei ~/.xbindkeysrc und kopieren Sie den Text unten in diese Datei. d.h.

gedit ~/.xbindkeysrc

Abmelden und einloggen

.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"
12
fossfreedom

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

Endlich habe ich eine richtige Lösung für Benutzer von Trusty, Vivid, Wily, Xenial, Yakkety und Zesty. Anstatt ein paar Hacks oder ein Skript zu verwenden, habe ich beschlossen, das Problem im Quellcode zu beheben. Ich habe diesen Patch auf Gnome-Settings-Daemon) angewendet Install gnome-settings-daemon und nity-Settings-Daemon Install unity-settings-daemon (einige geringfügige Änderungen wurden am Patch vorgenommen).

Ich habe die Pakete auf eine PPA hochgeladen:

ppa: george-edison55/gnome-settings-daemon Launchpad logo ( Klicken Sie hier, um Anweisungen zur Verwendung von PPAs zu erhalten. )

Nachdem Sie die PPA hinzugefügt haben, führen Sie Folgendes aus:

Sudo apt-get update
Sudo apt-get upgrade

Sie müssen nach Abschluss der Installation neu starten. Nach dem Upgrade der Pakete können Sie den Befehl dconf verwenden Manpage icon um die Lautstärke zu erhöhen:

dconf write /org/gnome/settings-daemon/plugins/sound/volume-step 2

(Der Standardwert ist 6.)

Wenn Sie nun die Lautstärketasten drücken, ändert sich die Lautstärke in Schritten von 2:

enter image description here

17
Nathan Osman

10.04/10.10/11.04

Ich habe gerade festgestellt, dass gconf-editor die Einstellung "Lautstärkeschritt als Prozentsatz der Lautstärke" hat:

/apps/gnome_settings_daemon/volume_step

Viel eleganter, und es funktioniert mit den OSD-Volume-Benachrichtigungen.

11
ændrük

Diese einfache Lösung funktioniert (mindestens) ab 12.04 und erfordert kein CCSM.

Wenn Sie die Tastaturkürzel verwenden, wird die Lautstärkeleiste nicht auf dem Bildschirm angezeigt, Sie können jedoch die Lautstärke nach Belieben fein einstellen.

  1. Systemeinstellungen> Tastatur> Registerkarte "Verknüpfungen"> Kategorie "Sound und Medien"

  2. Deaktivieren Sie die vorhandenen Verknüpfungen "Lautstärke verringern" und "Lautstärke erhöhen". Wählen Sie dies bei jedem Klick aus und drücken Sie die Rücktaste, um die zugehörige Tastenkombination zu löschen.

  3. Wählen Sie nun die Kategorie "Benutzerdefinierte Verknüpfungen" und klicken Sie auf das Symbol "+", um zwei neue Verknüpfungen wie folgt zu erstellen:

    Name: Lautstärke erhöhen
    Befehl: amixer set Master 3% +
    Name: Lautstärke verringern
    Befehl: amixer set Master 3% -

    (Experimentieren Sie mit den Prozentsätzen. Wenn Sie extrem gute Ergebnisse erzielen möchten, lassen Sie das% -Zeichen weg, und es wird eine Skala von 0 bis 255 anstelle von Prozent verwendet.).

  4. Weisen Sie nun jede Ihrer neuen Verknüpfungen einer Taste oder Tastenkombination zu: Wählen Sie eine Verknüpfung aus und geben Sie die gewünschte (n) Taste (n) auf Ihrer Tastatur ein.

Wenn Sie danach die Lautstärkeregler Ihrer Tastatur verwenden, sollten Sie die von Ihnen angegebenen Lautstärkeschritte verwenden. Sie können jederzeit zum ursprünglichen Verhalten zurückkehren, indem Sie Ihre benutzerdefinierten Verknüpfungen deaktivieren und die vorgefertigten Verknüpfungen in der Kategorie "Sound and Media" wieder aktivieren.

10
cdaddr

Es ist erwähnenswert, dass es unter Ubuntu 17.10 bereits eine (wenn auch etwas verworrene) Art von Unterstützung dafür gibt. Drücken Sie Shift+XF86AudioRaiseVolume (oder XF86AudioLowerVolume), um die Lautstärke mit einer kleineren Schrittgröße zu ändern.

enter image description here

7
Nonny Moose

Sie können dies mit CompizConfig Settings Manager tun. Verwenden Sie den Befehl Sudo apt-get install compizconfig-settings-manager, falls Sie ihn noch nicht installiert haben.

Öffnen Sie nun den CompizConfig Settings Manager und gehen Sie zu Commands im Abschnitt General. Aktivieren Sie das Kontrollkästchen Befehle aktivieren auf der rechten Seite. Geben Sie auf der Registerkarte Befehle die folgenden zwei Befehle separat als zwei Befehle ein:

amixer set Master 5%+ -q

amixer set Master 5%- -q

Weisen Sie den Befehlen auf der Registerkarte Tastenkombinationen zwei Tastaturkürzel zu. Ich benutze die Super + [und Super +] Kombination. Schließen Sie nun den CompizConfig Settings Manager und das sollte funktionieren.

Ich bin mir nicht sicher, ob Sie die Befehle den eingebauten Lautstärkereglern des Computers zuordnen können.

5
thameera

12.04 (und möglicherweise 11.10)

Wenn Sie die pulseaudio-Lautstärke direkt steuern möchten, anstatt die ALSA-Route zu verwenden, können Sie das folgende Skript verwenden. Es sollte zwar auch möglich sein, die Lautstärke über DBUS zu steuern, wie in dieser Stackoverflow-Antwort beschrieben. Ich konnte jedoch keine Möglichkeit finden, diese Funktion in Ubuntu 12.04 auszuführen.

Wie im Skript selbst gesagt, verwendet es diese Stackoverflow-Antwort zum programmgesteuerten Ändern des Volumes in Ubunt und erweitert die Idee zu einem Skript, das die Änderung des Volumes als Befehlszeilenargument verwendet und auch ein OSD anzeigt Benachrichtigung. Ich habe versucht, es so gut wie möglich an das Standardverhalten von Ubuntu (12.04) anzupassen.

Das Skript nimmt Volumenänderungen als absolute oder relative Zahl oder als Prozentwert entgegen. Also zum Beispiel:

  • pavol.sh 2000 setzt die Lautstärke auf 2000,
  • pavol.sh 30% stellt die Lautstärke auf 30 Prozent ein,
  • pavol.sh +1000 erhöht die Lautstärke um 1000 und
  • pavol.sh -5% verringert die Lautstärke um 5 Prozent.

Es wird auch ziemlich großzügig in der Hoffnung kommentiert, dass es für weitere Optimierungen nützlich ist.

Wie man

Verwenden Sie Ihren bevorzugten Texteditor, um eine Datei mit dem Namen pavol.sh in Ihrem privaten Ordner (oder an einem anderen Ort - merken Sie sich den Pfad) zu erstellen, und kopieren Sie den folgenden Inhalt und fügen Sie ihn in diese Datei ein, d. H.

gedit ~/pavol.sh

Führen Sie chmod a+x ~/pavol.sh aus, um es ausführbar zu machen.

Öffnen Sie dann Sytem Settings, gehen Sie zu den Keyboard Einstellungen und wechseln Sie zur Registerkarte Shortcuts. Klicken Sie dort auf Custom Shortcuts und erstellen Sie mit der Plus-Taste zwei neue Tastaturkürzel.

Geben Sie jedem einen Namen und als Befehl Folgendes ein: /home/username/pavol.sh "+3%" Es ist wichtig, den vollständigen Pfad zum Skript pavol.sh einzugeben (es sei denn, das Skript befindet sich in einem Ordner, der in der Umgebungsvariablen PATH enthalten ist ). Verwenden Sie auch Anführungszeichen "" um den Lautstärkewert oder die Tastenkombination funktioniert nicht.

Klicken Sie anschließend auf die rechte Seite jedes Eintrags, um eine Tastenkombination oder eine Multimediataste festzulegen. Wenn die gewünschte Kombination oder Taste bereits einer anderen Verknüpfung zugewiesen ist, werden Sie gefragt, ob Sie sie neu zuweisen möchten.

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
3
Kuro

Kubuntu 17.04

Bearbeiten Sie die Datei main.xml, die sich normalerweise unter: /usr/share/plasma/plasmoids/org.kde.plasma.volume/contents/config/main.xml befindet, als Root.

Suchen Sie nach dem Eintrag volumeStep:

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

und ändern Sie den Prozentsatz pro Schritt nach Belieben. Ich verwende 2%, wie Sie sehen können.

Wie unter Kubuntu 16.04 beschrieben, müssen Sie Plasma neu starten, damit dies wirksam wird:

killall plasmashell #to stop it
kstart plasmashell #to restart it
2
Bas

Kubuntu 16.04

Ich habe ein Upgrade von 14.04 durchgeführt, das einen Master-Lautstärkepegel sowie die einzelnen Eingangs- und Ausgangsquellen hatte und einen 3% -Inkrementierungs-/Dekrementierungsschritt (der sich später in 5% änderte). Ich habe es geschafft, es auf etwa 2% und 3% Schritten zu halten, indem ich einfach die Ausgangsquellenlautstärkepegel anpasste, um die Hauptlautstärkestufen zu kompensieren.

Ich ärgerte mich natürlich ein wenig, als 16.04 diesen Wert auf 6% erhöhte und den Hauptlautstärkeregler entfernte, stattdessen kontrollierten die Lautstärketasten beide Ausgabequellen.

Das obige Update für Ubuntu 16.04 funktioniert nicht mit der Plasma 5-Schnittstelle, die unter KDE5 verwendet wird. Daher funktioniert es nicht mit Kubuntu 16.04 - ich habe es versucht und es funktioniert nicht.

Also habe ich eine schnelle Online-Überprüfung durchgeführt und der Vorgang erfordert das manuelle Ändern einer Datei, ist aber ziemlich einfach.

Bearbeiten Sie die Datei ListItemBase.qml, die sich normalerweise unter /usr/share/plasma/plasmoids/org.kde.plasma.volume/contents/ui/ListItemBase.qml befindet, als Root.

Innerhalb der Funktionen increaseVolume und decreaseVolume gibt es einige Zeilen, die den Schritt definieren, indem die maximale Lautstärke durch 15 geteilt wird. Sie sehen folgendermaßen aus:

var step = slider.maximumValue / 15;

Je höher die Zahl, desto kleiner die Schritte. Wenn dies 1 wäre, ist das Volumen entweder 0% oder 100%, aber wenn dies 100 wäre, würde das Volumen in Schritten von 1% steigen.

Persönlich habe ich 2% angestrebt, also habe ich beide Zeilen in geändert

var step = slider.maximumValue / 50;

Guthaben geht an dieses Reddit: https://www.reddit.com/r/kde/comments/3t1xr0/how_to_change_the_volume_increment_step_size_for/

Sie müssen Plasma jedoch neu starten, damit dies wirksam wird:

killall plasmashell #to stop it
kstart plasmashell #to restart it

Hoffentlich hilft dies jemandem, oder es kann sogar dazu führen, dass jemand eine Änderung an Plasma vornimmt, um diese Konfiguration zu optimieren. Beide sind möglicherweise nach einem weiteren Update ich.

0
SEoF