New Sony Vaios hotkeys don't work (fn_key polling)

Bug #50692 reported by Anthony Mercatante
16
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Linux
Unknown
Wishlist
linux (Ubuntu)
Incomplete
Medium
Unassigned
Nominated for Lucid by Hans Bakker

Bug Description

On new Sony Vaios (FS and FJ series) hotkeys don't work.

A piece of code that enables them as been released on gentoo forums.
The programs runs as a service and as a config file in /etc/fsfn.conf.

Here is the dmidecode output on my laptop:
System Information
        Manufacturer: Sony Corporation
        Product Name: VGN-FJ3S_W

Basically, the same config (default) enables hotkeys on all VGN-FN* computers and adding BRT_HACK_FJS=1 parameter in /etc/fsfn.conf files, enables them for VGN-FJ* series.

As an attachement to this bug, here is the fsfn tarball (latest version from the gentoo boards).

Revision history for this message
Anthony Mercatante (tonio) wrote : "fsfn" source code

Here is the "fsfn" source code

Revision history for this message
Paul Sladen (sladen) wrote : Re: New Sony Vaios hotkeys don't work

Confirmed in-person in Paris; the code is polling /proc/acpi/sony/fn_key for a 16-bit mask that corresponds to the hotkey-pressed and this needs turning into an evdev event.

The workaround for the brightness on these laptops is because the BIOS always replies that the brightness is at level '7'; however the hardware responds correctly when programmed with other values so a local copy is kept of the display brightness, rather than querying the ACPI routine.

Changed in hotkey-setup:
status: Unconfirmed → Confirmed
Paul Sladen (sladen)
Changed in hotkey-setup:
importance: Untriaged → Low
Revision history for this message
Paul Sladen (sladen) wrote :

<Tonio_> I would have though this was more a wishlist than bug fixing, but that depends on your view ;)

Changed in hotkey-setup:
importance: Low → Wishlist
Revision history for this message
Hezekiah Carty (hez) wrote :

I think this counts as a bug rather than wishlist, as the keys do work on many laptops (including other Sonys) and users will expect these keys to work as they are labeled.

Revision history for this message
Peter Whittaker (pwwnow) wrote :

The fsfn package is available at http://developer.berlios.de/projects/fsfn

Changed in hotkey-setup:
importance: Wishlist → Medium
Revision history for this message
Ernesto (ernestoongaro) wrote :

Assigned to maintainer.

Changed in hotkey-setup:
assignee: nobody → mjg59
Revision history for this message
Ernesto (ernestoongaro) wrote :

Still not working in Feisty stable.
        Manufacturer: Sony Corporation
        Product Name: VGN-FS810
        Version: C3LLV8R4

Revision history for this message
In , Nicolas-mailhot-laposte (nicolas-mailhot-laposte) wrote :

Many keyboards have keys with a keycode>255 under linux today

The xorg evdev driver does not handle those properly, causing collisions and dead keys

Please fix this

Revision history for this message
In , Warp-spam+fdo (warp-spam+fdo) wrote :

This is on my todo list for the xserver 1.4 release, however due to protocol issues it may not happen.

It most definitely will never be supported in the 1.1 branch.

It will definitely not happen instantly.

Revision history for this message
In , Nicolas-mailhot-laposte (nicolas-mailhot-laposte) wrote :

I know it's a difficult problem, but lists blogs & wikis are littered with users trying to figure where in the kernel -> xorg input -> xkb bermuda triangle from hell their keys are lost (and then they pile on workarounds that make the situation worse more often than not)

I hope it will make 1.4. This is a major problems that has needed urgent fixing for a long time.

Revision history for this message
In , Daniel Stone (daniels) wrote :

by far the easiest way to fix this, is to bump the protocol to x12. that should give you an idea of how hard the alternatives are.

Revision history for this message
In , Nicolas-mailhot-laposte (nicolas-mailhot-laposte) wrote :

despair :(

And yet it is getting impossible to buy plain input hardware without extended keys, and once users have them they expect them to work, so the house is burning today

Is x12 realistic for xserver 1.4?

Revision history for this message
In , Daniel Stone (daniels) wrote :

well, we've been on x11 since 1985, so it's not feasible to go to x12 in the next two months, no.

Revision history for this message
In , Nicolas-mailhot-laposte (nicolas-mailhot-laposte) wrote :

Ok.

I just hope then you're planning x12 inside xorg today then, because Linux is moving on the desktop space now (with Ubuntu and friends), and it won't be possible to ignore input problems anymore soon. We're not talking of ssh-accessed servers now.

Revision history for this message
In , Daniel Stone (daniels) wrote :

thanks for your concern, but you're talking to the people who are gradually rewriting the input code, and have, in fact, rewritten basically all of it (bar xkb -- which is in the middle of being rewritten itself) between three of us, in the past year. any contribution you may want to make is more than welcome, but failing that, you'll just have to be patient.

Revision history for this message
In , Nicolas-mailhot-laposte (nicolas-mailhot-laposte) wrote :

I didn't want to seem disrespectful or anything like that. (If I was I apologize)

It's just all this x12 talk feels like even if the input code was written soon it would be delayed a long time before the other xorg maintainers agree on what to include in the protocol bump. So I was wondering if x12 was discussed @xorg so the excellent input code you fine people will surely write in the near future won't be delayed by x12 discussions.

(I also wanted to know if it was reasonable to plan xkb-config patching for my hardware, or if I was likely to use something else by the time evdev is fixed.)

Revision history for this message
In , Alan Coopersmith (alan-coopersmith) wrote :

Do you really need more than 255 keycodes at the same time? If not,
remapping keycodes > 255 to values < 255 should work with the existing
protocol (though I have no idea how hard it would be to do this mapping
in xevdev, since I've never looked at it).

As for X12 planning, the transition will be painful enough, we don't want
to do it more than once this decade, so we're in the stage of gathering up
all the things that need to be changed to get them all at once - see:
http://wiki.x.org/wiki/Development/X12

Revision history for this message
In , Daniel Stone (daniels) wrote :

unfortunately, xkb makes this mind-smashingly hard, but if anyone wants to code keycode compression into xkbcomp, feel free. (hint: don't start with the existing codebase.)

Revision history for this message
In , Daniel Stone (daniels) wrote :

(as an addendum, you'd need a way of hinting xkbcomp as to which keycodes to preserve, presumably by testing the EV_KEY bits. evdev needs a complete map; we don't know which keycodes will be needed until we've opened the device.)

Revision history for this message
In , Nicolas-mailhot-laposte (nicolas-mailhot-laposte) wrote :

Add to this hotplug fun, when a new device that uses keys discarted to make place for something else can be inserted at any time.

No remapping is a requirement if you want to support new input hardware by default. To have generic support you need to declare every known extended keycode, so devices the user plug in (which use any subset of those) just work. As hardware manufacturers are real good at finding new extended keys and coming up with new input devices the 255 limit has been passed some time ago. Any form of reduction to 255 codes only results in key collisions with some input device sets.

Current remapping only works for configs customized for a particular device set, where you know the specific keycode set used. Also, every remapping requires a customized set of xkeyboard-config localized layouts. Since the result can not be safely shared, that's a labour-intensive enthusiast-only solution.

Revision history for this message
In , Daniel Stone (daniels) wrote :

(In reply to comment #12)
> Add to this hotplug fun, when a new device that uses keys discarted to make
> place for something else can be inserted at any time.

yes, that's fine. new devices are inserted individually, with completely different maps. the keymap of one device has absolutely no effect on the other: you can have three keyboards: one with a us layout, one with german, and one with french. actually, you can have 127 keyboards with different layouts.

> No remapping is a requirement if you want to support new input hardware by
> default. To have generic support you need to declare every known extended
> keycode, so devices the user plug in (which use any subset of those) just work.

that's what i said.

> As hardware manufacturers are real good at finding new extended keys and coming
> up with new input devices the 255 limit has been passed some time ago. Any form
> of reduction to 255 codes only results in key collisions with some input device
> sets.

you reduce per device. evdev lets you query which keys your keyboard is capable of producing, so unless you have a device with more than 255 physical keys, you're doing okay.

> Current remapping only works for configs customized for a particular device
> set, where you know the specific keycode set used. Also, every remapping
> requires a customized set of xkeyboard-config localized layouts. Since the
> result can not be safely shared, that's a labour-intensive enthusiast-only
> solution.

i'm not sure what you're trying to say here, other than manufacturers should make it possible for us to have any clue what the keyboard is automatically. right now, there are very, very, very few keyboards which actually give us enough information to set up a proper map per default.

Revision history for this message
In , Nicolas-mailhot-laposte (nicolas-mailhot-laposte) wrote :

(In reply to comment #13)

> you reduce per device. evdev lets you query which keys your keyboard is
> capable of producing, so unless you have a device with more than 255 physical
> keys, you're doing okay.

But if you have device1 with extended key A, and device2 with extended key B, you still need to assign A & B different codes if you want A & B to have different effects on apps (that to not care where A & B are coming from)

To put stuff in perspective :

1. I have a bog-standard MS keyboard (ergo 4000). I count ~ 33 additional keys on it (not all exported via evdev yet, but they should be) 105 + 33 = 138 keys

2. I have an harmony universal remote. I will plug it in evdev someday. I count 47 keys that send an IR signal (actual number is higher, as the keys are modal and send different signals depending on the remote mode) 138 + 47 = 185 (most of the keys have different effects than the keyboard on and would be mapped to XF86Foo)

3. I've seen an xorg log yesterday with a mouse declaring ~ 30 buttons (most of which will be mapped to specific evdev codes) 185 + 30 = 215

That's awfully close to the 255 limit. Without even going to MPX and having several keyboards with different extended keys set on them

Revision history for this message
In , Daniel Stone (daniels) wrote :

(In reply to comment #14)
> (In reply to comment #13)
> > you reduce per device. evdev lets you query which keys your keyboard is
> > capable of producing, so unless you have a device with more than 255 physical
> > keys, you're doing okay.
>
> But if you have device1 with extended key A, and device2 with extended key B,
> you still need to assign A & B different codes if you want A & B to have
> different effects on apps (that to not care where A & B are coming from)

no, not really true. if you're typing on two different keyboards, then the core map gets pivoted every time the active device changes. anyhow, any toolkit not dealing with multiple devices separately is always going to have suboptimal behaviour. any app not using a toolkit is always going to have suboptimal behaviour.

> To put stuff in perspective :
>
> 1. I have a bog-standard MS keyboard (ergo 4000). I count ~ 33 additional keys
> on it (not all exported via evdev yet, but they should be) 105 + 33 = 138 keys
>
> 2. I have an harmony universal remote. I will plug it in evdev someday. I count
> 47 keys that send an IR signal (actual number is higher, as the keys are modal
> and send different signals depending on the remote mode) 138 + 47 = 185 (most
> of the keys have different effects than the keyboard on and would be mapped to
> XF86Foo)

no, you're still on device a: 138, and device b: 47.

> 3. I've seen an xorg log yesterday with a mouse declaring ~ 30 buttons (most of
> which will be mapped to specific evdev codes) 185 + 30 = 215

device a: 138, device b: 47, device c: 30.

> That's awfully close to the 255 limit. Without even going to MPX and having
> several keyboards with different extended keys set on them

i don't know what mpx has to do with multiple keyboards with multiple keymaps, since that can be done today.

you're still missing the point that we don't need to compress every device map into one map that covers every single keyboard plugged into the system. this is _not_ the case. really.

Revision history for this message
In , Nicolas-mailhot-laposte (nicolas-mailhot-laposte) wrote :

Ok. Does compression need x12 too? or can it happen say this year?

Revision history for this message
In , Daniel Stone (daniels) wrote :

it's possible for someone to do it, yes. but it's not a small amount of work.

Revision history for this message
wvengen (wvengen) wrote :

There is an effort to make hotkeys work on all Sony Vaio models that use ACPI at http://tjworld.net/snc/ .
If your model isn't listed yet, please follow the instructions on http://ubuntuforums.org/showthread.php?t=465491 and submit your BIOS and ACPI data.

Revision history for this message
In , Stanislav Brabec (sbrabec-suse) wrote :

Two ideas, how to accept keycodes > 255 it backward compatible. All of them are ugly hacks, but may be accepted in X11 line:

1) evdev driver will query kernel for all available keys on all configured keyboards, then it will create table of false one-byte keysyms. In correspondence to them it will also write temporary xkb keycodes/evdev table.

2) X will accept keycodes > 255 internally, but in protocol level it will provide correct keysym with possibly incorrect keycode.

For both ugly hack is valid following limitation: Most applications read only keysym, the rest will break.

Revision history for this message
In , Daniel Stone (daniels) wrote :

(In reply to comment #18)
> 1) evdev driver will query kernel for all available keys on all configured
> keyboards, then it will create table of false one-byte keysyms. In
> correspondence to them it will also write temporary xkb keycodes/evdev table.

That only works if you have less than 255 possible keys.

> 2) X will accept keycodes > 255 internally, but in protocol level it will
> provide correct keysym with possibly incorrect keycode.
>
> For both ugly hack is valid following limitation: Most applications read only
> keysym, the rest will break.

The keysym is not sent with the event. Only the keycode is sent, and the applications keep a keycode/keysym mapping table. Having two mappings and switching between them will almost certainly break grabs, as well.

Revision history for this message
In , Stanislav Brabec (sbrabec-suse) wrote :

> That only works if you have less than 255 possible keys.

Yes. That can only work if you have less than 255 actual keys. You can still have more possible kernel key codes and assign X keycodes dynamically for actually existing keys. It can work, if only xkb will use keycodes directly and you will modify xkb table.

> The keysym is not sent with the event.

It means that xkb is completely in user level, isn't it?

There is a third ugly hack method inspired by "Extended MEDIUMRAW Mode" in Linux kernel. I guess that this one can be used to transfer keycodes without breaking protocol compatibility, but it will introduce need to modify input handling:

3) Use virtual key sequences to transfer more data:

Define say 17 reserved keys in the range < 256 - one ExtraEscape and sixteen ExtraData0-ExtraDataF.

Process keypresses in the following way:

- If the input keycode is from range 0-255 (except these 17 keys), handle it in a standard way.

- If the input keycode is outside this range, send it as a sequence of more keycodes: Each event can represent 4 bits, 4 events will create all 16 bits.

- These four events may be release only. If you allow press events as well, then it will need no ExtraEscape.

This method will still break applications waiting for "single press/release of any key".

Revision history for this message
In , Stanislav Brabec (utx) wrote :

Another idea, how to transfer characters > 255 through X11:

- Reserve say two modifiers for high keycodes (say ExtMod0, ExtMod1). Each extmod will add 1 bit.
- Programs using old byte-wide communication will get keypress as e. g. as ExtMod_combination+any_key_1-266
- Programs using new wide Xlib calls will get real keypresses (which can be sent in parallel with "compatible" way, or server and client can handshake about using this new way).

With 2 reserved modifiers we can transfer at least 956 keycodes, which seems to be sufficient in next few years.

Revision history for this message
In , Daniel Stone (daniels) wrote :

*** Bug 13203 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Daniel Stone (daniels) wrote :

*** Bug 14843 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Stanislav Brabec (sbrabec-suse) wrote :

Yet another idea, how to make it possible for X11: X Keycode Extension.

It would need patched of libX11 and server code on both sides. If X Keycode Extension will be present on both server and client, then wide keycodes will be transfered via extension. If not, low keycodes will be tranferred via standard X keyboard events, high keycodes will use "random" translation or they will be lost.

Revision history for this message
In , Paul de Vrieze (pauldv) wrote :

What are the possibilities of using a synthetic keyboard for this? This keyboard could just remove the most significant bit, and map the right keycodes.

Revision history for this message
In , Daniel Stone (daniels) wrote :

(In reply to comment #24)
> Yet another idea, how to make it possible for X11: X Keycode Extension.
>
> It would need patched of libX11 and server code on both sides. If X Keycode
> Extension will be present on both server and client, then wide keycodes will be
> transfered via extension. If not, low keycodes will be tranferred via standard
> X keyboard events, high keycodes will use "random" translation or they will be
> lost.

Given that this requires updates to XKB and Xi as well as the API and ABI of a lot of libraries, it's a lot easier for it to just be Xi 2/3 and XKB 2.

Revision history for this message
In , Daniel Stone (daniels) wrote :

(In reply to comment #25)
> What are the possibilities of using a synthetic keyboard for this? This
> keyboard could just remove the most significant bit, and map the right
> keycodes.

Unfortunately no, because this would break apps anyway, as no-one does the right thing of recalculating their keysym -> keycode tables for grabs when the map changes. So might as well just be Xi 2/3 and XKB 2.

Revision history for this message
In , Daniel Stone (daniels) wrote :

*** Bug 14078 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Daniel Stone (daniels) wrote :

fwiw, xi 2 will be released with xserver 1.7 in mid-2009.

Revision history for this message
In , Stanislav Brabec (sbrabec-suse) wrote :

As this problem is going to be resolved, we should start think about getting correct translation between kernel and X.

Proposed patch for the old keyboard driver to pass keycodes 128-16383 (128-255 with old Xi) using "Extended MEDIUMRAW" encapsulation: bug 11545

Keyboard mapping project page:
http://fedoraproject.org/wiki/SIGs/Laptop/HotKeys

Mapping work-in-progress. One table and set of scripts providing all needed tables. Some keys still need discussion.

* Proposed mapping table between kernel and X: http://pack.suse.cz/sbrabec/keyboards/input_linux_map_fixed.txt

* Proposed logical categories of keys (to help understanding them): http://pack.suse.cz/sbrabec/keyboards/keymap_editor/keys.txt

* Scancode scripts for kernel (generated from X symbols/inet and table above): http://pack.suse.cz/sbrabec/keyboards/scancode_tables/

* Proposed code snippet to evdev_key.c driver (generated from the table above): http://pack.suse.cz/sbrabec/keyboards/evdev_key_c_table.txt

* Proposed X keycodes/evdev for evdev driver (generated from the table above): http://pack.suse.cz/sbrabec/keyboards/keycodes_evdev

* Proposed common extended basic keymap for X: http://pack.suse.cz/sbrabec/keyboards/symbols_evdev

* Proposed X keycodes/inet for RAW and SOFTRAW drivers (generated from X symbols/inet and table above): http://pack.suse.cz/sbrabec/keyboards/keycodes_inet

Things to discuss are marked with FIXME (X=X) (K=kernel)). It seems that several key codes in kernel are incorrect, and in X there are several duplicate codes.

Vojtech Pavlik provided a several banana boxes of obscure keyboards to me, so I am using the same source as he had 11 years ago for kernel.

Revision history for this message
In , Peter Hutterer (peter-hutterer) wrote :

(In reply to comment #30)
> Proposed patch for the old keyboard driver to pass keycodes 128-16383 (128-255
> with old Xi) using "Extended MEDIUMRAW" encapsulation: bug 11545

I'm not sure that we'd want to extend the kbd driver. evdev is the better vehicle for this, and maybe this puts enough pressure on other OS to provide an evdev-like input system.

> * Proposed code snippet to evdev_key.c driver (generated from the table above):
> http://pack.suse.cz/sbrabec/keyboards/evdev_key_c_table.txt

this table is ifdef'd out if you're compiling against the server past 1.6. so this part not needed.

Revision history for this message
In , Stanislav Brabec (sbrabec-suse) wrote :

For kdrive, the patch is important. Many embedded platforms still use old keyboard driver in MEDIUMRAW mode as a default and this patch extends key code range from 0-127 to 0-255. The kdrive patch is used in distributions derived from OpenEmbedded for several years.

"Extended MEDIUMRAW" mode should be superseded by evdev in the standard Xorg server. MEDIUMRAW mode is not used there for ~10 years and the code may be simplified by dropping its support at all as an alternative to "MEDIUMRAW -> Extended MEDIUMRAW" patch.

Revision history for this message
In , Dakkar-thenautilus (dakkar-thenautilus) wrote :

I realize I'm coming in pretty late to this bug, but I actually wrote a work-around (I won't presume to call it a "solution", I know it's a hack) to the evdev code that "work for me".

You can see it at http://www.thenautilus.net/cgit/xf86-input-evdev/?h=code-remap

Summary: I added a new option, "evdev_key_remap", whose value should be a string of the format "$evdev_code = $x11_code ..." (a sequence of "assignments" separated by spaces). The PostKbdEvent function will then use those "assignments" to remap the codes coming from the device.

I have it running on my machine, with the new option set to "464=118", so that the "Fn" key in my Apple Aluminium keyboard is treated as the "Ins" key that occupies that space on most other keyboards.

Hope this helps.

Revision history for this message
In , Andre Klapper (a9016009) wrote :

(Maemo downstream ticket at https://bugs.maemo.org/show_bug.cgi?id=3021 .)

Revision history for this message
Steve Langasek (vorlon) wrote :

is this still an issue with recent kernels, or does the sony-laptop module now take care of this?

affects: hotkey-setup (Ubuntu) → linux (Ubuntu)
Changed in linux (Ubuntu):
status: Confirmed → Incomplete
Revision history for this message
In , Peter Hutterer (peter-hutterer) wrote :

*** Bug 23538 has been marked as a duplicate of this bug. ***

Revision history for this message
Hans Bakker (hansmbakker) wrote :

I have this problem, too, on my Vaio VGN-SR51MF/S. The volume hotkeys and brightness hotkeys work, but the following hotkeys do not work:
- The zoom out / in buttons (Fn+F9; Fn+F10)
- The Mode hotkey, which in windows lets the user choose from three activity hotkey sets (work, play and settings)
- The first 4 Activity hotkeys do work, but the fifth (the one which is most to the right) does not
- The Settings hotkey which lets the user assign other actions to these sets

The Sleep and Switch LCD/External monitor do work, but in KDE, I could not find a hotkey setting to which I could assign these hotkeys.

I attached my DSDT file, because the earlier mentioned forum thread seams to be dead.

Revision history for this message
In , Julien Cristau (jcristau) wrote :

*** Bug 26876 has been marked as a duplicate of this bug. ***

Revision history for this message
Peter Whittaker (pwwnow) wrote :

There was no activity on this bug report for 2+ years, then a couple of recent comments. In all likelihood this should be closed as invalid - I will do that in about 2 weeks unless there are updates with new information.

The type of information required: What release are you running? Are all updates applied? Is the sony-laptop module installed (if applicable - it may have been superseded by recent kernel updates)?

Revision history for this message
Hans Bakker (hansmbakker) wrote :

I am running Kubuntu Lucid with all updates applied and lsmod | grep sony returns:
sony_laptop 33756 0

So I think the sony-laptop module is installed.

The Mode, Activity and Settings hotkeys above the normal keyboard are filed in different bug reports (http://bugs.freedesktop.org/show_bug.cgi?id=25835 for the non-recognized buttons and http://bugreports.qt.nokia.com/browse/QTBUG-7063 for the shifted Activity buttons)

The zoom buttons do not work because of X11 not being able to use keycodes with a value > 255 (https://bugs.freedesktop.org/show_bug.cgi?id=11227)

The External display button simply has no action to connect it to. Maybe an action to show the monitor setup KCM could be created?

Revision history for this message
In , Maxim Levitsky (maximlevitsky) wrote :

ping

Revision history for this message
In , Julien Cristau (jcristau) wrote :

> --- Comment #37 from <email address hidden> 2010-07-03 18:52:41 PDT ---
> ping

pong. did you want to say something?

Revision history for this message
In , Maxim Levitsky (maximlevitsky) wrote :

I mean, is there any update on this?

Revision history for this message
In , Andre Klapper (a9016009) wrote :

(In reply to comment #39)
> I mean, is there any update on this?

No.

Revision history for this message
In , Maxim Levitsky (maximlevitsky) wrote :

Why not at least for now let the evdev to send extended keys as a say Mod5+key?
I mean this is real very nasty problem for users with IR remotes, and formal support for which will land in 2.6.36.

Revision history for this message
In , Peter Hutterer (peter-hutterer) wrote :

any "for now" solution that ends up being used is hard to change later on
without breaking clients. And we're generally trying to avoid that.

besides, evdev doesn't really have a notion of Mod5, it may be reassigned at
any time and the driver wouldn't even notice. while that's not common it
cannot be ruled out and would just causes more issues

Revision history for this message
In , RussianNeuroMancer (russianneuromancer) wrote :

> I mean this is real very nasty problem for users with IR remotes
Also there is a big problem with hardware hotkeys on laptops. Many laptops have hardware buttons for launch audio and video players, but because of this bug at this moment not possible to assign this buttons to suitable KEY_AUDIO and KEY_VIDEO scancodes.

Revision history for this message
rusivi2 (rusivi2-deactivatedaccount) wrote :

Hans Bakker:

First bug marked Fixed Released:

http://bugs.freedesktop.org/show_bug.cgi?id=25835

Second bug marked Closed Invalid:

http://bugs.freedesktop.org/show_bug.cgi?id=25835

Third bug open:

https://bugs.freedesktop.org/show_bug.cgi?id=11227

At this point seems should attach this bug to third bug. Marking as such.

Changed in linux:
importance: Unknown → Wishlist
status: Unknown → Confirmed
Changed in linux:
importance: Wishlist → Unknown
Revision history for this message
rusivi2 (rusivi2-deactivatedaccount) wrote :

Marking back to Confirmed based on upstream activity.

Changed in linux (Ubuntu):
status: Incomplete → Confirmed
Changed in linux:
importance: Unknown → Wishlist
Revision history for this message
In , Freedesktop-org (freedesktop-org) wrote :

> Also there is a big problem with hardware hotkeys on laptops. Many laptops have
> hardware buttons for launch audio and video players, but because of this bug at
> this moment not possible to assign this buttons to suitable KEY_AUDIO and
> KEY_VIDEO scancodes.

It's not only laptops now. Many modern mice are affected, in fact I'm suffering now due to this bug. The only affordable mouse that conforms to my disability is unusable due to this bug. So for me, this is an accessibility issue as well.

Revision history for this message
In , Peter Hutterer (peter-hutterer) wrote :

1. We know this is already a problem.
2. The fix to this problem is huge, difficult and very invasive. It requires a new protocol extension and all the inertia that comes with it.
3. The proper fix to this problem breaks client-side API. see 2.
4. Workarounds can be found, but are limited to some use-cases only and will not work for the generic solution, because see 2.
5. We don't have enough man-power to fix this at this point, because see 2.

Please refrain from commenting on this bug unless you can help with 5. Points 1 to 4 are pretty much non-negotiable.

Revision history for this message
In , Jeremy Sequoia (jeremyhu) wrote :

*** Bug 13356 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Maxim Levitsky (maximlevitsky) wrote :

Isn't it a solution just to fix XI2 to pass through extended codes?
So every TV viewer application, could just register for XI2 inputs and thats all.
That would at least make IR remote support on par with Windows, where also just few keys on the MCE remote work everywhere, but all keys work in media center.

Revision history for this message
In , Maxim Levitsky (maximlevitsky) wrote :

Especially knowing that on protocol level XI2 does support extended events.
Its just matter of fixing X code.

Revision history for this message
In , Daniel Stone (daniels) wrote :

On 9 March 2012 00:56, <email address hidden> wrote:
> --- Comment #48 from <email address hidden> 2012-03-08 16:56:28 PST ---
> Especially knowing that on protocol level XI2 does support extended events.
> Its just matter of fixing X code.

To an extent, yes. Extended keycodes could relatively easily be
passed through XI2, but XKB needs to be extended so clients know what
those keys actually mean.

Revision history for this message
In , Nicolas-mailhot-laposte (nicolas-mailhot-laposte) wrote :

(In reply to comment #49)
> On 9 March 2012 00:56, <email address hidden> wrote:
> > --- Comment #48 from <email address hidden> 2012-03-08 16:56:28 PST ---
> > Especially knowing that on protocol level XI2 does support extended events.
> > Its just matter of fixing X code.
>
> To an extent, yes. Extended keycodes could relatively easily be
> passed through XI2, but XKB needs to be extended so clients know what
> those keys actually mean.

Why would xkb need to know that ?

Can't apps and xkb maps not reference them by code number ? (as is already the case for most unicode points xkb has no pretty name for)

Revision history for this message
In , Daniel Stone (daniels) wrote :

Hi,

On 9 March 2012 12:51, <email address hidden> wrote:
> --- Comment #50 from Nicolas Mailhot <email address hidden> 2012-03-09 04:51:08 PST ---
> (In reply to comment #49)
>> On 9 March 2012 00:56,  <email address hidden> wrote:
>> > --- Comment #48 from <email address hidden> 2012-03-08 16:56:28 PST ---
>> > Especially knowing that on protocol level XI2 does support extended events.
>> > Its just matter of fixing X code.
>>
>> To an extent, yes.  Extended keycodes could relatively easily be
>> passed through XI2, but XKB needs to be extended so clients know what
>> those keys actually mean.
>
> Why would xkb need to know that ?
>
> Can't apps and xkb maps not reference them by code number ? (as is already the
> case for most unicode points xkb has no pretty name for)

XKB's keycode type is an unsigned char, which only holds eight bits.
It has no way of referring keycodes above 255, without breaking
protocol.

Revision history for this message
penalvch (penalvch) wrote :

Anthony Mercatante, this bug was reported a while ago and there hasn't been any activity in it recently. We were wondering if this is still an issue? If so, could you please test for this with the latest development release of Ubuntu? ISO CD images are available from http://cdimage.ubuntu.com/releases/ .

If it remains an issue, could you please run the following command in the development release from a Terminal (Applications->Accessories->Terminal), as it will automatically gather and attach updated debug information to this report:

apport-collect -p linux <replace-with-bug-number>

Also, could you please test the latest upstream kernel available following https://wiki.ubuntu.com/KernelMainlineBuilds ? It will allow additional upstream developers to examine the issue. Please do not test the kernel in the daily folder, but the one all the way at the bottom. Once you've tested the upstream kernel, please comment on which kernel version specifically you tested and remove the tag:
needs-upstream-testing

This can be done by clicking on the yellow pencil icon next to the tag located at the bottom of the bug description and deleting the text:
needs-upstream-testing

If this bug is fixed in the mainline kernel, please add the following tags:
kernel-fixed-upstream
kernel-fixed-upstream-VERSION-NUMBER

where VERSION-NUMBER is the version number of the kernel you tested.

If the mainline kernel does not fix this bug, please add the following tags:
kernel-bug-exists-upstream
kernel-bug-exists-upstream-VERSION-NUMBER

If you are unable to test the mainline kernel, please comment as to why specifically you were unable to test it and add the following tags:
kernel-unable-to-test-upstream
kernel-unable-to-test-upstream-VERSION-NUMBER

Please let us know your results. Thank you for your understanding.

Changed in linux (Ubuntu):
status: Confirmed → Incomplete
tags: added: bot-stop-nagging needs-kernel-logs needs-upstream-testing
Revision history for this message
In , Adam Jiang (jiang-adam) wrote :

This issue blocks me to enjoy my new keyboard which has ZOOMIN/OUT and SPELLCHECK keys.

I have read through this thread. It seems we are facing manpower issues to get it fixed. I'd like to try to help on this if I can get mentor from you guys.

Another idea is about getting keycode > 255 by Xi2. Is this could be considered a shortcut to avoud protocol breaking. Shall we give a try on it?

Revision history for this message
In , Peter Hutterer (peter-hutterer) wrote :

XI2 already sends 32-bit keycodes, it's the XKB layer and thus the ability to interpret this that doesn't handle them.

Revision history for this message
In , Stanislav Brabec (sbrabec-suse) wrote :

If somebody is still interested in project of Linux input device => X key codes mapping from the comment 30, there is an update with new URLs (no other changes were done in the comment nor linked files):

Stanislav Brabec 2009-05-20 04:24:46 UTC

As this problem is going to be resolved, we should start think about getting correct translation between kernel and X.

Proposed patch for the old keyboard driver to pass keycodes 128-16383 (128-255 with old Xi) using "Extended MEDIUMRAW" encapsulation: bug 11545

Keyboard mapping project page:
http://fedoraproject.org/wiki/SIGs/Laptop/HotKeys

Mapping work-in-progress. One table and set of scripts providing all needed tables. Some keys still need discussion.

* Proposed mapping table between kernel and X: http://ftp.suse.com/pub/people/sbrabec/keyboards/input_linux_map_fixed.txt

* Proposed logical categories of keys (to help understanding them): http://ftp.suse.com/pub/people/sbrabec/keyboards/keymap_editor/keys.txt

* Scancode scripts for kernel (generated from X symbols/inet and table above): http://ftp.suse.com/pub/people/sbrabec/keyboards/scancode_tables/

* Proposed code snippet to evdev_key.c driver (generated from the table above): http://ftp.suse.com/pub/people/sbrabec/keyboards/evdev_key_c_table.txt

* Proposed X keycodes/evdev for evdev driver (generated from the table above): http://ftp.suse.com/pub/people/sbrabec/keyboards/keycodes_evdev

* Proposed common extended basic keymap for X: http://ftp.suse.com/pub/people/sbrabec/keyboards/symbols_evdev

* Proposed X keycodes/inet for RAW and SOFTRAW drivers (generated from X symbols/inet and table above): http://ftp.suse.com/pub/people/sbrabec/keyboards/keycodes_inet

...

Revision history for this message
In , Dqarras (dqarras) wrote :

It seems pretty clear that this is not going to get fixed for X but could someone add a comment here for reference whether this same limitation is true or not for Wayland?

Revision history for this message
In , Peter Hutterer (peter-hutterer) wrote :

wayland uses 32 bit keycodes, so it doesn't have the same limitation.

Revision history for this message
In , Peter Hutterer (peter-hutterer) wrote :

*** Bug 98998 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Ajax-a (ajax-a) wrote :
Changed in linux:
status: Confirmed → Unknown
Brad Figg (brad-figg)
tags: added: cscc
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.