The Keyboard Layout Editor (KLE) is an application that allows you to create keyboard layouts for the X.Org server, commonly found in the Linux, OpenSolaris, BSD, etc Desktops.
The project page of the Keyboard Layout Editor is http://code.google.com/p/keyboardlayouteditor/