Find the answer to your Linux question:
Page 1 of 4 1 2 3 4 LastLast
Results 1 to 10 of 34
I've been searching on the net for a while and haven't found anything that would help with creating a keyboard layout from scratch. Would anyone know where I can find ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #1
    Just Joined!
    Join Date
    Sep 2008
    Location
    Southwest Kansas
    Posts
    57

    [SOLVED] xmodmap: Creating a Cherokee Keyboard:


    I've been searching on the net for a while and haven't found anything that would help with creating a keyboard layout from scratch.
    Would anyone know where I can find an xmodmap howto, etc that would give an extremely detailed explanation on how to do this?

  2. #2
    Just Joined!
    Join Date
    Sep 2008
    Location
    Southwest Kansas
    Posts
    57

    Creating Keyboard Layouts?

    Here is one url that I've been looking at The Linux Danish/International HOWTO: Keyboard setup...

    I've also been looking over the xkb files and, well, I'm stumped yet again...

    I copied the spanish symbol file es to the file che (Cherokee) and am preparing to start working on it, but I still don't quite get what I'm supposed to do...

    Do I need to recreate other files in any of the other directories in xkb, also? Is there anything that I'm missing or just not seeing?

    The Cherokee alphabet has 85 letters, so I will be using dead keys quite a bit, if it's possible. Such as t+a will give the letter ta, q+w+a will yield the letter kwa, t+l+v will yield the letter tlv, etc, etc...

  3. #3
    Just Joined!
    Join Date
    Sep 2008
    Location
    Southwest Kansas
    Posts
    57
    <ᎥᏉᏪᎶᏅᎢ ᎯᎠ: Edit>

    This is the best I can do as of this moment. So far all one has to do is add this in place of the xkb_symbols "basic" block in the us symbol file (Mine is located at /etc/X11/xkb/symbols) and edit the xorg.conf so that the keyboard layout is loaded.

    This is how I have my xorg.conf setup...

    Code:
    Option     "XkbLayout"     "us, usche"
    usche is the us symbol file edited with the Cherokee layout.

    Then you can use the Keyboard layout switcher to switch between layouts. Note: I don't know if this will work on other window managers as of yet, but I know it works well with xfce...

    To view the keyboard layout visit this site...
    http://arapaho.nsuok.edu/~lindee/cherokee/

    ᏱᏛᏁᎮᏍᏗ ᎯᎠ, ᏍᏉᏏ ᎭᏓᏅᏖ ᏥᎩ...ᏩᏙ...

    Code:
    xkb_symbols "basic" {
    
        name[Group1]= "Cherokee";
    
        // Alphanumeric section
        key <TLDE> {	[     	U13E9,  U13CB             ]       };
        key <AE01> {	[	U13E3,	U13B1 		]	};
        key <AE02> {	[	U13A3,	U13C7		]	};
        key <AE03> {	[	U13E9,	U13E7	]	};
        key <AE04> {	[	U13D9,	U13B0		]	};
        key <AE05> {	[	U13E6,	U13B9		]	};
        key <AE06> {	[	U13DC,	U13DD	]	};
        key <AE07> {	[	U13CB,	U13BA	]	};
        key <AE08> {	[	U13D6,	U13BB	]	};
        key <AE09> {	[	U13D2,	parenleft	]	};
        key <AE10> {	[	U13C4,	parenright	]	};
        key <AE11> {	[     	U13BF,	U13BC	]	};
        key <AE12> {	[     	U13F3,	U13BD		]	};
    
        key <AD01> {	[	U13AA,	U13C6		]	};
        key <AD02> {	[	U13B3,	U13EB		]	};
        key <AD03> {	[	U13A1,	U13E3		]	};
        key <AD04> {	[	U13DB,	U13CF		]	};
        key <AD05> {	[	U13D4,	U13D8		]	};
        key <AD06> {	[	U13EF,	U13F2		]	};
        key <AD07> {	[	U13A4,	U13AD		]	};
        key <AD08> {	[	U13A2,	U13F1		]	};
        key <AD09> {	[	U13A3,	U13EC		]	};
        key <AD10> {	[	U13C1,	U13EA		]	};
        key <AD11> {	[ 	U13D5,	U13D1	]	};
        key <AD12> {	[ 	U13B6,	U13E4	]	};
    
        key <AC01> {	[	U13A0,	U13CC		]	};
        key <AC02> {	[	U13CD,	U13CE		]	};
        key <AC03> {	[	U13D7,	U13D0		]	};
        key <AC04> {	[	U13A9,	U13C8		]	};
        key <AC05> {	[	U13A6,	U13E5		]	};
        key <AC06> {	[	U13AF,	U13B2		]	};
        key <AC07> {	[	U13DA,	U13AB		]	};
        key <AC08> {	[	U13B8,	U13A7		]	};
        key <AC09> {	[	U13B5,	U13AE		]	};
        key <AC10> {	[ 	U13E8,	U13E0		]	};
        key <AC11> {	[ apostrophe,	quotedbl	]	};
    
        key <AB01> {	[	U13AC,	U13C3		]	};
        key <AB02> {	[	U13F4,	U13ED		]	};
        key <AB03> {	[	U13D3,	U13DF		]	};
        key <AB04> {	[	U13A5,	U13DE		]	};
        key <AB05> {	[	U13A8,	U13F0		]	};
        key <AB06> {	[	U13BE,	U13BB		]	};
        key <AB07> {	[	U13C5,	U13B7		]	};
        key <AB08> {	[     comma,	U13E2		]	};
        key <AB09> {	[    period,	U13B4		]	};
        key <AB10> {	[     	U13C2,	U13C9	]	};
    
        key <BKSL> {	[ 	U13E9,  U13EE	]	};
        key <CAPS> {	[ Caps_Lock	]	};
    
    };

  4. $spacer_open
    $spacer_close
  5. #4
    Just Joined!
    Join Date
    Sep 2008
    Location
    Southwest Kansas
    Posts
    57
    Darn it, wish I could just edit this rather than having to post to it...Anyway, I fixed some problems I found with the layout I created before.

    Code:
    default
    partial alphanumeric_keys modifier_keys 
    xkb_symbols "basic" {
    
        name[Group1]= "Cherokee";
    
        // Alphanumeric section
        key <TLDE> {	[     	U13CA,  U13CB             ]       };
        key <AE01> {	[	U13E3,	U13B1 		]	};
        key <AE02> {	[	U13A3,	U13C7		]	};
        key <AE03> {	[	U13E9,	U13E7	]	};
        key <AE04> {	[	U13D9,	U13B0		]	};
        key <AE05> {	[	U13E6,	U13B9		]	};
        key <AE06> {	[	U13DC,	U13DD	]	};
        key <AE07> {	[	U13E1,	U13BA	]	};
        key <AE08> {	[	U13D6,	U13BB	]	};
        key <AE09> {	[	U13D2,	parenleft	]	};
        key <AE10> {	[	U13C4,	parenright	]	};
        key <AE11> {	[     	U13BF,	U13BC	]	};
        key <AE12> {	[     	U13F3,	U13BD		]	};
    
        key <AD01> {	[	U13AA,	U13C6		]	};
        key <AD02> {	[	U13B3,	U13EB		]	};
        key <AD03> {	[	U13A1,	U13E3		]	};
        key <AD04> {	[	U13DB,	U13CF		]	};
        key <AD05> {	[	U13D4,	U13D8		]	};
        key <AD06> {	[	U13EF,	U13F2		]	};
        key <AD07> {	[	U13A4,	U13AD		]	};
        key <AD08> {	[	U13A2,	U13F1		]	};
        key <AD09> {	[	U13A3,	U13EC		]	};
        key <AD10> {	[	U13C1,	U13EA		]	};
        key <AD11> {	[ 	U13D5,	U13D1	]	};
        key <AD12> {	[ 	U13B6,	U13E4	]	};
    
        key <AC01> {	[	U13A0,	U13CC, U13A2, U13A7		]	};
        key <AC02> {	[	U13CD,	U13CE		]	};
        key <AC03> {	[	U13D7,	U13D0		]	};
        key <AC04> {	[	U13A9,	U13C8		]	};
        key <AC05> {	[	U13A6,	U13E5		]	};
        key <AC06> {	[	U13AF,	U13B2		]	};
        key <AC07> {	[	U13DA,	U13AB		]	};
        key <AC08> {	[	U13B8,	U13A7		]	};
        key <AC09> {	[	U13B5,	U13AE		]	};
        key <AC10> {	[ 	U13E8,	U13E0		]	};
        key <AC11> {	[ apostrophe,	quotedbl	]	};
    
        key <AB01> {	[	U13AC,	U13C3		]	};
        key <AB02> {	[	U13F4,	U13ED		]	};
        key <AB03> {	[	U13D3,	U13DF		]	};
        key <AB04> {	[	U13A5,	U13DE		]	};
        key <AB05> {	[	U13A8,	U13F0		]	};
        key <AB06> {	[	U13BE,	U13BB		]	};
        key <AB07> {	[	U13C5,	U13B7		]	};
        key <AB08> {	[     comma,	U13E2		]	};
        key <AB09> {	[    period,	U13B4		]	};
        key <AB10> {	[     	U13C2,	U13C9	]	};
    
        key <BKSL> {	[ 	U13E9,  U13EE	]	};
        key <CAPS> {	[ Caps_Lock	]	};
        // End alphanumeric section
    };

  6. #5
    Just Joined! waya's Avatar
    Join Date
    Dec 2008
    Location
    Here
    Posts
    18

    dead keys may do the trick

    Have you tried starting off with the US International keyboard set?

    It has "dead" keys, that allow combining multiple keystrokes to produce a single glyph.

    FYI: Ꮐ (nah) isn't encoded on your keyboard map.

    ᏩᏙ!

  7. #6
    Just Joined!
    Join Date
    Sep 2008
    Location
    Southwest Kansas
    Posts
    57
    I haven't yet figured it all out. Nor have I yet figured out where and how the dead keys are defined.
    An example is in the keysymdefs.h file there is
    Code:
    #define XK_dead_acute       0xfe51
    And in the us symbol file
    Code:
    key <AC11> { [dead_acute, dead_diaresis, apostrophe,  quotedbl  ]  };
    In all the programs I've ever used for creating keyboard layouts, I would guess there would have to be a file that would state that dead_acute+a = and dead_acute+e = , so on and so forth, but haven't found them yet.

    Most other posts and information I've found has been geared towards using other preinstalled keyboard layouts and almost nothing about creating a whole new layout, such as modifying the dead keys. I'm going to try and read through the XKBproto.pdf file again and see if I can understand it better this time around.

    It's still a work in progress, and I'm still too much of a noob to figure out a lot of it.

    FYI: Ꮐ (nah) isn't encoded on your keyboard map.
    Woops...I tried to make sure that letter was in the layout, guess I over looked it. I'll make the changes and add it to the 1 key.

    ᏩᏙ ᏩᏯ.

  8. #7
    Just Joined! waya's Avatar
    Join Date
    Dec 2008
    Location
    Here
    Posts
    18
    There is another keyboard layout that has Ꮐ (nah) encoded in place of the mysterious "accent" that is on the CNA layout. (The backtick/Unshifted).

    FYI: On Ubuntu there seems to already be a Cherokee keyboard layout, is this the one you created?

  9. #8
    Just Joined!
    Join Date
    Sep 2008
    Location
    Southwest Kansas
    Posts
    57
    Huh...I didn't know there was one on Ubuntu. I'm using Zenwalk and might move to Slackware once I get good at using linux.

    I'm going to check that one out...

    <edit> Couldn't find it, but I did find where someone was trying to use dead keys, and I am going through the compose directories, make a few adjustments and see what happens...*fingers crossed*...

  10. #9
    Just Joined! waya's Avatar
    Join Date
    Dec 2008
    Location
    Here
    Posts
    18

    Talking Here is my "us" keyboard file.

    This one also does not encode Ꮐ (nah), I use the "unicode" input keystroke of: ctrl-shift-u, 13c0 [enter], to put it in.

    The Cherokee "group" is listed last in the file.

    mjoyner@mjoyner-gateway:/usr/share/X11/xkb/symbols$ pwd
    /usr/share/X11/xkb/symbols
    mjoyner@mjoyner-gateway:/usr/share/X11/xkb/symbols$
    =============================================
    file "us":
    Code:
    // $XKeyboardConfig$
    
    //
    // $XdotOrg: xc/programs/xkbcomp/symbols/us,v 1.1.4.3 2004/03/05 13:41:33 eich Exp $
    // $XFree86: xc/programs/xkbcomp/symbols/us,v 1.6 2003/10/31 14:32:05 pascal Exp $
    
    default
    partial alphanumeric_keys modifier_keys 
    xkb_symbols "basic" {
    
        name[Group1]= "USA";
    
        // Alphanumeric section
        key <TLDE> {	[     grave,	asciitilde	]	};
        key <AE01> {	[	  1,	exclam 		]	};
        key <AE02> {	[	  2,	at		]	};
        key <AE03> {	[	  3,	numbersign	]	};
        key <AE04> {	[	  4,	dollar		]	};
        key <AE05> {	[	  5,	percent		]	};
        key <AE06> {	[	  6,	asciicircum	]	};
        key <AE07> {	[	  7,	ampersand	]	};
        key <AE08> {	[	  8,	asterisk	]	};
        key <AE09> {	[	  9,	parenleft	]	};
        key <AE10> {	[	  0,	parenright	]	};
        key <AE11> {	[     minus,	underscore	]	};
        key <AE12> {	[     equal,	plus		]	};
    
        key <AD01> {	[	  q,	Q 		]	};
        key <AD02> {	[	  w,	W		]	};
        key <AD03> {	[	  e,	E		]	};
        key <AD04> {	[	  r,	R		]	};
        key <AD05> {	[	  t,	T		]	};
        key <AD06> {	[	  y,	Y		]	};
        key <AD07> {	[	  u,	U		]	};
        key <AD08> {	[	  i,	I		]	};
        key <AD09> {	[	  o,	O		]	};
        key <AD10> {	[	  p,	P		]	};
        key <AD11> {	[ bracketleft,	braceleft	]	};
        key <AD12> {	[ bracketright,	braceright	]	};
    
        key <AC01> {	[	  a,	A 		]	};
        key <AC02> {	[	  s,	S		]	};
        key <AC03> {	[	  d,	D		]	};
        key <AC04> {	[	  f,	F		]	};
        key <AC05> {	[	  g,	G		]	};
        key <AC06> {	[	  h,	H		]	};
        key <AC07> {	[	  j,	J		]	};
        key <AC08> {	[	  k,	K		]	};
        key <AC09> {	[	  l,	L		]	};
        key <AC10> {	[ semicolon,	colon		]	};
        key <AC11> {	[ apostrophe,	quotedbl	]	};
    
        key <AB01> {	[	  z,	Z 		]	};
        key <AB02> {	[	  x,	X		]	};
        key <AB03> {	[	  c,	C		]	};
        key <AB04> {	[	  v,	V		]	};
        key <AB05> {	[	  b,	B		]	};
        key <AB06> {	[	  n,	N		]	};
        key <AB07> {	[	  m,	M		]	};
        key <AB08> {	[     comma,	less		]	};
        key <AB09> {	[    period,	greater		]	};
        key <AB10> {	[     slash,	question	]	};
    
        key <BKSL> {	[ backslash,         bar	]	};
        key <CAPS> {	[ Caps_Lock	]	};
        // End alphanumeric section
    };
    
    partial alphanumeric_keys
    xkb_symbols "euro" {
    
        name[Group1]= "USA - With EuroSign on 5";
    
        include "us(basic)"
    
        include "eurosign(5)"
    
        include "level3(ralt_switch)"
    };
    
    
    partial alphanumeric_keys
    xkb_symbols "intl" {
    
        name[Group1]= "USA - International (with dead keys)";
    
        include "us(basic)"
    
        // Alphanumeric section
        key <TLDE> { [dead_grave, dead_tilde,         grave,       asciitilde ] };
        key <AE01> { [	   1,     exclam,    exclamdown,      onesuperior ] };
        key <AE02> { [	   2,         at,   twosuperior, dead_doubleacute ] };
        key <AE03> { [	   3, numbersign, threesuperior,      dead_macron ] };
        key <AE04> { [	   4,     dollar,      currency,         sterling ] };
        key <AE05> { [	   5,    percent,      EuroSign                   ] };
        key <AE06> { [    6, dead_circumflex,    onequarter,      asciicircum ] };
        key <AE07> { [	   7,  ampersand,       onehalf,	dead_horn ] };
        key <AE08> { [	   8,   asterisk, threequarters,      dead_ogonek ] };
        key <AE09> { [	   9,  parenleft, leftsinglequotemark, dead_breve ] };
        key <AE10> { [	   0, parenright, rightsinglequotemark, dead_abovering ] };
        key <AE11> { [     minus, underscore,           yen,    dead_belowdot ] };
        key <AE12> { [     equal,       plus,      multiply,         division ] };
    
        key <AD01> { [	   q,          Q,    adiaeresis,       Adiaeresis ] };
        key <AD02> { [	   w,          W,         aring,            Aring ] };
        key <AD03> { [	   e,          E,        eacute,           Eacute ] };
        key <AD04> { [	   r,          R,    registered,       registered ] };
        key <AD05> { [	   t,          T,         thorn,            THORN ] };
        key <AD06> { [	   y,          Y,    udiaeresis,       Udiaeresis ] };
        key <AD07> { [	   u,          U,        uacute,           Uacute ] };
        key <AD08> { [	   i,          I,        iacute,           Iacute ] };
        key <AD09> { [	   o,          O,        oacute,           Oacute ] };
        key <AD10> { [	   p,          P,    odiaeresis,       Odiaeresis ] };
        key <AD11> { [ bracketleft,  braceleft,  guillemotleft, leftdoublequotemark ] };
        key <AD12> { [bracketright, braceright, guillemotright, rightdoublequotemark ] };
    
        key <AC01> { [	   a,          A,        aacute,           Aacute ] };
        key <AC02> { [	   s,          S,        ssharp,          section ] };
        key <AC03> { [	   d,          D,           eth,              ETH ] };
        key <AC08> { [	   k,          K,            oe,               OE ] };
    
        key <AC09> { [	   l,          L,        oslash,         Ooblique ] };
        key <AC10> { [ semicolon,      colon,     paragraph,           degree ] };
        key <AC11> { [dead_acute, dead_diaeresis, apostrophe,        quotedbl ] };
    
        key <AB01> { [	   z,          Z,            ae,               AE ] };
        key <AB03> { [	   c,          C,     copyright,             cent ] };
        key <AB06> { [	   n,          N,        ntilde,           Ntilde ] };
        key <AB07> { [	   m,          M,            mu,               mu ] };
        key <AB08> { [     comma,       less,      ccedilla,         Ccedilla ] };
        key <AB09> { [    period,    greater, dead_abovedot,       dead_caron ] };
        key <AB10> { [     slash,   question,  questiondown,        dead_hook ] };
        key <BKSL> { [ backslash,        bar,       notsign,        brokenbar ] };
    
        include "level3(ralt_switch)"
    };
    
    // Based on symbols/us_intl keyboard map:
    // Dead-keys definition for a very simple US/ASCII layout.
    // by Conectiva (http://www.conectiva.com.br)
    // modified by Ricardo Y. Igarashi (iga@that.com.br)
    
    // Added the following deadkeys, to make it truly international:
    //
    // dead_macron: on AltGr-minus
    // dead_breve: on AltGr-parenleft
    // dead_abovedot: on AltGr-period
    // dead_abovering: on AltGr-0
    // dead_doubleacute: on AltGr-equal (as quotedbl is already used)
    // dead_caron: on AltGr-less (AltGr-shift-comma)
    // dead_cedilla: on AltGr-comma
    // dead_ogonek: on AltGr-semicolon
    // dead_belowdot: on AltGr-underscore (AltGr-shift-minus)
    // dead_hook: on AltGr-question
    // dead_horn: on AltGr-plus (AltGr-shift-equal)
    // dead_diaeresis: on AltGr-colon (Alt-shift-semicolon)
    //
    // those were already there:
    // dead_grave
    // dead_acute
    // dead_circumflex
    // dead_tilde
    // dead_diaeresis
    
    partial alphanumeric_keys
    xkb_symbols "alt-intl" {
    
      name[Group1]= "USA - Alternative international (former us_intl)";
    
      include "us"
    
      key <TLDE> { [ dead_grave, dead_tilde,    grave,	      asciitilde    ] };
      key <AE05> { [          5, percent,	    EuroSign			    ] };
      key <AE06> { [	  6, dead_circumflex, asciicircum,    asciicircum   ] };
      key <AE09> { [	  9, parenleft, leftsinglequotemark,  dead_breve ] };
      key <AE10> { [	  0, parenright, rightsinglequotemark, dead_abovering ] };
      key <AE11> { [      minus, underscore,    dead_macron,      dead_belowdot ] };
      key <AE12> { [      equal, plus,	    dead_doubleacute, dead_horn	    ] };
    
      key <AD03> { [          e, E,		     EuroSign,         cent	    ] };
    
      key <AC10> { [  semicolon, colon,	     dead_ogonek,   dead_diaeresis  ] };
      key <AC11> { [ dead_acute, dead_diaeresis, apostrophe,    quotedbl	    ] };
    
      key <AB08> { [      comma, less,	     dead_cedilla,  dead_caron	    ] };
      key <AB09> { [     period, greater,	     dead_abovedot, dead_circumflex ] };
      key <AB10> { [      slash, question,	     dead_hook,	    dead_hook	    ] };
    
      include "level3(ralt_switch)"
    };
    
    // based on a keyboard map from an 'xkb/symbols/dk' file
    //
    // $XFree86: xc/programs/xkbcomp/symbols/dvorak,v 1.5 2004/01/03 16:35:07 herrb Exp $
    
    partial alphanumeric_keys
    xkb_symbols "dvorak" {
    
        name[Group1]= "USA - Dvorak";
    
        // Alphanumeric section
    
        key <TLDE> { [       grave,	asciitilde, dead_grave, dead_tilde	] };
    
        key <AE01> { [	    1,	exclam 		]	};
        key <AE02> { [	    2,	at		]	};
        key <AE03> { [	    3,	numbersign	]	};
        key <AE04> { [	    4,	dollar		]	};
        key <AE05> { [	    5,	percent		]	};
        key <AE06> { [	    6,	asciicircum, dead_circumflex, dead_circumflex ]	};
        key <AE07> { [	    7,	ampersand	]	};
        key <AE08> { [	    8,	asterisk	]	};
        key <AE09> { [	    9,	parenleft,  dead_grave]	};
        key <AE10> { [	    0,	parenright	]	};
        key <AE11> { [ bracketleft,	braceleft	]	};
        key <AE12> { [ bracketright, braceright,  dead_tilde] };
    
        key <AD01> { [  apostrophe,	quotedbl, dead_acute, dead_diaeresis	] };
        key <AD02> { [	comma,	less,   dead_cedilla, dead_caron	] };
        key <AD03> { [      period,	greater, dead_abovedot, periodcentered	] };
        key <AD04> { [	    p,	P		]	};
        key <AD05> { [	    y,	Y		]	};
        key <AD06> { [	    f,	F		]	};
        key <AD07> { [	    g,	G		]	};
        key <AD08> { [	    c,	C		]	};
        key <AD09> { [	    r,	R		]	};
        key <AD10> { [	    l,	L		]	};
        key <AD11> { [	slash,	question	]	};
        key <AD12> { [	equal,	plus		]	};
    
        key <AC01> { [	    a,	A 		]	};
        key <AC02> { [	    o,	O		]	};
        key <AC03> { [	    e,	E		]	};
        key <AC04> { [	    u,	U		]	};
        key <AC05> { [	    i,	I		]	};
        key <AC06> { [	    d,	D		]	};
        key <AC07> { [	    h,	H		]	};
        key <AC08> { [	    t,	T		]	};
        key <AC09> { [	    n,	N		]	};
        key <AC10> { [	    s,	S		]	};
        key <AC11> { [	minus,	underscore	]	};
    
        key <AB01> { [   semicolon,	colon, dead_ogonek, dead_doubleacute ] };
        key <AB02> { [	    q,	Q		]	};
        key <AB03> { [	    j,	J		]	};
        key <AB04> { [	    k,	K		]	};
        key <AB05> { [	    x,	X		]	};
        key <AB06> { [	    b,	B		]	};
        key <AB07> { [	    m,	M		]	};
        key <AB08> { [	    w,	W		]	};
        key <AB09> { [	    v,	V		]	};
        key <AB10> { [	    z,	Z		]	};
    
        key <BKSL> { [  backslash,  bar             ]       };
    };
    
    // Dvorak international
    // Stephane Magnenat (stephane at magnenat dot net, http://stephane.magnenat.net)
    // Based on information from http://www.poupinou.org/dvorak/index.html
    //
    //  `   1   2   3   4   5   6   7   8   9   0   [   ]   \
    //                  
    //
    //      '   ,   .   p   y   f   g   c   r   l   /   =
    //                              
    //
    //      a   o   e   u   i   d   h   t   n   s   -
    //                                     
    //
    //      ;   q   j   k   x   b   m   w   v   z
    //                  
    
    partial alphanumeric_keys
    xkb_symbols "dvorak-intl" {
    
        name[Group1]= "USA - Dvorak international";
    
        include "us(dvorak)"
    
        key <AE04> { [         4,  dollar,    EuroSign ] };
    
        key <AD02> { [     comma,    less,  adiaeresis,       dead_caron ] };
        key <AD03> { [    period, greater, ecircumflex,   periodcentered	] };
        key <AD04> { [         p,       P,  ediaeresis,     dead_cedilla ] };
        key <AD05> { [         y,       Y,  udiaeresis ] };
        key <AD08> { [         c,       C,    ccedilla,    dead_abovedot ] };
    
        key <AC01> { [         a,       A,      agrave ] };
        key <AC02> { [         o,       O, ocircumflex ] };
        key <AC03> { [         e,       E,      eacute ] };
        key <AC04> { [         u,       U, ucircumflex ] };
        key <AC05> { [         i,       I, icircumflex ] };
        key <AC10> { [         s,       S,      ssharp ] };
    
        key <AB01> { [ semicolon,   colon, acircumflex ] };
        key <AB02> { [         q,       Q,  odiaeresis,      dead_ogonek ] };
        key <AB03> { [         j,       J,      egrave, dead_doubleacute ] };
        key <AB04> { [         k,       K,      ugrave ] };
        key <AB05> { [         x,       X,  idiaeresis ] };
    
        include "level3(ralt_switch)"
    };
    
    // Left and right handed dvorak layouts
    // by sqweek <sqweek@gmail.com> 2006-01-30
    // Based on the corresponding layouts in the console-tools package.
    partial alphanumeric_keys
    xkb_symbols "dvorak-l" {
    
        include "us(dvorak)"
        name[Group1]= "USA - Left handed Dvorak";
    
        key <AE01> {	[ bracketleft,	braceleft	]	};
        key <AE02> {	[ bracketright,	braceright	]	};
        key <AE03> {	[	slash,	question	]	};
        key <AE04> {	[	    p,	P		]	};
        key <AE05> {	[	    f,	F		]	};
        key <AE06> {	[	    m,	M		]	};
        key <AE07> {	[	    l,	L		]	};
        key <AE08> {	[	    j,	J		]	};
        key <AE09> {	[	    4,	dollar		]	};
        key <AE10> {	[	    3,	numbersign	]	};
        key <AE11> {	[	    2,	at		]	};
        key <AE12> {	[	    1,	exclam 		]	};
    
        key <AD01> {	[   semicolon,	colon 		]	};
        key <AD02> {	[	    q,	Q		]	};
        key <AD03> {	[	    b,	B		]	};
        key <AD04> {	[	    y,	Y		]	};
        key <AD05> {	[	    u,	U		]	};
        key <AD06> {	[	    r,	R		]	};
        key <AD07> {	[	    s,	S		]	};
        key <AD08> {	[	    o,	O		]	};
        key <AD09> {	[      period,	greater		]	};
        key <AD10> {	[	    6,	asciicircum	]	};
        key <AD11> {	[	    5,	percent		]	};
        key <AD12> {	[	equal,	plus		]	};
    
        key <AC01> {	[	minus,	underscore	]	};
        key <AC02> {	[	    k,	K		]	};
        key <AC03> {	[	    c,	C		]	};
        key <AC04> {	[	    d,	D		]	};
        key <AC05> {	[	    t,	T		]	};
        key <AC06> {	[	    h,	H		]	};
        key <AC07> {	[	    e,	E		]	};
        key <AC08> {	[	    a,	A 		]	};
        key <AC09> {	[	    z,	Z		]	};
        key <AC10> {	[	    8,	asterisk	]	};
        key <AC11> {	[	    7,	ampersand	]	};
    
        key <AB01> {	[  apostrophe,	quotedbl	] 	};
        key <AB02> {	[	    x,	X		]	};
        key <AB03> {	[	    g,	G		]	};
        key <AB04> {	[	    v,	V		]	};
        key <AB05> {	[	    w,	W		]	};
        key <AB06> {	[	    n,	N		]	};
        key <AB07> {	[	    i,	I		]	};
        key <AB08> {	[	comma,	less		]	};
        key <AB09> {	[	    0,	parenright	]	};
        key <AB10> {	[	    9,	parenleft	]	};
    };
    
    partial alphanumeric_keys
    xkb_symbols "dvorak-r" {
        
        include "us(dvorak)"
        name[Group1]= "USA - Right handed Dvorak";
    
        key <AE01> {	[	    1,	exclam 		]	};
        key <AE02> {	[	    2,	at		]	};
        key <AE03> {	[	    3,	numbersign	]	};
        key <AE04> {	[	    4,	dollar		]	};
        key <AE05> {	[	    j,	J		]	};
        key <AE06> {	[	    l,	L		]	};
        key <AE07> {	[	    m,	M		]	};
        key <AE08> {	[	    f,	F		]	};
        key <AE09> {	[	    p,	P		]	};
        key <AE10> {	[	slash,	question	]	};
        key <AE11> {	[ bracketleft,	braceleft	]	};
        key <AE12> {	[ bracketright,	braceright	]	};
    
        key <AD01> {	[	    5,	percent		]	};
        key <AD02> {	[	    6,	asciicircum ]	};
        key <AD03> {	[	    q,	Q		]	};
        key <AD04> {	[      period,	greater		]	};
        key <AD05> {	[	    o,	O		]	};
        key <AD06> {	[	    r,	R		]	};
        key <AD07> {	[	    s,	S		]	};
        key <AD08> {	[	    u,	U		]	};
        key <AD09> {	[	    y,	Y		]	};
        key <AD10> {	[	    b,	B		]	};
        key <AD11> {	[   semicolon,	colon 		]	};
        key <AD12> {	[	equal,	plus		]	};
    
        key <AC01> {	[	    7,	ampersand	]	};
        key <AC02> {	[	    8,	asterisk	]	};
        key <AC03> {	[	    z,	Z		]	};
        key <AC04> {	[	    a,	A 		]	};
        key <AC05> {	[	    e,	E		]	};
        key <AC06> {	[	    h,	H		]	};
        key <AC07> {	[	    t,	T		]	};
        key <AC08> {	[	    d,	D		]	};
        key <AC09> {	[	    c,	C		]	};
        key <AC10> {	[	    k,	K		]	};
        key <AC11> {	[	minus,	underscore	]	};
    
        key <AB01> {	[	    9,	parenleft	]	};
        key <AB02> {	[	    0,	parenright	]	};
        key <AB03> {	[	    x,	X		]	};
        key <AB04> {	[	comma,	less		]	};
        key <AB05> {	[	    i,	I		]	};
        key <AB06> {	[	    n,	N		]	};
        key <AB07> {	[	    w,	W		]	};
        key <AB08> {	[	    v,	V		]	};
        key <AB09> {	[	    g,	G		]	};
        key <AB10> {	[  apostrophe,	quotedbl	] 	};
    };
    
    // Classic dvorak layout
    // by Piter Punk <piterpk@terra.com.br> - 2006-07-06 
    // Based on dvorak layout and e-mail from Russel L. Harris rlharris@oplink.net 
    // on xorg list.
    partial alphanumeric_keys
    xkb_symbols "dvorak-classic" {
    
        name[Group1]= "USA - Classic Dvorak";
    
        // Alphanumeric section
    
        key <TLDE> { [       grave,	asciitilde, dead_grave, dead_tilde	] };
    
        key <AE01> { [ bracketleft,	braceleft	]	};
        key <AE02> { [	    7,	ampersand	]	};
        key <AE03> { [	    5,	percent		]	};
        key <AE04> { [	    3,	numbersign	]	};
        key <AE05> { [	    1,	exclam 		]	};
        key <AE06> { [	    9,	parenleft,  dead_grave]	};
        key <AE07> { [	    0,	parenright	]	};
        key <AE08> { [	    2,	at		]	};
        key <AE09> { [	    4,	dollar		]	};
        key <AE10> { [	    6,	asciicircum, dead_circumflex, dead_circumflex ]	};
        key <AE11> { [	    8,	asterisk	]	};
        key <AE12> { [ bracketright, braceright,  dead_tilde] };
    
        key <AD01> { [	slash,	question	]	};
        key <AD02> { [	comma,	less,   dead_cedilla, dead_caron	] };
        key <AD03> { [      period,	greater, dead_abovedot, periodcentered	] };
        key <AD04> { [	    p,	P		]	};
        key <AD05> { [	    y,	Y		]	};
        key <AD06> { [	    f,	F		]	};
        key <AD07> { [	    g,	G		]	};
        key <AD08> { [	    c,	C		]	};
        key <AD09> { [	    r,	R		]	};
        key <AD10> { [	    l,	L		]	};
        key <AD11> { [  apostrophe,	quotedbl, dead_acute, dead_diaeresis	] };
        key <AD12> { [	equal,	plus		]	};
    
        key <AC01> { [	    a,	A 		]	};
        key <AC02> { [	    o,	O		]	};
        key <AC03> { [	    e,	E		]	};
        key <AC04> { [	    u,	U		]	};
        key <AC05> { [	    i,	I		]	};
        key <AC06> { [	    d,	D		]	};
        key <AC07> { [	    h,	H		]	};
        key <AC08> { [	    t,	T		]	};
        key <AC09> { [	    n,	N		]	};
        key <AC10> { [	    s,	S		]	};
        key <AC11> { [	minus,	underscore	]	};
    
        key <AB01> { [   semicolon,	colon, dead_ogonek, dead_doubleacute ] };
        key <AB02> { [	    q,	Q		]	};
        key <AB03> { [	    j,	J		]	};
        key <AB04> { [	    k,	K		]	};
        key <AB05> { [	    x,	X		]	};
        key <AB06> { [	    b,	B		]	};
        key <AB07> { [	    m,	M		]	};
        key <AB08> { [	    w,	W		]	};
        key <AB09> { [	    v,	V		]	};
        key <AB10> { [	    z,	Z		]	};
        key <BKSL> { [  backslash,  bar             ]       };
    };
    
    // Programmer Dvorak, by Roland Kaufmann <rlndkfmn at gmail dot com>
    // License: BSD, available at <http://www.kaufmann.no/roland/dvorak/license.html>
    // Main features: Numbers are in shift position (like French), symbols have been
    // placed in locations that give good hand-alternation and finger rolling with
    // symbols that usually follows, accented characters are possible for I18N.
    partial alphanumeric_keys
    xkb_symbols "dvp" {
        include "us(dvorak)"
    
        name[Group1] = "USA - Programmer Dvorak";
    
        //             Unmodified       Shift           AltGr            Shift+AltGr
        // symbols row, left side
        key <TLDE> { [ dollar,          asciitilde,     dead_tilde                  ] };
        key <AE01> { [ ampersand,       percent                                     ] };
        key <AE02> { [ bracketleft,     7,              currency                    ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
        key <AE03> { [ braceleft,       5,              cent                        ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
        key <AE04> { [ braceright,      3,              yen                         ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
        key <AE05> { [ parenleft,       1,              EuroSign                    ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
        key <AE06> { [ equal,           9,              sterling                    ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    
        // symbols row, right side
        key <AE07> { [ asterisk,        0                                           ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
        key <AE08> { [ parenright,      2,              onehalf                     ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
        key <AE09> { [ plus,            4                                           ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
        key <AE10> { [ bracketright,    6                                           ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
        key <AE11> { [ exclam,          8,              exclamdown                  ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
        key <AE12> { [ numbersign,      grave,          dead_grave                  ] };
        key <BKSP> { [ BackSpace                                                    ] };
    
        // upper row, left side
        key <AD01> { [ semicolon,       colon,          dead_diaeresis              ] };
        key <AD02> { [ comma,           less,           guillemotleft               ] };
        key <AD03> { [ period,          greater,        guillemotright              ] };
        key <AD04> { [ p,               P,              paragraph,       section    ] };
        key <AD05> { [ y,               Y,              udiaeresis,      Udiaeresis ] };
    
        // upper row, right side
        key <AD08> { [ c,               C,              ccedilla,        Ccedilla   ] };
        key <AD09> { [ r,               R,              registered,      trademark  ] };
        key <AD11> { [ slash,           question,       questiondown                ] };
        key <AD12> { [ at,              asciicircum,    dead_circumflex, dead_caron ] };
    
        // home row, left side
        key <AC01> { [ a,               A,              aring,           Aring      ] };
        key <AC02> { [ o,               O,              oslash,          Ooblique   ] };
        key <AC03> { [ e,               E,              ae,              AE         ] };
        key <AC04> { [ u,               U,              eacute,          Eacute     ] };
    
        // home row, right side
        key <AC06> { [ d,               D,              eth,             ETH        ] };
        key <AC07> { [ h,               H,              dead_acute                  ] };
        key <AC08> { [ t,               T,              thorn,           THORN      ] };
        key <AC09> { [ n,               N,              ntilde,          Ntilde     ] };
        key <AC10> { [ s,               S,              ssharp                      ] };
        key <AC11> { [ minus,           underscore,     hyphen                      ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
        key <BKSL> { [ backslash,       bar                                         ] };
    
        // lower row, left side
        key <AB01> { [ apostrophe,      quotedbl,       dead_acute                  ] };
    };
    
    // phonetic layout for Russian letters on an US keyboard
    // by Ivan Popov <pin@konvalo.org> 2005-07-17
    
    // level3 modifier is a shortcut to the "us" meaning of the keys where
    // we place cyrillic letters, handy for accessing the corresponding
    // punctuation marks.
    // It is important to have access to punctuation marks, and the rest of
    // alphabetical keys are added for being consequent so that the users
    // can expect the level3 modifier to give what the key label shows.
    
    partial alphanumeric_keys
    xkb_symbols "rus" {
    
        name[Group1]= "USA - Russian phonetic";
    
        include "us(basic)"
    
    key.type[group1]="FOUR_LEVEL_ALPHABETIC";
    
        key	<LatA> {	[ Cyrillic_a, Cyrillic_A ]	};
        key	<LatB> {	[ Cyrillic_be, Cyrillic_BE ]	};
        key	<LatW> {	[ Cyrillic_ve, Cyrillic_VE ]	};
        key	<LatG> {	[ Cyrillic_ghe, Cyrillic_GHE ]	};
        key	<LatD> {	[ Cyrillic_de, Cyrillic_DE ]	};
        key	<LatE> {	[ Cyrillic_ie, Cyrillic_IE ]	};
        key	<TLDE> {	[ Cyrillic_io, Cyrillic_IO, grave, asciitilde ] };
        key	<LatV> {	[ Cyrillic_zhe, Cyrillic_ZHE ]	};
        key	<LatZ> {	[ Cyrillic_ze, Cyrillic_ZE ]	};
        key	<LatI> {	[ Cyrillic_i, Cyrillic_I ]	};
        key	<LatJ> {	[ Cyrillic_shorti, Cyrillic_SHORTI ]	};
        key	<LatK> {	[ Cyrillic_ka, Cyrillic_KA ]	};
        key	<LatL> {	[ Cyrillic_el, Cyrillic_EL ]	};
        key	<LatM> {	[ Cyrillic_em, Cyrillic_EM ]	};
        key	<LatN> {	[ Cyrillic_en, Cyrillic_EN ]	};
        key	<LatO> {	[ Cyrillic_o, Cyrillic_O ]	};
        key	<LatP> {	[ Cyrillic_pe, Cyrillic_PE ]	};
        key	<LatR> {	[ Cyrillic_er, Cyrillic_ER ]	};
        key	<LatS> {	[ Cyrillic_es, Cyrillic_ES ]	};
        key	<LatT> {	[ Cyrillic_te, Cyrillic_TE ]	};
        key	<LatU> {	[ Cyrillic_u, Cyrillic_U ]	};
        key	<LatF> {	[ Cyrillic_ef, Cyrillic_EF ]	};
        key	<LatH> {	[ Cyrillic_ha, Cyrillic_HA ]	};
        key	<LatC> {	[ Cyrillic_tse, Cyrillic_TSE ]	};
        key <AC10> {        [ Cyrillic_che, Cyrillic_CHE, semicolon, colon ] };
        key	<AD11> {	[ Cyrillic_sha, Cyrillic_SHA, bracketleft, braceleft] };
        key	<AD12> {	[ Cyrillic_shcha, Cyrillic_SHCHA, bracketright, braceright ]	};
        key <AE12> {        [ Cyrillic_hardsign, Cyrillic_HARDSIGN, equal, plus ] };
        key	<LatY> {	[ Cyrillic_yeru, Cyrillic_YERU ]	};
        key	<LatX> {	[ Cyrillic_softsign, Cyrillic_SOFTSIGN ]	};
        key	<BKSL> {	[ Cyrillic_e, Cyrillic_E, backslash, bar ]	};
        key <AC11> {        [ Cyrillic_yu, Cyrillic_YU, apostrophe, quotedbl ] };
        key	<LatQ> {	[ Cyrillic_ya, Cyrillic_YA ]	};
    
        include "level3(ralt_switch)"
    };
    
    partial alphanumeric_keys
    xkb_symbols "mac" {
    
        include "us(basic)"
        name[Group1]= "USA - Macintosh";
        key.type[group1]="FOUR_LEVEL";
    
        // Slightly improvised from http://homepage.mac.com/thgewecke/kblayout.jpg
        key <LSGT> { [   section,  plusminus,       section,        plusminus ] };
        key <TLDE> { [     grave, asciitilde,    dead_grave,        dead_horn ] };
        key <AE01> { [	   1,     exclam,    exclamdown,            U2044 ] };
        key <AE02> { [	   2,         at,     trademark,         EuroSign ] };
        key <AE03> { [	   3, numbersign,      sterling,            U2039 ] };
        key <AE04> { [	   4,     dollar,          cent,            U203A ] };
        key <AE05> { [	   5,    percent,      infinity,            UFB01 ] };
        key <AE06> { [         6,asciicircum,       section,            UFB02 ] };
        key <AE07> { [	   7,  ampersand,     paragraph,     doubledagger ] };
        key <AE08> { [	   8,   asterisk, enfilledcircbullet,      degree ] };
        key <AE09> { [	   9,  parenleft,   ordfeminine,   periodcentered ] };
        key <AE10> { [	   0, parenright,     masculine,singlelowquotemark] };
        key <AE11> { [     minus, underscore,        endash,           emdash ] };
        key <AE12> { [     equal,       plus,      notequal,        plusminus ] };
    
        key <AD01> { [	   q,          Q,            oe,               OE ] };
        key <AD02> { [	   w,          W,         U2211,doublelowquotemark] };
        key <AD03> { [	   e,          E,    dead_acute,            acute ] };
        key <AD04> { [	   r,          R,    registered,            U2030 ] };
        key <AD05> { [	   t,          T,        dagger,       dead_caron ] };
        key <AD06> { [	   y,          Y,           yen,       onequarter ] };
        key <AD07> { [	   u,        U,  dead_diaeresis,        diaeresis ] };
        key <AD08> { [	   i,        I, dead_circumflex,            U02C6 ] };
        key <AD09> { [	   o,          O,        oslash,         Ooblique ] };
        key <AD10> { [	   p,          P,      Greek_pi,            U220F ] };
        key <AD11> { [ bracketleft,  braceleft, leftdoublequotemark, rightdoublequotemark ] };
        key <AD12> { [bracketright, braceright, leftsinglequotemark, rightsinglequotemark ] };
        key <BKSL> { [ backslash,        bar, guillemotleft,   guillemotright ] };
    
        key <AC01> { [	   a,          A,         aring,            Aring ] };
        key <AC02> { [	   s,          S,        ssharp,      dead_stroke ] };
        key <AC03> { [	   d,          D, partialderivative,          eth ] };
        key <AC04> { [	   f,          F,      function,        dead_hook ] };
        key <AC05> { [	   g,          G,     copyright, dead_doubleacute ] };
        key <AC06> { [	   h,          H, dead_abovedot,    dead_belowdot ] };
        key <AC07> { [	   j,          J,         U2206,          onehalf ] };
        key <AC08> { [	   k,          K,dead_abovering,            UF8FF ] };
    
        key <AC09> { [	   l,          L,       notsign,            THORN ] };
        key <AC10> { [ semicolon,      colon,         U2026,            thorn ] };
        key <AC11> { [apostrophe,   quotedbl,            ae,               AE ] };
    
        key <AB01> { [	   z,          Z,   Greek_OMEGA,     dead_cedilla ] };
        key <AB02> { [	   x,          X,         U2248,      dead_ogonek ] };
    				// unclear whether "approxeq" is 2248 or 2245
        key <AB03> { [	   c,          C,      ccedilla,         Ccedilla ] };
        key <AB04> { [	   v,          V,    squareroot,            U25CA ] };
        key <AB05> { [	   b,          B,      integral,         idotless ] };
        key <AB06> { [	   n,          N,    dead_tilde,            U02DC ] };
        key <AB07> { [	   m,          M,            mu,    threequarters ] };
        key <AB08> { [     comma,       less, lessthanequal,      dead_macron ] };
        key <AB09> { [    period,    greater, greaterthanequal,    dead_breve ] };
        key <AB10> { [     slash,   question,      division,     questiondown ] };
    
        include "level3(ralt_switch)"
    };
     
    // Colemak symbols for xkb on X.Org Server 7.x
    // 2006-01-01 Shai Coleman, http://colemak.com/ . Public domain.
    
    partial alphanumeric_keys
    xkb_symbols "colemak" {
        include "us"
        name[Group1]= "USA - Colemak";
    
        // Alphanumeric section
        key <TLDE> { [        grave,   asciitilde,      dead_tilde,       asciitilde ] };
        key <AE01> { [            1,       exclam,      exclamdown,      onesuperior ] };
        key <AE02> { [            2,           at,       masculine,      twosuperior ] };
        key <AE03> { [            3,   numbersign,     ordfeminine,    threesuperior ] };
        key <AE04> { [            4,       dollar,            cent,         sterling ] };
        key <AE05> { [            5,      percent,        EuroSign,              yen ] };
        key <AE06> { [            6,  asciicircum,         hstroke,          Hstroke ] };
        key <AE07> { [            7,    ampersand,             eth,              ETH ] };
        key <AE08> { [            8,     asterisk,           thorn,            THORN ] };
        key <AE09> { [            9,    parenleft,  leftsinglequotemark,  leftdoublequotemark ] };
        key <AE10> { [            0,   parenright, rightsinglequotemark,  rightdoublequotemark ] };
        key <AE11> { [        minus,   underscore,          endash,           emdash ] };
        key <AE12> { [        equal,         plus,        multiply,         division ] };
    
        key <AD01> { [            q,            Q,      adiaeresis,       Adiaeresis ] };
        key <AD02> { [            w,            W,           aring,            Aring ] };
        key <AD03> { [            f,            F,          atilde,           Atilde ] };
        key <AD04> { [            p,            P,          oslash,         Ooblique ] };
        key <AD05> { [            g,            G,     dead_ogonek,       asciitilde ] };
        key <AD06> { [            j,            J,         dstroke,          Dstroke ] };
        key <AD07> { [            l,            L,         lstroke,          Lstroke ] };
        key <AD08> { [            u,            U,          uacute,           Uacute ] };
        key <AD09> { [            y,            Y,      udiaeresis,       Udiaeresis ] };
        key <AD10> { [    semicolon,        colon,      odiaeresis,       Odiaeresis ] };
        key <AD11> { [  bracketleft,    braceleft,   guillemotleft,        0x1002039 ] };
        key <AD12> { [ bracketright,   braceright,  guillemotright,        0x100203a ] };
        key <BKSL> { [    backslash,          bar,      asciitilde,       asciitilde ] };
    
        key <AC01> { [            a,            A,          aacute,           Aacute ] };
        key <AC02> { [            r,            R,      dead_grave,       asciitilde ] };
        key <AC03> { [            s,            S,          ssharp,       asciitilde ] };
        key <AC04> { [            t,            T,      dead_acute, dead_doubleacute ] };
        key <AC05> { [            d,            D,  dead_diaeresis,       asciitilde ] };
        key <AC06> { [            h,            H,      dead_caron,       asciitilde ] };
        key <AC07> { [            n,            N,          ntilde,           Ntilde ] };
        key <AC08> { [            e,            E,          eacute,           Eacute ] };
        key <AC09> { [            i,            I,          iacute,           Iacute ] };
        key <AC10> { [            o,            O,          oacute,           Oacute ] };
        key <AC11> { [   apostrophe,     quotedbl,          otilde,           Otilde ] };
    
        key <AB01> { [            z,            Z,              ae,               AE ] };
        key <AB02> { [            x,            X, dead_circumflex,       asciitilde ] };
        key <AB03> { [            c,            C,        ccedilla,         Ccedilla ] };
        key <AB04> { [            v,            V,              oe,               OE ] };
        key <AB05> { [            b,            B,      dead_breve,       asciitilde ] };
        key <AB06> { [            k,            K,  dead_abovering,       asciitilde ] };
        key <AB07> { [            m,            M,     dead_macron,       asciitilde ] };
        key <AB08> { [        comma,         less,    dead_cedilla,       asciitilde ] };
        key <AB09> { [       period,      greater,   dead_abovedot,       asciitilde ] };
        key <AB10> { [        slash,     question,    questiondown,       asciitilde ] };
    
        key <CAPS> { [    BackSpace,    BackSpace,       BackSpace,        BackSpace ] };
        key <LSGT> { [        minus,   underscore,          endash,           emdash ] };
        key <SPCE> { [        space,        space,           space,     nobreakspace ] };
    
        include "level3(ralt_switch)"
    };
    
    // I do NOT like dead-keys - the International keyboard as defined by Microsoft
    // doesn't fit my needs. Why use two keystrokes for all simple characters (eg '
    // and <space> generates a single ') just to have an  (eacute) in two strokes
    // as well? I type ' more often than  (eacute).
    //
    // This file works just like a regular keyboard, BUT has all dead-keys
    // accessible at level3 (through AltGr). An  (ediaeresis) is now: AltGr+"
    // followed by an e. In other words, this keyboard is not international as long
    // as you leave the right Alt key alone.
    //
    // The original MS International keyboard was intended for Latin1 (iso8859-1).
    // With the introduction of iso8859-15, the (important) ligature oe (and OE)
    // became available. I added them next to ae. Because I write ediaeresis more
    // often than registered, I moved registered to be next to copyright and added
    // ediaeresis and idiaeresis. - Adriaan
    
    partial alphanumeric_keys
    xkb_symbols "altgr-intl" {
    
       name[Group1]= "USA - International (AltGr dead keys)";
    
       include "us(intl)"
    
    // five dead keys moved into level3:
    
       key <TLDE> { [    grave, asciitilde,  dead_grave,   dead_tilde      ] };
       key <AC11> { [apostrophe,quotedbl,    dead_acute,   dead_diaeresis  ] };
    
    // diversions from the MS Intl keyboard:
    
       key <AE01> { [        1, exclam,      onesuperior,  exclamdown      ] };
       key <AD04> { [        r, R,           ediaeresis,   Ediaeresis      ] };
       key <AC07> { [        j, J,           idiaeresis,   Idiaeresis      ] };
       key <AB02> { [        x, X,           oe,           OE              ] };
       key <AB04> { [        v, V,           registered,   registered      ] };
    
    // onequarter etc (not in iso8859-15) deleted to get three unshifted deadkeys:
    
       key <AE06> { [        6, asciicircum,       dead_circumflex         ] };
       key <AE07> { [        7, ampersand,         dead_horn               ] };
       key <AE08> { [        8, asterisk,          dead_ogonek             ] };
    
       include "level3(ralt_switch)"
    };
    
    // Intel ClassmatePC Keyboard Layout
    // by Piter PUNK <piterpk@terra.com.br>
    //
    // The keyboard layouts below maps the us(basic), us(intl) and us(alt-intl)
    // to ClassmatePC keyboard. All layouts uses RCTL as level3(switch) since
    // the keyboard doesn't have AltGr key. The EuroSign is engraved at 5 key.
    
    // classmate - us(basic)
    partial alphanumeric_keys
    xkb_symbols "classmate" {
        include "us(basic)"
        name[Group1]= "USA - ClassmatePC";
    
        key <LSGT> { [ backslash,	bar,		backslash,	bar ] };
    
        include "eurosign(5)"
        include "level3(switch)"
    };
    
    // classmate-intl - us(intl)
    // RCTL is generated by Fn+Alt, because that, when trying to access
    // the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got
    // the keypad keycodes. The keypad is changed to make Fn+Alt+<KP_key>
    // generate the same symbol as the original key.
    partial alphanumeric_keys
    xkb_symbols "classmate-intl" {
        include "us(intl)"
        name[Group1]= "USA - ClassmatePC (International)";
        key.type[Group1]="FOUR_LEVEL";
    
        key <LSGT> { [ backslash,	bar,		backslash,	bar ] };
    
        key <KP7>  { [	KP_Home,		KP_7,	
    			onehalf,		dead_horn	] };
        key <KP8>  { [	KP_Up,			KP_8,
    			threequarters,		dead_ogonek	] };
        key <KP9>  { [	KP_Prior,		KP_9,
    			leftsinglequotemark,	dead_breve	] };
        key <KPMU> { [ 	KP_Multiply,		KP_Multiply,
    			rightsinglequotemark,	dead_abovering	] };
    
        key <KP4>  { [	KP_Left,		KP_4,
    			uacute,			Uacute		] };
        key <KP5>  { [	KP_Begin,		KP_5,
    			iacute,			Iacute		] };
        key <KP6>  { [	KP_Right,		KP_6,
    			oacute,			Oacute		] };
        key <KPSU> { [	KP_Subtract,		KP_Subtract,
    			odiaeresis,		Odiaeresis	] };
    
        key <KP2>  { [	KP_Down,		KP_2,
    			oe,			OE		] };
        key <KP3>  { [	KP_Next,		KP_3,
    			oslash,			Ooblique	] };
        key <KPAD> { [ 	KP_Add,     		KP_Add,
    			paragraph,		degree          ] };
       
        key <KP0>  { [	KP_Insert,		KP_0,
    			mu,			mu	] };
        key <KPDL> { [	KP_Delete,		KP_Decimal,
    			dead_abovedot,		dead_caron	] }; 
        key <KPDV> { [ 	KP_Divide,   		KP_Divide,
    			questiondown,		dead_hook       ] };
    
        include "level3(switch)"
    };
    
    // classmate-alt-intl - us(alt-intl)
    // RCTL is generated by Fn+Alt, because that, when trying to access
    // the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got
    // the keypad keycodes. The keypad is changed to make Fn+Alt+<KP_key>
    // generate the same symbol as the original key.
    partial alphanumeric_keys
    xkb_symbols "classmate-alt-intl" {
        include "us(alt-intl)"
        name[Group1]= "USA - ClassmatePC (Alternative international)";
        key.type[Group1]="FOUR_LEVEL";
    
        key <LSGT> { [ backslash,	bar,		backslash,	bar ] };
    
        key <KPSU> { [	KP_Subtract,		KP_Subtract	] };
    
        key <KP9>  { [	KP_Prior,		KP_9,
    			leftsinglequotemark,	dead_breve	] };
        key <KPMU> { [ 	KP_Multiply,		KP_Multiply,
    			rightsinglequotemark,	dead_abovering	] };
    
        key <KPAD> { [ 	KP_Add,     		KP_Add,
    			dead_ogonek,		dead_diaeresis   ] };
        
        key <KPDL> { [	KP_Delete,		KP_Decimal,
    			dead_abovedot,		dead_circumflex	] }; 
        key <KPDV> { [ 	KP_Divide,   		KP_Divide,
    			dead_hook,		dead_hook       ] };
    
        include "level3(switch)"
    };
    
    // classmate-altgr-intl - us(altgr-intl)
    // RCTL is generated by Fn+Alt, because that, when trying to access
    // the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got
    // the keypad keycodes. The keypad is changed to make Fn+Alt+<KP_key>
    // generate the same symbol as the original key.
    partial alphanumeric_keys
    xkb_symbols "classmate-altgr-intl" {
        include "us(altgr-intl)"
        name[Group1]= "USA - ClassmatePC (International Fn+Alt dead-keys)";
        key.type[Group1]="FOUR_LEVEL";
    
        key <LSGT> { [ backslash,	bar,		backslash,	bar ] };
    
        key <KP7>  { [	KP_Home,		KP_7,	
    			dead_horn,		dead_horn	] };
        key <KP8>  { [	KP_Up,			KP_8,
    			dead_ogonek,		dead_ogonek	] };
        key <KP9>  { [	KP_Prior,		KP_9,
    			leftsinglequotemark,	dead_breve	] };
        key <KPMU> { [ 	KP_Multiply,		KP_Multiply,
    			rightsinglequotemark,	dead_abovering	] };
    
        key <KP4>  { [	KP_Left,		KP_4,
    			uacute,			Uacute		] };
        key <KP5>  { [	KP_Begin,		KP_5,
    			iacute,			Iacute		] };
        key <KP6>  { [	KP_Right,		KP_6,
    			oacute,			Oacute		] };
        key <KPSU> { [	KP_Subtract,		KP_Subtract,
    			odiaeresis,		Odiaeresis	] };
    
        key <KP1>  { [	KP_End,			KP_1,
    			idiaeresis,		Idiaeresis	] };
        key <KP2>  { [	KP_Down,		KP_2,
    			oe,			OE		] };
        key <KP3>  { [	KP_Next,		KP_3,
    			oslash,			Ooblique	] };
        key <KPAD> { [ 	KP_Add,     		KP_Add,
    			paragraph,		degree          ] };
       
        key <KP0>  { [	KP_Insert,		KP_0,
    			mu,			mu	] };
        key <KPDL> { [	KP_Delete,		KP_Decimal,
    			dead_abovedot,		dead_caron	] }; 
        key <KPDV> { [ 	KP_Divide,   		KP_Divide,
    			questiondown,		dead_hook       ] };
    
        include "level3(switch)"
    };
    
    partial alphanumeric_keys
    xkb_symbols "olpc" {
    
       include "us(basic)"
       name[Group1]= "USA";
    
       // OLPC international US English keyboard layout.
       // It's a little different from the usual international layout.
       // See: http://wiki.laptop.org/go/Image:Keyboard_english.png
    
       key <TLDE> { [     grave, asciitilde,    dead_grave, dead_tilde ] };
       key <AE01> { [         1,     exclam,    exclamdown, exclamdown ] };
       key <AE02> { [         2,         at,       notsign,    notsign ] };
       key <AE03> { [         3, numbersign,     0x1000300,  0x1000300 ] }; // combining grave
       key <AE04> { [         4,     dollar,     0x1000301,  0x1000301 ] }; // combining acute
       key <AE05> { [         5,    percent,     0x1000306,  0x1000306 ] }; // combining breve above
       key <AE06> { [         6,asciicircum,     0x100030A,  0x100030A ] }; // combining ring above
       key <AE07> { [         7,  ampersand,     0x1000302,  0x1000302 ] }; // combining circumflex above
       key <AE08> { [         8,   asterisk,     0x100030C,  0x100030C ] }; // combining caron above
       key <AE09> { [         9,  parenleft,     0x1000307,  0x1000307 ] }; // combining dot above
       key <AE10> { [         0, parenright,     0x1000308,  0x1000308 ] }; // combining diaeresis above
       key <AE11> { [     minus, underscore,     0x1000304,  0x1000304 ] }; // combining macron above
       key <AE12> { [     equal,       plus,     0x1000303,  0x1000303 ] }; // combining tilde above
    
       key <AD01> { [         q,          Q,  Greek_omega, Greek_OMEGA ] };
       key <AD02> { [         w,          W,       oslash,      Oslash ] };
       key <AD03> { [         e,          E,           oe,          OE ] };
       key <AD04> { [         r,          R,    0x1000327,   0x1000327 ] }; // combining cedilla
       key <AD05> { [         t,          T,    0x100032E,   0x100032E ] }; // combining breve below
       key <AD06> { [         y,          Y,    0x1000325,   0x1000325 ] }; // combining ring below
       key <AD07> { [         u,          U,    0x100032D,   0x100032D ] }; // combining circumflex below
       key <AD08> { [         i,          I,    0x100032C,   0x100032C ] }; // combining caron below
       key <AD09> { [         o,          O,    0x1000323,   0x1000323 ] }; // combining dot below
       key <AD10> { [         p,          P,    0x1000324,   0x1000324 ] }; // combining diaeresis below
       key <AD11> { [ bracketleft,  braceleft,  0x1000331,   0x1000331 ] }; // combining macron below
       key <AD12> { [bracketright, braceright,  0x1000330,   0x1000330 ] }; // combining tilde below
    
       key <AC01>  { [         a,          A,          ae,               AE ] };
       key <AC02>  { [         s,          S,      ssharp,        0x1001E9C ] }; // uppercase S sharp
       key <AC03>  { [         d,          D,         eth,              ETH ] };
       key <AC04>  { [         f,          F,       thorn,            THORN ] };
       key <AC06>  { [         h,          H,    sterling,         sterling ] };
       key <AC07>  { [         j,          J,    EuroSign,         EuroSign ] };
       key <AC10>  { [ semicolon,      colon,   masculine,      ordfeminine ] };
       key <AC11>  { [ apostrophe,  quotedbl,    currency,         currency ] };
       key <BKSL>  { [ backslash,        bar,      section,         section ] };
    
       key <AB03>  { [         c,          C,    ccedilla,         Ccedilla ] };
       key <AB06>  { [         n,          N,      ntilde,           Ntilde ] };
       key <AB07>  { [         m,          M,          mu,               mu ] };
       key <AB08>  { [     comma,     less,  guillemotleft,   guillemotleft ] };
       key <AB09>  { [    period,  greater, guillemotright,  guillemotright ] };
       key <AB10>  { [     slash,   question, questiondown,    questiondown ] };
    
       key <I219>  { [  multiply,   division, ISO_Next_Group, ISO_Prev_Group ] };
    
       include "level3(ralt_switch)"
    };
    
    partial alphanumeric_keys
    xkb_symbols "olpc2" {
       include "us(olpc)"
       name[Group1]= "USA - Group toggle on multiply/divide key";
       include "group(olpc)"
    };
    
    // Based on Cherokee Nation Official Layout
    // http://www.cherokee.org/extras/downloads/font/Keyboard.htm
    
    partial alphanumeric_keys modifier_keys
    xkb_symbols "chr" {
    
        name[Group1]= "USA - Cherokee";
        key.type[group1]="ALPHABETIC";
    
        // Alphanumeric section
        key <TLDE> { [      grave,      U13CA ] };
        key <AE01> { [          1,      U13B1 ] };
        key <AE02> { [          2,      U13C7 ] };
        key <AE03> { [          3,      U13E7 ] };
        key <AE04> { [      U13D9,      U13B0 ] };
        key <AE05> { [      U13E6,      U13B9 ] };
        key <AE06> { [      U13DC,      U13DD ] };
        key <AE07> { [      U13CB,      U13E1 ] };
        key <AE08> { [      U13D6,      U13BA ] };
        key <AE09> { [      U13D2,  parenleft ] };
        key <AE10> { [      U13C4, parenright ] };
        key <AE11> { [      U13BF,      U13BC ] };
        key <AE12> { [      U13F3,      U13BD ] };
    
        key <AD01> { [      U13AA,      U13C6 ] };
        key <AD02> { [      U13B3,      U13EB ] };
        key <AD03> { [      U13A1,      U13E3 ] };
        key <AD04> { [      U13DB,      U13CF ] };
        key <AD05> { [      U13D4,      U13D8 ] };
        key <AD06> { [      U13EF,      U13F2 ] };
        key <AD07> { [      U13A4,      U13AD ] };
        key <AD08> { [      U13A2,      U13F1 ] };
        key <AD09> { [      U13A3,      U13EC ] };
        key <AD10> { [      U13C1,      U13EA ] };
        key <AD11> { [      U13D5,      U13D1 ] };
        key <AD12> { [      U13B6,      U13E4 ] };
        key <BKSL> { [      U13E9,      U13EE ] };
    
        key <AC01> { [      U13A0,      U13CC ] };
        key <AC02> { [      U13CD,      U13CE ] };
        key <AC03> { [      U13D7,      U13D0 ] };
        key <AC04> { [      U13A9,      U13C8 ] };
        key <AC05> { [      U13A6,      U13E5 ] };
        key <AC06> { [      U13AF,      U13B2 ] };
        key <AC07> { [      U13DA,      U13AB ] };
        key <AC08> { [      U13B8,      U13A7 ] };
        key <AC09> { [      U13B5,      U13AE ] };
        key <AC10> { [      U13E8,      U13E0 ] };
        key <AC11> { [ apostrophe,   quotedbl ] };
    
        key <AB01> { [      U13AC,      U13C3 ] };
        key <AB02> { [      U13F4,      U13ED ] };
        key <AB03> { [      U13D3,      U13DF ] };
        key <AB04> { [      U13A5,      U13DE ] };
        key <AB05> { [      U13A8,      U13F0 ] };
        key <AB06> { [      U13BE,      U13BB ] };
        key <AB07> { [      U13C5,      U13B7 ] };
        key <AB08> { [      comma,      U13E2 ] };
        key <AB09> { [     period,      U13B4 ] };
        key <AB10> { [      U13C2,      U13C9 ] };
    
        // End alphanumeric section
    };

  11. #10
    Just Joined! waya's Avatar
    Join Date
    Dec 2008
    Location
    Here
    Posts
    18
    I just found this thing:

    XKeyCaps

Page 1 of 4 1 2 3 4 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •