The IBM-style ThinkPad volume control is a digital mixer to control the
volume of the **built-in** speakers and headphones.  Newer Lenovo models
(past the T60 second generation) don't have it, instead, they have just
a hardware MUTE engine.

It is impossible to deactivate the hardware mixer unless you resort to
changes to the firmware (so, it is NOT going to happen).

The IBM-style volume control system is not designed (both from a
hardware and a firmware point-of-view) to control anything else than the
internal speakers and headphone volume.  It does not control the dock's
line-out (which doesn't go through the headphone/speakers volume
controller (duh!), nor gets the PC speaker signal mixed in).  And it
doesn't control the main mixer.

It doesn't do any of those things in Windows, either.  It never did.
What it does have in Windows is a proper OSD system, so users would
rapidly learn what the volume buttons are, and how to use them.

Anyway, as I said, the hardware mixer cannot be disabled. The firmware
will always adjust the headphone/speaker volume when the volume buttons
are pressed. These buttons are NOT generic volume control hotkeys, they
are the more user-friendly version of a "volume knob" for the internal
speakers and headphone output.

So, to be blunt: you don't have generic volume control keys on your
ThinkPads, unless you:

1. Are using a Lenovo hardware-mixer-less ThinkPad that doesn't send
events to thinkpad-acpi in the first place (but which also doesn't note
that anywhere, so thinkpad-acpi doesn't even know it is running on a
thinkpad that lacks the volume notifications).  The Lenovo models issue
normal keypresses through the KDC for volume up/down (I don't know about
MUTE);

OR

2. You have modified the ACPI (and probably the EC) firmware to disable
the hardware mixer.


And all the issues one has with volume control in ThinkPads old and new are 
directly caused by people who wanted so badly to break the ThinkPad volume 
control model, that they tried to force semantics that are just not applicable 
to these keys (they are NOT master volume control keys) and to the driver 
hotkey system (keypress events are NOT an OSD side-channel).

IMO, it is best to look at this in another way: you want to ADD generic
volume control keys in your keyboard (because you never had those in the
first place!), and you can do just that as long as you stay clear from
the few knobs the firmware doesn't let you mess with freely (brightness,
volume, thinklight, hibernate).  It is not like there is a lack of
unassigned _generic_ FN hotkeys in a more modern thinkpad (i.e. any *40
model or newer).

I suggest that fn+insert and fn+delete be mapped to KEY_VOLUME_UP and
KEY_VOLUME_DOWN, and fn+pgdn be mapped to KEY_MUTE.

This is simple (it only takes three lines inside a HAL .fdi file), it
works just fine (and it will _remain_ working just fine in the future,
which is important), and it doesn't suffer from a number of border
conditions and issues like more 'elaborate' attempts such as the one
suggested by another post of this thread, do.

Of course, this requires unbroken support for KEY_VOLUME_UP,
KEY_VOLUME_DOWN and KEY_MUTE in HAL when the events are coming from
thinkpad-acpi's input device. I believe the crap (a "passive
notification" modifier added to abuse input events for OSD) that could
break these has been removed already, but you might want to double-check
that.

As for OSD, please refer to lauchpad bug #357673.

-- 
Thinkpad Z61m: volume controls control both main and hardware mixer
https://bugs.launchpad.net/bugs/355300
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to