You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							59 lines
						
					
					
						
							2.2 KiB
						
					
					
				
			
		
		
	
	
							59 lines
						
					
					
						
							2.2 KiB
						
					
					
				| # --- SDE-COPYRIGHT-NOTE-BEGIN --- | |
| # This copyright note is auto-generated by ./scripts/Create-CopyPatch. | |
| #  | |
| # Filename: package/.../linux26/96-usb-hid-apple-kbd-mapping.patch | |
| # Copyright (C) 2007 The OpenSDE Project | |
| # Copyright (C) 2004 - 2007 The T2 SDE Project | |
| #  | |
| # More information can be found in the files COPYING and README. | |
| #  | |
| # This patch file is dual-licensed. It is available under the license the | |
| # patched project is licensed under, as long as it is an OpenSource license | |
| # as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms | |
| # of the GNU General Public License as published by the Free Software | |
| # Foundation; either version 2 of the License, or (at your option) any later | |
| # version. | |
| # --- SDE-COPYRIGHT-NOTE-END --- | |
|  | |
| The Apple USB keyboards carry symbols differing from the on-wire values sent. | |
| So we swap the events here simillar as in the 95-adb-mapping patch. | |
| Likewise, default to the normal F* keys for usability on the Linux desktop. | |
|  | |
|   - Rene Rebe <[email protected]> | |
|  | |
| --- linux-2.6.20/drivers/hid/hid-input.c.vanilla     2007-02-05 11:24:46.737682437 +0100 | |
| +++ linux-2.6.20/drivers/hid/hid-input.c     2007-02-05 11:24:52.770026201 +0100 | |
| @@ -256,8 +256,20 @@ | |
|  			set_bit(EV_REP, input->evbit); | |
|   | |
|  			if ((usage->hid & HID_USAGE) < 256) { | |
| -				if (!hid_keyboard[usage->hid & HID_USAGE]) goto ignore; | |
| -				map_key_clear(hid_keyboard[usage->hid & HID_USAGE]); | |
| +				unsigned char code = hid_keyboard[usage->hid & HID_USAGE]; | |
| +				if (!code) goto ignore; | |
| + | |
| +				/* Apple? */ | |
| +				if (input->id.vendor == 0x5ac) { | |
| +					/* alt->altgr, lmeta->alt, and no dups | |
| +					   due Linux meta bit parsing */ | |
| +					switch (code) { | |
| +					  case 56: code = 100; break; | |
| +					  case 125: code = 56; break; | |
| +					  case 100: code = 127; break; | |
| +					} | |
| +				} | |
| +				map_key_clear(code); | |
|  			} else | |
|  				map_key(KEY_UNKNOWN); | |
|   | |
| --- linux-2.6.20/drivers/hid/hid-input.c.vanilla	2007-02-05 11:24:46.737682437 +0100 | |
| +++ linux-2.6.20/drivers/hid/hid-input.c	2007-02-05 11:24:52.770026201 +0100 | |
| @@ -35,7 +35,7 @@ | |
|   | |
|  #include <linux/hid.h> | |
|   | |
| -static int hid_pb_fnmode = 1; | |
| +static int hid_pb_fnmode = 2; | |
|  module_param_named(pb_fnmode, hid_pb_fnmode, int, 0644); | |
|  MODULE_PARM_DESC(pb_fnmode, | |
|  		"Mode of fn key on PowerBooks (0 = disabled, 1 = fkeyslast, 2 = fkeysfirst)");
 | |
| 
 |