[Bug 207127] Re: fn key doesn't work in hardy with macbook pro fourth generation (4, 1)

Alex Karpenko alexkarpenko at hotmail.com
Thu May 22 02:12:30 UTC 2008


Okay, I did some more digging regarding the F4-F6 keys: turns out older
macbooks had no secondary functionality for those keys, so the lookup
table in drivers/hid/hid-input.c reads:

static struct hidinput_key_translation apple_fn_keys[] = {
	{ KEY_BACKSPACE, KEY_DELETE },
	{ KEY_F1,       KEY_BRIGHTNESSDOWN,     APPLE_FLAG_FKEY },
	{ KEY_F2,       KEY_BRIGHTNESSUP,       APPLE_FLAG_FKEY },
	{ KEY_F3,       KEY_CYCLEWINDOWS,       APPLE_FLAG_FKEY }, /* Exposé */
	{ KEY_F4,       KEY_FN_F4,              APPLE_FLAG_FKEY }, /* Dashboard */
	{ KEY_F5,       KEY_FN_F5 },
	{ KEY_F6,       KEY_FN_F6 },
	{ KEY_F7,       KEY_BACK,               APPLE_FLAG_FKEY },
	{ KEY_F8,       KEY_PLAYPAUSE,          APPLE_FLAG_FKEY },
	{ KEY_F9,       KEY_FORWARD,            APPLE_FLAG_FKEY },
	{ KEY_F10,      KEY_MUTE,               APPLE_FLAG_FKEY },
	{ KEY_F11,      KEY_VOLUMEDOWN,         APPLE_FLAG_FKEY },
	{ KEY_F12,      KEY_VOLUMEUP,           APPLE_FLAG_FKEY },
	{ KEY_UP,       KEY_PAGEUP },
	{ KEY_DOWN,     KEY_PAGEDOWN },
	{ KEY_LEFT,     KEY_HOME },
	{ KEY_RIGHT,    KEY_END },
	{ }
};

Changing the F4, F5 lines to:
	{ KEY_F5,       KEY_KBDILLUMDOWN,       APPLE_FLAG_FKEY },
	{ KEY_F6,       KEY_KBDILLUMUP,         APPLE_FLAG_FKEY },

Adds the desired functionality (that is you get key codes in xev when
pressing fn+F5/F6). However, it does not affect the backlight state of
my keyboard (running pommed 1.18).

Key observations:
KEY_FN_F* does not produce key codes in xev.
KEY_KBDILLUMUP, KEY_KBDILLUMDOWN seems to be the correct setting for fn+F5, fn+F6. Looking at the source, no constant seems to have been defined for the dashboard key... APPLE_FLAG_FKEY specifies the default key state.

This cannot be fixed dynamically. As it's unrelated to the fn key
problem I won't add it to the above patch. However, I've included a
compiled hid module for amd64, with the above changes (it also has my
patch applied so the fn key will work out of the box without the dynamic
quirk).

I consider the fn key problem fixed. Hopefully someone with more
experience than me will commit this patch to the source so that it makes
it into the next update cycle ;)

** Attachment added: "hid.tar.gz"
   http://launchpadlibrarian.net/14649798/hid.tar.gz

-- 
fn key doesn't work in hardy with macbook pro fourth generation (4,1)
https://bugs.launchpad.net/bugs/207127
You received this bug notification because you are a member of Kernel
Bugs, which is subscribed to linux-meta in ubuntu.




More information about the kernel-bugs mailing list