Lautstärkeregler an Tastatur

08/05/2008 - 07:50 von Magnus Wallwitz | Report spam
Hallo Ng,

an meinem Notebook habe ich einen Regler für die Lautstàrke. Betàtige ich
den, àndert sich die Kopfhörerlautstàrke. Wie kann ich erreichen, dass die
Lautsprecher geregelt werden?

Geprüft habe ich dass mit Kmix, "Headphone" reagiert auf den Regler, "PCM"
nicht.

Opensuse 10.3
KDE 3.5.7
Amilo XI 2528


Danke

Gruß MW
 

Lesen sie die antworten

#1 Markus Wichmann
08/05/2008 - 11:22 | Warnen spam
Magnus Wallwitz schrieb:
Hallo Ng,

an meinem Notebook habe ich einen Regler für die Lautstàrke. Betàtige ich
den, àndert sich die Kopfhörerlautstàrke. Wie kann ich erreichen, dass die
Lautsprecher geregelt werden?

Geprüft habe ich dass mit Kmix, "Headphone" reagiert auf den Regler, "PCM"
nicht.

Opensuse 10.3
KDE 3.5.7
Amilo XI 2528


Danke

Gruß MW



Ich vermute einfach mal, du meinst eine Tastenkombination mit Fn. Die
löst in den meisten Fàllen ein ACPI-Event aus. Starte also in einer
Konsole einfach mal den Befehl

acpi_listen

und veràndere die Lautstàrke. Das erste Wort, was ausgegeben wird, ist
das Ereignis. Binde es folgendermaßen ein: In /etc/acpi/events kommen
zwei Dateien, ich nenne sie einfach mal tonhoch und tonrunter, je nach
dem, welches Event sie bearbeiten. Folgender Inhalt:

event=DasErsteWortAusDerACPI_LISTEN-Ausgabe
action=/etc/acpi/tonaender.sh +1 #zur Senkung dann natürlich -1

Dann holst du dir Informationen über deine Soundkarte:

amixer scontents

Da sollte ganz oben etwas von 'Master' stehen. Die Wertgrenzen davon
merken/aufschreiben (stehen als Limits: drin). Außerdem die Zeile
merken, in der der Wert steht (bei mir sind es zwei Zeilen, such dir
eine aus). Dann schreibst du ein Skript /etc/acpi/tonaender.sh:

#!/bin/sh
#Konfigurationsteil
#Die obere Wertgrenze für Master Volume
OG1 #ich initialisiere mal mit den Werten von hier
#untere Grenze
UG=0
#Zeilennummer
ZN=6

#Skriptteil
if [ $# -eq 0 ]; then
echo "Syntaxfehler." >&2
exit 1
fi

AENDER=$1

amixer scontents | head -n $ZN | tail -n 1 | cut -d: -f2- | read pb cv leftover
nv=$((cv + AENDER))

if [ $nv -ge $UG -o $nv -le $OG]; then
amixer sset Master $nv >/dev/null 2>&1 || exit 1
fi
exit 0

Das Skript enthàlt nur minimale Fehlerüberprüfung, aber es sollte tun.
Mach das Skript noch ausführbar (mit chmod) und es sollte gehen.

Tschö,
Markus
Progress (n.): process through which USENET evolved from smart people in front
of dumb terminals to dumb people in front of smart terminals.

Ähnliche fragen