[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: French keyboard PowerBook G4 ( alu ) with KDE



Benjamin Herrenschmidt wrote:

On Wed, 2005-02-16 at 17:28 +0100, Charles-Edouard Ruault wrote:
Hi All,

i've been struggling for a few days tying to have my keyboard mapped correctly on my PowerBook Alu G4.
I'm running debian sid with kernel 2.6.10 and KDE 3.3.2.
After looking on the web i found some info ( mostly the files located at http://www.linux-france.org/ftp/macintosh/kbd-mac-fr.tar.gz ). I've applied these recepies but with no success. The keyboard is mostly ok but i'm missing some important keys:
{|}~[] the Euro sign and possibly more.
My XF86Config-4 section for the keyboard is as follows:

 .../...

I've spent hours in xkb trying to get that right (I also have a french
keyboard) and never got it 100%...

The problem is that you can't really have the "option/alt" key be both
used for the |,{,},... combos, _and_ be the real Alt key. I mean, you
sort-of can define it that way, but you end up with apps like emacs who
will decide it's Alt and thus can't be used to compose symbols...

The problem is historically on how xlib apps interpret modifiers it
seems.

The best I got for now was to map "command/apple" to Meta, alt to
ISO_Level3_Shift (you may need a recent enough X for that, like X.org,
I'm not sure 4.3 in debian knows about ISO_Level3_Shift) so I can get
the combos, and Fn-Alt to Alt (which makes the console switch a bit
awkward, but I need it a lot less often than I need to type |,{,},...)

Note that it's still broken with ... latest emacs (xemacs is fine), it
seems a recent patch to emacs broke it (that is emacs suddenly decided
that ISO_Level3_Shift/Mod4 would be another Meta key... grrr...)

Enclosed is my keymap (I use it with X.org CVS head)

Ben.

------------------------------------------------------------------------

//
// Copyright (C) 2004, Benjamin Herrenschmidt <benh@kernel.crashing.org>
//
//	This xkb file describes the differences between a Macintosh US Extended
//	keymap and an French keyboard layout in the style of Mac OS(X).

partial default alphanumeric_keys xkb_symbols "basic" {
   name[Group1]= "French";
   include "srvr_ctrl(xfree86)"
// Alphanumeric section
   key <LSGT> {	[ less,		greater   					] };
   key <TLDE> {        [ at,		numbersign,	periodcentered          	] };
   key <AE01> {	[ ampersand,	1,   		dead_acute,   	dead_acute	] };
   key <AE02> {	[ eacute,	2 						] };
   key <AE03> {	[ quotedbl,	3         					] };
   key <AE04> {	[ quoteright,	4,		quoteleft                   	] };
   key <AE05> {	[ parenleft,	5,   		braceleft,	bracketleft 	] };
   key <AE06> {	[ section,	6,		paragraph			] };
   key <AE07> {	[ egrave,	7,		guillemotleft,	guillemotright	] };
   key <AE08> {	[ exclam,	8,		exclamdown,	Ucircumflex	] };
   key <AE09> {	[ ccedilla,	9,		Ccedilla,	Aacute		] };
   key <AE10> {	[ agrave,	0,		oslash,		Ooblique	] };
   key <AE11> {	[ parenright,	degree,		braceright,	bracketright	] };
   key <AE12> {	[ minus,	underscore					] };
   key <AD01> {	[ a,		A,		ae,		AE              ] };
   key <AD02> {	[ z,		Z,		Acircumflex,	Aring           ] };
   key <AD03> {	[ e,		E,		ecircumflex,	Ecircumflex     ] };
   key <AD04> {	[ r,		R,		registered,	currency        ] };
   key <AD05> {	[ t,		T						] };
   key <AD06> {	[ y,		Y,		Uacute,		ydiaeresis      ] };
   key <AD07> {	[ u,		U						] };
   key <AD08> {	[ i,		I,		icircumflex,	idiaeresis      ] };
   key <AD09> {	[ o,		O						] };
   key <AD10> {	[ p,		P						] };
   key <AD11> {	[ dead_circumflex, dead_diaeresis, ocircumflex,	Ocircumflex     ] };
   key <AD12> {	[ dollar,	asterisk,	comma,		yen		] };
   key <BKSL> {	[ dead_grave,	sterling,	at,		numbersign      ] };
   key <AC01> {	[ q,		Q,		acircumflex,	Acircumflex     ] };
   key <AC02> {	[ s,		S,		Ograve,		S               ] };
   key <AC03> {	[ d,		D						] };
   key <AC04> {	[ f,		F,		f,		periodcentered  ] };
   key <AC05> {	[ g,		G						] };
   key <AC06> {	[ h,		H,		Igrave,		Icircumflex     ] };
   key <AC07> {	[ j,		J,		Idiaeresis,	Iacute          ] };
   key <AC08> {	[ k,		K,		Egrave,		Ediaeresis      ] };
   key <AC09> {	[ l,		L,		ssharp,		bar		] };
   key <AC10> {	[ m,		M,		mu,		Oacute		] };
   key <AC11> {	[ ugrave,	percent,	Ugrave,		ucircumflex	] };
   key <RTRN> {	[ Return,	Return,		hyphen,		hyphen		] };
   key <AB01> {	[ w,		W				 		] };
   key <AB02> {	[ x,		X						] };
   key <AB03> {	[ c,		C,		copyright,	copyright	] };
   key <AB04> {	[ v,		V						] };
   key <AB05> {	[ b,		B						] };
   key <AB06> {	[ n,		N,		dead_tilde			] };
   key <AB07> {	[ comma,	question,	at,		questiondown	] };
   key <AB08> {	[ semicolon,	period						] };
   key <AB09> {	[ colon,	slash,		division,	backslash	] };
   key <AB10> {	[ equal,	plus,		macron,		plusminus	] };

   // End alphanumeric section
   key <KPDL> {        [ KP_Separator,	KP_Delete					] };

   // Special keys and modifiers
     key <LFSH> {	[  Shift_L		]	};
     key <RTSH> {	[  Shift_R		]	};
     key <LCTL> {	[  Control_L		]	};
     key <RCTL> {	[  Control_R		]	};
     key <LALT> {	[  ISO_Level3_Shift 	]	};
     key <RALT> {	[  Alt_R		]	};
     key <LWIN> {	[  Meta_L		]	};
     key <RWIN> {	[  Meta_R		]	};

   // And now to map those modifiers ...
   modifier_map Shift  { Shift_L , Shift_R };
   modifier_map Lock   { Caps_Lock };
   modifier_map Control{ Control_L, Control_R };
   modifier_map Mod1   { Meta_L, Meta_R };
   modifier_map Mod3   { Alt_R };
   modifier_map Mod4   { ISO_Level3_Shift };
   modifier_map Mod2   { Num_Lock };
   modifier_map Mod5   { Scroll_Lock };
   //interpret Meta_L {
   //        action = SetMods(modifiers=Alt);
   //};
// include "level3(alt_switch)"
};

Hi Benjamin,
thanks for the reply, however i had no luck with your keymap either ....
Still the same behaviour :(


--
Charles-Edouard Ruault
Idtect SA
115 rue Reaumur - 75002, Paris, France
Tel: +33-1-55-34-76-65
Fax: +33-1-55-34-76-75
Web: http://www.idtect.com



Reply to: