Difference between revisions of "Microphone Mute Button"
m (→General) |
(→Workaround using acpid: Add new MICMUTE event from acpid 2.0.19) |
||
Line 9: | Line 9: | ||
== Workaround using acpid == | == Workaround using acpid == | ||
Pressing the mic mute botton will generate a acpi event | Pressing the mic mute botton will generate a acpi event | ||
+ | $ acpi_listen | ||
+ | button/micmute MICMUTE 00000080 00000000 K | ||
+ | Depending on your model and your version of acpid it may generate a different event | ||
$ acpi_listen | $ acpi_listen | ||
ibm/hotkey HKEY 00000080 0000101b | ibm/hotkey HKEY 00000080 0000101b | ||
add a acpid rule to handle this event in {{path|/etc/acpi/events/lenovo-mutemic}}: | add a acpid rule to handle this event in {{path|/etc/acpi/events/lenovo-mutemic}}: | ||
− | event= | + | event=button/micmute MICMUTE 00000080 00000000 K |
action=/etc/acpi/lenovo-mutemic.sh | action=/etc/acpi/lenovo-mutemic.sh | ||
the script ({{path|/etc/acpi/lenovo-mutemic.sh}}) to toggle the mice look like this: | the script ({{path|/etc/acpi/lenovo-mutemic.sh}}) to toggle the mice look like this: |
Revision as of 08:56, 20 September 2013
General
Some Thinkpads come with a Microphone Mute Button possibly with an led.
It does not work on Ubuntu, a bug has been reported and a patch has been proposed: https://bugs.launchpad.net/ubuntu/+source/udev/+bug/408903
If you don't have /sys/devices/platform/thinkpad_acpi/leds/tpacpi::micmute, you'll need to patch your kernel with this patch.
Workaround using acpid
Pressing the mic mute botton will generate a acpi event
$ acpi_listen button/micmute MICMUTE 00000080 00000000 K
Depending on your model and your version of acpid it may generate a different event
$ acpi_listen ibm/hotkey HKEY 00000080 0000101b
add a acpid rule to handle this event in /etc/acpi/events/lenovo-mutemic:
event=button/micmute MICMUTE 00000080 00000000 K action=/etc/acpi/lenovo-mutemic.sh
the script (/etc/acpi/lenovo-mutemic.sh) to toggle the mice look like this:
#!/bin/bash led="/sys/devices/platform/thinkpad_acpi/leds/tpacpi::micmute/brightness" user=$(who | awk '/0\.0/{print $1; exit;}') [[ -z $user ]] && user=root if [[ $(amixer sget Capture) == *"[on]"* ]]; then logger "Microphone is now muted (for $user) $USER" amixer sset Capture nocap [[ -f $led ]] && echo 1 > $led sudo -u $user DISPLAY=":0.0" notify-send -i microphone-sensitivity-muted-symbolic "Microphone" "Microphone is now <b>MUTED</b>" else logger "Microphone is now on (for $user)" amixer sset Capture cap [[ -f $led ]] && echo 0 > $led sudo -u $user DISPLAY=":0.0" notify-send -i microphone-sensitivity-high-symbolic "Microphone" "Microphone is now <b>ON</b>" fi
Explanation:
- led contain the path to the led in the mute botton (see below)
- user is the name of the user, which is currently signed in in X11 and notify-send will send a notification to that user. Remove these lines if you don't like it.
- Pressing the button will toggle the state of the ALSA capture device, which is maybe not optimal in all cases as it disables all capture devices. Mic would be another choice, but on some thinkpads it is named Internal Mic.
ALSA will not remember the state of the led at startup, so one need another small start-up script:
#!/bin/bash led="/sys/devices/platform/thinkpad_acpi/leds/tpacpi::micmute/brightness" if [[ $(amixer sget Capture) == *"[off]"* ]]; then [[ -f $led ]] && echo 1 > $led fi
and put it in /etc/local.d/lenovo-mutemic.sh.