Running on Slackware64-current, mic mute button is not detected. Here is my solution.
Download and build thinkpad_acpi kernel module from ubuntu
Reinstall (replace) original thinkpad_acpi kernel module:
root@pcxthinkslack:/home/bowo/Build/tp_acpi# make
make -C /lib/modules/3.7.10-zen-pcx/build M=/home/bowo/Build/tp_acpi modules
make[1] : on entre dans le répertoire « /usr/src/zen-kernel-3.7-master »
Building modules, stage 2. MODPOST 1 modules make[1] : on quitte le répertoire « /usr/src/zen-kernel-3.7-master »
root@pcxthinkslack:/home/bowo/Build/tp_acpi# cp thinkpad_acpi.ko /lib/modules/3.7.10-zen-pcx/kernel/drivers/platform/x86/thinkpad_acpi.ko
Remap keyboard
root@pcxthinkslack:/home/bowo# grep -nir mute /lib/udev/keymaps/module-lenovo
15:0x16 mute 17:0x1A f20 # Microphone mute
root@pcxthinkslack:/home/bowo# grep -nir Mute /usr/share/X11/XKeysymDB
14:hpmute_acute :100000A8
15:hpmute_grave :100000A9
16:hpmute_asciicircum :100000AA
17:hpmute_diaeresis :100000AB
18:hpmute_asciitilde :100000AC
171:SunAudioMute :1005FF78
207:XF86AudioMute :1008FF12
355:XF86MicMute :1008FFAA
root@pcxthinkslack:/home/bowo# grep -nir MicMute /etc/X11/xkb/symbols/inet
119: key <FK20> { [ XF86MicMute ] };
Bind keyboard event with xbindkeys
Now, xev should detect mic button event. Use xev to get this value:
root@pcxthinkslack:/home/bowo# tail -n 10 .xbindkeysrc
# Toogle discharge on fn+f3
"/usr/local/bin/toogle-discharge.sh"
m:0x0 + c:244
XF86Battery
# Key mute button
"/usr/local/bin/lenovo-mutemic.sh"
m:0x0 + c:198
XF86MicMute
and this is /usr/local/bin/lenovo-mutemic.sh
contents
root@pcxthinkslack:/home/bowo# cat /usr/local/bin/lenovo-mutemic.sh
#!/bin/bash
# workaround to permission denied walaupun dengan sudo
sudo chmod o+w /sys/devices/platform/thinkpad_acpi/leds/tpacpi::micmute/brightness
if amixer sget 'Internal Mic',0 | grep '[on]' ; then
# Mute mic
amixer sset 'Internal Mic',0 toggle
#su bowo -c 'DISPLAY=":0" notify-send KMix "Mic is muted" -i kmix'
logger "Mic is muted"
echo 1 > /sys/devices/platform/thinkpad_acpi/leds/tpacpi::micmute/brightness
else
# Un-mute mic
amixer sset 'Internal Mic',0 toggle
#su bowo -c 'DISPLAY=":0" notify-send KMix "Mic is unmuted" -i kmix'
logger "Mic is unmuted"
echo 0 > /sys/devices/platform/thinkpad_acpi/leds/tpacpi::micmute/brightness
fi
sudo chmod o-w /sys/devices/platform/thinkpad_acpi/leds/tpacpi::micmute/brightnes
=-=-=-=-=
Powered by Blogilo