Re: [PATCH] toshiba_acpi: Add full hotkey support

Matthew Garrett
2009-03-08T14:36:53Z

On Sun, Mar 08, 2009 at 08:33:48AM +0000, Richard Hughes wrote:
> On Sat, Mar 7, 2009 at 8:26 PM, Matthew Garrett <mjg59@srcf.ucam.org> wrote:
> > Mapping KEY_SUSPEND to hibernate is what we've been doing for years.
> > It's what hal *still does*.
>
> Sure, but how much userspace now listens to HAL for these events? Xorg
> and evdev has taken over that role for all the session. We can ship a
> trivial patch as an fdi file to HAL to remap this if required.

I've no idea. But I lean towards not gratuitously breaking it for no
reason other than aesthetics.

> > KEY_SLEEP has been the suspend to RAM key forever.
>
> Except if you're a USB keyboard. Grep through the kernel sources and
> see how many drivers get this wrong. We can't map three sleep states
> to two buttons in any sane way. For instance, is the sleep acpi button
> supposed to trigger a suspend of hibernate? Surely this is user policy
> as it is not specified on the the exterior of the machine.

We do it the same way we've previously done it (and the same way it
works outside the Linux world) - the "suspend to RAM" key has
configurable behaviour. As far as I can tell, the USB driver does the
right thing here?

> > How are we supposed to perform this transition? We've no idea
> > how much of userspace makes the same assumption.
>
> FWIW, I think emitting KEY_ events (not switch events) in HAL is crazy
> as now we can just use the fixed Xorg in the session. FWIW, HAL gets
> other keys wrong too, for instance KEY_BATTERY is mapped to
> display_off, but nobody has noticed as we've been using Xorg since
> ages.

I'm happy with obvious bugs being fixed, but this isn't an obvious bug -
it's purely an aesthetic issue. We don't need to draw a distinction
between generic sleep and suspend to RAM keys, especially if the cost of
doing so is having to fix up an undefined quantity of userspace.

--
Matthew Garrett | mjg59@srcf.ucam.org