// German NEO Layout Version 1.1alpha 
// adopted 2004 by Hanno Behrens <Hanno.Behrens@gmx.de>
// inspired by Dvorak/de-ergo  http://www.goebel-consult.de/de-ergo/
// This file was created by Benjamin Kellermann <Benjamin dot Kellermann at gmx dot Germany>

partial default alphanumeric_keys 
xkb_symbols "neo" {

    name[Group1]= "NEO German";

    // The first row
    key <TLDE> { [ dead_circumflex, degree, notsign, paragraph ] };

    key <AE01> { [	    1,    exclam,       onesuperior,   exclamdown ] };
    key <AE02> { [	    2,    quotedbl,     twosuperior,   dead_diaeresis ] };
    key <AE03> { [	    3,    section,      threesuperior  ] };
    key <AE04> { [	    4,    dollar,       currency,      sterling ] };
    key <AE05> { [	    5,    percent,      guillemotleft  ] };
    key <AE06> { [	    6,    ampersand,    guillemotright ] };
    key <AE07> { [	    7,    slash,        braceleft      ] };
    key <AE08> { [	    8,    parenleft,    bracketleft    ] };
    key <AE09> { [	    9,    parenright,   bracketright,  registered ] };
    key <AE10> { [	    0,    equal,	      braceright,    trademark ] };
    key <AE11> { [	minus,    underscore    ] };
    key <AE12> { [ dead_acute, dead_grave,  dead_cedilla,  dead_ogonek ] };


    // The upper row 
    key <AD01> { [ 	    q,  Q,       at            ] };
    key <AD02> { [	    v,	V,       minus         ] };
    key <AD03> { [	    l,	L,       underscore,   Greek_lambda ] };
    key <AD04> { [	    c,	C,       percent,      copyright ] };
    key <AD05> { [	    w,	W,       ampersand,    Greek_omega ] };
    key <AD06> { [	    k,	K,       bar,          Greek_kappa ] };
    key <AD07> { [	    h,	H,       bracketleft   ] };
    key <AD08> { [	    g,	G,       bracketright, Greek_gamma ] };
    key <AD09> { [	    f,	F,       less,         Greek_phi ] };
    key <AD10> { [	    j,	J,       greater       ] };
    key <AD11> { [ ssharp, question, backslash,    questiondown ] };
    key <AD12> { [	 plus, asterisk, dead_tilde,   plusminus ] };

    // The middle row
    key <AC01> { [          u, U,          backslash ] };
    key <AC02> { [          i, I,          slash ] };
    key <AC03> { [          a, A,          at,         Greek_alpha ] };
    key <AC04> { [          e, E,          EuroSign,   Greek_epsilon ] };
    key <AC05> { [          o, O,          asciitilde  ] };
    key <AC06> { [          s, S,          dollar,     Greek_sigma ] };
    key <AC07> { [          n, N,          parenleft,  Greek_eta ] };
    key <AC08> { [          r, R,          parenright, Greek_rho ] };
    key <AC09> { [          t, T,          braceleft,  Greek_tau ] };
    key <AC10> { [          d, D,          braceright, Greek_delta ] };
    key <AC11> { [          y, Y,          Greek_PSI,  Greek_psi ] };
    key <BKSL> { [ numbersign, apostrophe, grave,      yen ] };

    // The lower row
    key <LSGT> { [       less, greater,    bar,         brokenbar ] };
    key <AB01> { [ odiaeresis, Odiaeresis ] };
    key <AB02> { [ udiaeresis, Udiaeresis ] };  
    key <AB03> { [ adiaeresis, Adiaeresis, Greek_LAMBDA ] };
    key <AB04> { [	        p, P,          Greek_PI,    Greek_pi ] };
    key <AB05> { [	        z, Z,          Greek_omega  ] };
    key <AB06> { [	        b, B,	         Greek_SIGMA, Greek_beta ] };
    key <AB07> { [	        m, M,          Greek_PHI,   mu ] };
    key <AB08> { [	    comma, semicolon,  Greek_GAMMA, dead_cedilla ] };
    key <AB09> { [     period, colon,      Greek_THETA, Greek_theta ] };
    key <AB10> { [          x, X,          Greek_DELTA  ] };

    // CapsLock is a new AltGr, Shiftlocking is available with Shift+Caps
		key <CAPS> { [	 ISO_Level3_Shift, Caps_Lock ] };

    // Add the default AltGr
    key <RALT> { 
      type[Group1]="ONE_LEVEL", 
      symbols[Group1] = [ ISO_Level3_Shift ]
    };
    modifier_map Mod5  { ISO_Level3_Shift };

    // The space key
    key <SPCE> { [	 space,	space, nobreakspace, nobreakspace ] };

    // Keypad 
//    key <NMLK> {	[  Num_Lock, Pointer_EnableKeys ]	};
    // Ungrab cancels server/keyboard/pointer grabs
//    key <KPDV> {  [KP_Divide, KP_Divide, division ] };
    // ClsGrb kills whichever client has a grab in effect
//    key <KPMU> {  [KP_Multiply, KP_Multiply, periodcentered ] };
    // -VMode switches to the previous video mode
//    key <KPSU> { [ KP_Subtract, KP_Subtract, notsign ] };

    // upper row
    key  <KP7> {	[  KP_Home,	KP_7, seveneighths, oneeighth	]	};
    key  <KP8> {	[  KP_Up,	KP_8, uparrow, fiveeighths ]	};
    key  <KP9> {	[  KP_Prior,	KP_9, threeeighths, threeeighths ] };
    // +VMode switches to the next video mode
//    key <KPAD> {	[  KP_Add, KP_Add, plusminus ] };

    // middle row
    key  <KP4> {	[  KP_Left,	KP_4, leftarrow, onequarter		]	};
    key  <KP5> {	[  KP_Begin,	KP_5, dagger, onehalf 			]	};
    key  <KP6> {	[  KP_Right,	KP_6, rightarrow, threequarters	]	};

    // lower row
    key  <KP1> {	[  KP_End,	KP_1, onesuperior, onesuperior		]	};
    key  <KP2> {	[  KP_Down,	KP_2, downarrow, twosuperior		]	};
    key  <KP3> {	[  KP_Next,	KP_3, threesuperior, threesuperior	]	};
    key <KPEN> {	[  	KP_Enter	]	};
    key <KPEQ> {	[  	KP_Equal	]	};

    // lowest row
    key  <KP0> {	[  KP_Insert,	KP_0, percent, degree			]	};
    key <KPDL> {  	[  KP_Delete,	KP_Decimal, periodcentered, comma  ]	};
};

